diff --git "a/web-build/static/js/23.a0d519db.js.map" "b/web-build/static/js/23.a0d519db.js.map" new file mode 100644--- /dev/null +++ "b/web-build/static/js/23.a0d519db.js.map" @@ -0,0 +1 @@ +{"version":3,"file":"static/js/23.a0d519db.js","mappings":"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tL,IACrC,IAEAgB,EAAelE,EAAW,YAAY,WACpC,OAAO/pL,KAAKu+K,MAAMuP,UAAU9tL,KAAKstL,IACnC,IAEAvD,EAAUxqL,UAAUovL,QAAU,WAC5B,OAAO3uL,KAAKktL,WAAWplK,OAAO9nB,KAAK0uL,WACrC,EAEA3E,EAAUxqL,UAAUqvL,MAAQ,WAC1B,OAAO1V,EAAM7rC,OAAOrtI,KAAK2uL,UAAW,OAAO9tG,aAC7C,EAEAv0E,EAAOnO,QAAU4rL,YCjEjBz9K,EAAOnO,QAAU,CACfyhL,QAAS,CACP3+K,KAAM,EACNm/K,OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,kEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,sEAINN,IAAK,CACHn0B,IAAK,EACLy0B,OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,iEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oE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","sources":["node_modules/@react-native-community/slider/dist/RNCSliderNativeComponent.web.js","node_modules/@react-native-community/slider/dist/Slider.js","node_modules/@react-native-community/slider/dist/index.js","node_modules/@react-native/assets-registry/registry.js","node_modules/expo-asset/src/AssetSourceResolver.ts","node_modules/expo-asset/src/PlatformUtils.web.ts","node_modules/expo-asset/src/AssetSources.ts","node_modules/expo-asset/src/AssetUris.ts","node_modules/expo-asset/src/resolveAssetSource.ts","node_modules/expo-asset/src/Asset.ts","node_modules/expo-asset/src/LocalAssets.web.ts","node_modules/expo-asset/src/ImageAssets.ts","node_modules/expo-av/src/AV.ts","node_modules/expo-av/src/AV.types.ts","node_modules/expo-av/src/Audio.types.ts","node_modules/expo-av/src/Audio/Recording.ts","node_modules/expo-av/src/Audio.ts","node_modules/expo-av/src/Audio/AudioAvailability.ts","node_modules/expo-av/src/Audio/RecordingConstants.ts","node_modules/expo-av/src/Audio/Sound.ts","node_modules/expo-modules-core/src/uuid/lib/sha1.ts","node_modules/expo-modules-core/src/uuid/lib/bytesToUuid.ts","node_modules/expo-modules-core/src/uuid/uuid.types.ts","node_modules/expo-modules-core/src/uuid/lib/v35.ts","node_modules/expo-modules-core/src/uuid/uuid.web.ts","node_modules/expo-modules-core/src/index.ts","node_modules/expo-av/src/ExponentAV.web.ts","node_modules/expo-font/src/Font.types.ts","node_modules/expo-font/src/ExpoFontLoader.web.ts","node_modules/expo-font/src/FontLoader.web.ts","node_modules/expo-font/src/memory.ts","node_modules/expo-font/src/server.ts","node_modules/expo-font/src/Font.ts","node_modules/expo-font/src/FontHooks.ts","node_modules/expo-image-picker/src/ExponentImagePicker.web.ts","node_modules/expo-image-picker/src/ImagePicker.ts","node_modules/expo-image-picker/src/ImagePicker.types.ts","node_modules/expo-modules-core/src/EventEmitter.ts","node_modules/expo-modules-core/src/PermissionsHook.ts","node_modules/expo-modules-core/src/PermissionsInterface.ts","node_modules/expo-modules-core/src/environment/browser.web.ts","node_modules/expo-modules-core/src/Platform.ts","node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","node_modules/@babel/runtime/helpers/esm/construct.js","node_modules/expo-modules-core/src/errors/CodedError.ts","node_modules/expo-modules-core/src/errors/UnavailabilityError.ts","node_modules/expo-status-bar/src/StatusBar.web.ts","node_modules/react-native-element-dropdown/src/toolkits/index.ts","node_modules/react-native-element-dropdown/src/useDeviceOrientation.ts","node_modules/react-native-element-dropdown/src/components/TextInput/styles.ts","node_modules/react-native-element-dropdown/src/components/TextInput/index.tsx","node_modules/react-native-element-dropdown/src/components/Dropdown/styles.ts","node_modules/react-native-element-dropdown/src/components/Dropdown/index.tsx","node_modules/react-native-element-dropdown/src/components/MultiSelect/styles.ts","node_modules/react-native-element-dropdown/src/components/MultiSelect/index.tsx","node_modules/react-native-element-dropdown/src/components/SelectCountry/styles.ts","node_modules/react-native-element-dropdown/src/components/SelectCountry/index.tsx","node_modules/react-native-web/dist/exports/ActivityIndicator/index.js","node_modules/react-native-web/dist/vendor/react-native/ReactNative/ReactNativeFeatureFlags.js","node_modules/react-native-web/dist/vendor/react-native/Animated/NativeAnimatedHelper.js","node_modules/react-native-web/dist/vendor/react-native/TurboModule/TurboModuleRegistry.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedNode.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedWithChildren.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedInterpolation.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedValue.js","node_modules/react-native-web/dist/vendor/react-native/Animated/AnimatedEvent.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedTransform.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedStyle.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedProps.js","node_modules/react-native-web/dist/vendor/react-native/Animated/useAnimatedProps.js","node_modules/react-native-web/dist/vendor/react-native/Utilities/useRefEffect.js","node_modules/react-native-web/dist/vendor/react-native/Animated/createAnimatedComponent.js","node_modules/react-native-web/dist/vendor/react-native/Utilities/useMergeRefs.js","node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedFlatList.js","node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedImage.js","node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedScrollView.js","node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedSectionList.js","node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedText.js","node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedView.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedAddition.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedDiffClamp.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedDivision.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedModulo.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedMultiplication.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedSubtraction.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedTracking.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedValueXY.js","node_modules/react-native-web/dist/vendor/react-native/Animated/animations/Animation.js","node_modules/react-native-web/dist/vendor/react-native/Animated/animations/DecayAnimation.js","node_modules/react-native-web/dist/vendor/react-native/Animated/SpringConfig.js","node_modules/react-native-web/dist/vendor/react-native/Animated/animations/SpringAnimation.js","node_modules/react-native-web/dist/vendor/react-native/Animated/animations/TimingAnimation.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedColor.js","node_modules/react-native-web/dist/vendor/react-native/Animated/AnimatedImplementation.js","node_modules/react-native-web/dist/vendor/react-native/Animated/AnimatedMock.js","node_modules/react-native-web/dist/vendor/react-native/Animated/Animated.js","node_modules/react-native-web/dist/exports/Animated/index.js","node_modules/react-native-web/dist/exports/DeviceEventEmitter/index.js","node_modules/react-native-web/dist/exports/Dimensions/index.js","node_modules/react-native-web/dist/vendor/react-native/Animated/Easing.js","node_modules/react-native-web/dist/vendor/react-native/Animated/bezier.js","node_modules/react-native-web/dist/exports/Easing/index.js","node_modules/react-native-web/dist/vendor/react-native/deepDiffer/index.js","node_modules/react-native-web/node_modules/memoize-one/dist/memoize-one.esm.js","node_modules/react-native-web/dist/vendor/react-native/FlatList/index.js","node_modules/react-native-web/dist/exports/FlatList/index.js","node_modules/react-native-web/dist/exports/I18nManager/index.js","node_modules/react-native-web/dist/modules/AssetRegistry/index.js","node_modules/react-native-web/dist/modules/ImageLoader/index.js","node_modules/react-native-web/dist/exports/Image/index.js","node_modules/react-native-web/dist/exports/InteractionManager/TaskQueue.js","node_modules/react-native-web/dist/modules/requestIdleCallback/index.js","node_modules/react-native-web/dist/exports/InteractionManager/index.js","node_modules/react-native-web/dist/exports/Keyboard/index.js","node_modules/react-native-web/dist/exports/Modal/ModalPortal.js","node_modules/react-native-web/dist/exports/Modal/ModalAnimation.js","node_modules/react-native-web/dist/exports/Modal/ModalContent.js","node_modules/react-native-web/dist/exports/Modal/ModalFocusTrap.js","node_modules/react-native-web/dist/exports/Modal/index.js","node_modules/react-native-web/dist/exports/NativeEventEmitter/index.js","node_modules/react-native-web/dist/exports/NativeModules/index.js","node_modules/react-native-web/dist/exports/PixelRatio/index.js","node_modules/react-native-web/dist/exports/Platform/index.js","node_modules/react-native-web/dist/modules/addEventListener/index.js","node_modules/react-native-web/dist/modules/modality/index.js","node_modules/react-native-web/dist/modules/useEvent/index.js","node_modules/react-native-web/dist/modules/useHover/index.js","node_modules/react-native-web/dist/exports/Pressable/index.js","node_modules/react-native-web/dist/exports/RefreshControl/index.js","node_modules/react-native-web/dist/exports/ScrollView/ScrollViewBase.js","node_modules/react-native-web/dist/exports/ScrollView/index.js","node_modules/react-native-web/dist/vendor/react-native/VirtualizedSectionList/index.js","node_modules/react-native-web/dist/vendor/react-native/SectionList/index.js","node_modules/react-native-web/dist/exports/SectionList/index.js","node_modules/react-native-web/dist/exports/StatusBar/index.js","node_modules/react-native-web/dist/modules/isWebColor/index.js","node_modules/react-native-web/dist/exports/StyleSheet/compiler/normalizeColor.js","node_modules/react-native-web/dist/exports/StyleSheet/compiler/unitlessNumbers.js","node_modules/react-native-web/dist/exports/StyleSheet/compiler/normalizeValueWithProperty.js","node_modules/react-native-web/dist/exports/StyleSheet/dom/createCSSStyleSheet.js","node_modules/react-native-web/dist/exports/StyleSheet/dom/createOrderedCSSStyleSheet.js","node_modules/react-native-web/dist/exports/StyleSheet/dom/index.js","node_modules/react-native-web/dist/exports/StyleSheet/compiler/createReactDOMStyle.js","node_modules/react-native-web/dist/exports/StyleSheet/compiler/hash.js","node_modules/react-native-web/dist/exports/StyleSheet/compiler/hyphenateStyleName.js","node_modules/react-native-web/dist/modules/prefixStyles/static.js","node_modules/react-native-web/dist/modules/prefixStyles/index.js","node_modules/react-native-web/dist/exports/StyleSheet/compiler/index.js","node_modules/react-native-web/dist/exports/StyleSheet/index.js","node_modules/react-native-web/dist/exports/StyleSheet/preprocess.js","node_modules/react-native-web/dist/modules/multiplyStyleLengthValue/index.js","node_modules/react-native-web/dist/exports/Switch/index.js","node_modules/react-native-web/dist/exports/Text/TextAncestorContext.js","node_modules/react-native-web/dist/exports/Text/index.js","node_modules/react-native-web/dist/exports/TextInput/index.js","node_modules/react-native-web/dist/exports/TouchableHighlight/index.js","node_modules/react-native-web/dist/exports/TouchableOpacity/index.js","node_modules/react-native-web/dist/exports/TouchableWithoutFeedback/index.js","node_modules/react-native-web/dist/modules/unitlessNumbers/index.js","node_modules/react-native-web/dist/modules/setValueForStyles/dangerousStyleValue.js","node_modules/react-native-web/dist/modules/setValueForStyles/index.js","node_modules/react-native-web/dist/exports/UIManager/index.js","node_modules/react-native-web/dist/exports/View/index.js","node_modules/react-native-web/dist/modules/createDOMProps/index.js","node_modules/react-native-web/dist/exports/createElement/index.js","node_modules/react-native-web/dist/exports/processColor/index.js","node_modules/react-native-web/dist/exports/useWindowDimensions/index.js","node_modules/react-native-web/dist/exports/findNodeHandle/index.js","node_modules/react-native-web/dist/exports/unmountComponentAtNode/index.js","node_modules/react-native-web/dist/exports/render/index.js","node_modules/react-native-web/dist/exports/AccessibilityInfo/index.js","node_modules/react-native-web/dist/exports/Alert/index.js","node_modules/react-native-web/dist/exports/Appearance/index.js","node_modules/react-native-web/dist/exports/AppRegistry/AppContainer.js","node_modules/react-native-web/dist/exports/AppRegistry/index.js","node_modules/react-native-web/dist/exports/AppRegistry/renderApplication.js","node_modules/react-native-web/dist/exports/AppState/index.js","node_modules/react-native-web/dist/exports/BackHandler/index.js","node_modules/react-native-web/dist/exports/Clipboard/index.js","node_modules/react-native-web/dist/vendor/react-native/LayoutAnimation/index.js","node_modules/react-native-web/dist/exports/LayoutAnimation/index.js","node_modules/react-native-web/dist/exports/Linking/index.js","node_modules/react-native-web/dist/vendor/react-native/TouchHistoryMath/index.js","node_modules/react-native-web/dist/vendor/react-native/PanResponder/index.js","node_modules/react-native-web/dist/exports/PanResponder/index.js","node_modules/react-native-web/dist/exports/Share/index.js","node_modules/react-native-web/dist/exports/Vibration/index.js","node_modules/react-native-web/dist/exports/Button/index.js","node_modules/react-native-web/dist/exports/CheckBox/index.js","node_modules/react-native-web/dist/exports/ImageBackground/index.js","node_modules/react-native-web/dist/exports/KeyboardAvoidingView/index.js","node_modules/react-native-web/dist/exports/Picker/index.js","node_modules/react-native-web/dist/exports/Picker/PickerItem.js","node_modules/react-native-web/dist/exports/ProgressBar/index.js","node_modules/react-native-web/dist/exports/SafeAreaView/index.js","node_modules/react-native-web/dist/vendor/react-native/PooledClass/index.js","node_modules/react-native-web/dist/exports/Touchable/BoundingDimensions.js","node_modules/react-native-web/dist/exports/Touchable/Position.js","node_modules/react-native-web/dist/exports/Touchable/index.js","node_modules/react-native-web/dist/modules/UnimplementedView/index.js","node_modules/react-native-web/dist/exports/TouchableNativeFeedback/index.js","node_modules/react-native-web/dist/exports/VirtualizedList/index.js","node_modules/react-native-web/dist/exports/YellowBox/index.js","node_modules/react-native-web/dist/exports/LogBox/index.js","node_modules/react-native-web/dist/exports/useColorScheme/index.js","node_modules/react-native-web/dist/exports/useLocaleContext/index.js","node_modules/react-native-web/dist/modules/AccessibilityUtil/propsToAriaRole.js","node_modules/react-native-web/dist/modules/AccessibilityUtil/propsToAccessibilityComponent.js","node_modules/react-native-web/dist/modules/AccessibilityUtil/index.js","node_modules/react-native-web/dist/modules/AccessibilityUtil/isDisabled.js","node_modules/react-native-web/dist/modules/TextInputState/index.js","node_modules/react-native-web/dist/modules/canUseDom/index.js","node_modules/react-native-web/dist/modules/dismissKeyboard/index.js","node_modules/react-native-web/dist/modules/forwardedProps/index.js","node_modules/react-native-web/dist/modules/getBoundingClientRect/index.js","node_modules/react-native-web/dist/modules/mergeRefs/index.js","node_modules/react-native-web/dist/modules/pick/index.js","node_modules/react-native-web/dist/modules/useElementLayout/index.js","node_modules/react-native-web/dist/modules/useLayoutEffect/index.js","node_modules/react-native-web/dist/modules/useLocale/isLocaleRTL.js","node_modules/react-native-web/dist/modules/useLocale/index.js","node_modules/react-native-web/dist/modules/useMergeRefs/index.js","node_modules/react-native-web/dist/modules/usePlatformMethods/index.js","node_modules/react-native-web/dist/modules/usePressEvents/PressResponder.js","node_modules/react-native-web/dist/modules/usePressEvents/index.js","node_modules/react-native-web/dist/modules/useResponderEvents/createResponderEvent.js","node_modules/react-native-web/dist/modules/useResponderEvents/ResponderEventTypes.js","node_modules/react-native-web/dist/modules/useResponderEvents/utils.js","node_modules/react-native-web/dist/modules/isSelectionValid/index.js","node_modules/react-native-web/dist/modules/useResponderEvents/ResponderTouchHistoryStore.js","node_modules/react-native-web/dist/modules/useResponderEvents/ResponderSystem.js","node_modules/react-native-web/dist/modules/useResponderEvents/index.js","node_modules/react-native-web/dist/modules/useStable/index.js","node_modules/react-native-web/dist/modules/warnOnce/index.js","node_modules/react-native-web/dist/vendor/react-native/EventEmitter/NativeEventEmitter.js","node_modules/react-native-web/dist/vendor/react-native/EventEmitter/RCTDeviceEventEmitter.js","node_modules/react-native-web/dist/vendor/react-native/VirtualizeUtils/index.js","node_modules/react-native-web/dist/vendor/react-native/Batchinator/index.js","node_modules/react-native-web/dist/vendor/react-native/Utilities/clamp.js","node_modules/react-native-web/dist/vendor/react-native/infoLog/index.js","node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/CellRenderMask.js","node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/ChildListCollection.js","node_modules/react-native-web/dist/vendor/react-native/FillRateHelper/index.js","node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/StateSafePureComponent.js","node_modules/react-native-web/dist/vendor/react-native/ViewabilityHelper/index.js","node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/VirtualizedListContext.js","node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/VirtualizedListCellRenderer.js","node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/index.js","node_modules/react-native-web/dist/vendor/react-native/vendor/emitter/EventEmitter.js","node_modules/react-native-web/node_modules/@react-native/normalize-colors/index.js","node_modules/asn1.js/lib/asn1.js","node_modules/asn1.js/lib/asn1/api.js","node_modules/asn1.js/lib/asn1/base/buffer.js","node_modules/asn1.js/lib/asn1/base/index.js","node_modules/asn1.js/lib/asn1/base/node.js","node_modules/asn1.js/lib/asn1/base/reporter.js","node_modules/asn1.js/lib/asn1/constants/der.js","node_modules/asn1.js/lib/asn1/constants/index.js","node_modules/asn1.js/lib/asn1/decoders/der.js","node_modules/asn1.js/lib/asn1/decoders/index.js","node_modules/asn1.js/lib/asn1/decoders/pem.js","node_modules/asn1.js/lib/asn1/encoders/der.js","node_modules/asn1.js/lib/asn1/encoders/index.js","node_modules/asn1.js/lib/asn1/encoders/pem.js","node_modules/base64-js/index.js","node_modules/bn.js/lib/bn.js","node_modules/brorand/index.js","node_modules/browserify-aes/aes.js","node_modules/browserify-aes/authCipher.js","node_modules/browserify-aes/browser.js","node_modules/browserify-aes/decrypter.js","node_modules/browserify-aes/encrypter.js","node_modules/browserify-aes/ghash.js","node_modules/browserify-aes/incr32.js","node_modules/browserify-aes/modes/cbc.js","node_modules/browserify-aes/modes/cfb.js","node_modules/browserify-aes/modes/cfb1.js","node_modules/browserify-aes/modes/cfb8.js","node_modules/browserify-aes/modes/ctr.js","node_modules/browserify-aes/modes/ecb.js","node_modules/browserify-aes/modes/index.js","node_modules/browserify-aes/modes/ofb.js","node_modules/browserify-aes/streamCipher.js","node_modules/browserify-cipher/browser.js","node_modules/browserify-des/index.js","node_modules/browserify-des/modes.js","node_modules/browserify-rsa/index.js","node_modules/browserify-rsa/node_modules/bn.js/lib/bn.js","node_modules/browserify-sign/algos.js","node_modules/browserify-sign/browser/index.js","node_modules/browserify-sign/browser/sign.js","node_modules/browserify-sign/browser/verify.js","node_modules/browserify-sign/node_modules/bn.js/lib/bn.js","node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js","node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js","node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js","node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js","node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js","node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/BufferList.js","node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js","node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js","node_modules/browserify-sign/node_modules/readable-stream/node_modules/safe-buffer/index.js","node_modules/browserify-sign/node_modules/readable-stream/readable-browser.js","node_modules/browserify-sign/node_modules/string_decoder/lib/string_decoder.js","node_modules/browserify-sign/node_modules/string_decoder/node_modules/safe-buffer/index.js","node_modules/buffer-xor/index.js","node_modules/buffer/index.js","node_modules/cipher-base/index.js","node_modules/core-util-is/lib/util.js","node_modules/create-ecdh/browser.js","node_modules/create-hash/browser.js","node_modules/create-hash/md5.js","node_modules/create-hmac/browser.js","node_modules/create-hmac/legacy.js","node_modules/crypto-browserify/index.js","node_modules/css-in-js-utils/es/assignStyle.js","node_modules/css-in-js-utils/es/camelCaseProperty.js","node_modules/css-in-js-utils/es/hyphenateProperty.js","node_modules/css-in-js-utils/es/cssifyDeclaration.js","node_modules/css-in-js-utils/es/cssifyObject.js","node_modules/css-in-js-utils/es/isPrefixedProperty.js","node_modules/css-in-js-utils/es/isPrefixedValue.js","node_modules/css-in-js-utils/es/isUnitlessProperty.js","node_modules/css-in-js-utils/es/unprefixProperty.js","node_modules/css-in-js-utils/es/normalizeProperty.js","node_modules/css-in-js-utils/es/resolveArrayValue.js","node_modules/css-in-js-utils/es/unprefixValue.js","node_modules/css-in-js-utils/lib/hyphenateProperty.js","node_modules/css-in-js-utils/lib/isPrefixedValue.js","node_modules/des.js/lib/des.js","node_modules/des.js/lib/des/cbc.js","node_modules/des.js/lib/des/cipher.js","node_modules/des.js/lib/des/des.js","node_modules/des.js/lib/des/ede.js","node_modules/des.js/lib/des/utils.js","node_modules/diffie-hellman/browser.js","node_modules/diffie-hellman/lib/dh.js","node_modules/diffie-hellman/lib/generatePrime.js","node_modules/elliptic/lib/elliptic.js","node_modules/elliptic/lib/elliptic/curve/base.js","node_modules/elliptic/lib/elliptic/curve/edwards.js","node_modules/elliptic/lib/elliptic/curve/index.js","node_modules/elliptic/lib/elliptic/curve/mont.js","node_modules/elliptic/lib/elliptic/curve/short.js","node_modules/elliptic/lib/elliptic/curves.js","node_modules/elliptic/lib/elliptic/ec/index.js","node_modules/elliptic/lib/elliptic/ec/key.js","node_modules/elliptic/lib/elliptic/ec/signature.js","node_modules/elliptic/lib/elliptic/eddsa/index.js","node_modules/elliptic/lib/elliptic/eddsa/key.js","node_modules/elliptic/lib/elliptic/eddsa/signature.js","node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","node_modules/elliptic/lib/elliptic/utils.js","node_modules/events/events.js","node_modules/evp_bytestokey/index.js","node_modules/fbjs/lib/emptyFunction.js","node_modules/fbjs/lib/invariant.js","node_modules/fbjs/lib/warning.js","node_modules/fontfaceobserver/fontfaceobserver.standalone.js","node_modules/hash.js/lib/hash.js","node_modules/hash.js/lib/hash/common.js","node_modules/hash.js/lib/hash/hmac.js","node_modules/hash.js/lib/hash/ripemd.js","node_modules/hash.js/lib/hash/sha.js","node_modules/hash.js/lib/hash/sha/1.js","node_modules/hash.js/lib/hash/sha/224.js","node_modules/hash.js/lib/hash/sha/256.js","node_modules/hash.js/lib/hash/sha/384.js","node_modules/hash.js/lib/hash/sha/512.js","node_modules/hash.js/lib/hash/sha/common.js","node_modules/hash.js/lib/hash/utils.js","node_modules/hmac-drbg/lib/hmac-drbg.js","node_modules/hyphenate-style-name/index.js","node_modules/ieee754/index.js","node_modules/inherits/inherits_browser.js","node_modules/inline-style-prefixer/lib/createPrefixer.js","node_modules/inline-style-prefixer/lib/plugins/backgroundClip.js","node_modules/inline-style-prefixer/lib/plugins/crossFade.js","node_modules/inline-style-prefixer/lib/plugins/cursor.js","node_modules/inline-style-prefixer/lib/plugins/filter.js","node_modules/inline-style-prefixer/lib/plugins/imageSet.js","node_modules/inline-style-prefixer/lib/plugins/logical.js","node_modules/inline-style-prefixer/lib/plugins/position.js","node_modules/inline-style-prefixer/lib/plugins/sizing.js","node_modules/inline-style-prefixer/lib/plugins/transition.js","node_modules/inline-style-prefixer/lib/utils/addNewValuesOnly.js","node_modules/inline-style-prefixer/lib/utils/capitalizeString.js","node_modules/inline-style-prefixer/lib/utils/isObject.js","node_modules/inline-style-prefixer/lib/utils/prefixProperty.js","node_modules/inline-style-prefixer/lib/utils/prefixValue.js","node_modules/invariant/browser.js","node_modules/isarray/index.js","node_modules/lodash/_DataView.js","node_modules/lodash/_Hash.js","node_modules/lodash/_ListCache.js","node_modules/lodash/_Map.js","node_modules/lodash/_MapCache.js","node_modules/lodash/_Promise.js","node_modules/lodash/_Set.js","node_modules/lodash/_SetCache.js","node_modules/lodash/_Stack.js","node_modules/lodash/_Symbol.js","node_modules/lodash/_Uint8Array.js","node_modules/lodash/_WeakMap.js","node_modules/lodash/_apply.js","node_modules/lodash/_arrayFilter.js","node_modules/lodash/_arrayIncludes.js","node_modules/lodash/_arrayIncludesWith.js","node_modules/lodash/_arrayLikeKeys.js","node_modules/lodash/_arrayMap.js","node_modules/lodash/_arrayPush.js","node_modules/lodash/_arraySome.js","node_modules/lodash/_assignValue.js","node_modules/lodash/_assocIndexOf.js","node_modules/lodash/_baseAssignValue.js","node_modules/lodash/_baseDifference.js","node_modules/lodash/_baseFindIndex.js","node_modules/lodash/_baseFlatten.js","node_modules/lodash/_baseGet.js","node_modules/lodash/_baseGetAllKeys.js","node_modules/lodash/_baseGetTag.js","node_modules/lodash/_baseHasIn.js","node_modules/lodash/_baseIndexOf.js","node_modules/lodash/_baseIsArguments.js","node_modules/lodash/_baseIsEqual.js","node_modules/lodash/_baseIsEqualDeep.js","node_modules/lodash/_baseIsMatch.js","node_modules/lodash/_baseIsNaN.js","node_modules/lodash/_baseIsNative.js","node_modules/lodash/_baseIsTypedArray.js","node_modules/lodash/_baseIteratee.js","node_modules/lodash/_baseKeys.js","node_modules/lodash/_baseMatches.js","node_modules/lodash/_baseMatchesProperty.js","node_modules/lodash/_baseProperty.js","node_modules/lodash/_basePropertyDeep.js","node_modules/lodash/_baseRest.js","node_modules/lodash/_baseSetToString.js","node_modules/lodash/_baseTimes.js","node_modules/lodash/_baseToString.js","node_modules/lodash/_baseTrim.js","node_modules/lodash/_baseUnary.js","node_modules/lodash/_cacheHas.js","node_modules/lodash/_castPath.js","node_modules/lodash/_copyObject.js","node_modules/lodash/_coreJsData.js","node_modules/lodash/_createAssigner.js","node_modules/lodash/_defineProperty.js","node_modules/lodash/_equalArrays.js","node_modules/lodash/_equalByTag.js","node_modules/lodash/_equalObjects.js","node_modules/lodash/_freeGlobal.js","node_modules/lodash/_getAllKeys.js","node_modules/lodash/_getMapData.js","node_modules/lodash/_getMatchData.js","node_modules/lodash/_getNative.js","node_modules/lodash/_getRawTag.js","node_modules/lodash/_getSymbols.js","node_modules/lodash/_getTag.js","node_modules/lodash/_getValue.js","node_modules/lodash/_hasPath.js","node_modules/lodash/_hashClear.js","node_modules/lodash/_hashDelete.js","node_modules/lodash/_hashGet.js","node_modules/lodash/_hashHas.js","node_modules/lodash/_hashSet.js","node_modules/lodash/_isFlattenable.js","node_modules/lodash/_isIndex.js","node_modules/lodash/_isIterateeCall.js","node_modules/lodash/_isKey.js","node_modules/lodash/_isKeyable.js","node_modules/lodash/_isMasked.js","node_modules/lodash/_isPrototype.js","node_modules/lodash/_isStrictComparable.js","node_modules/lodash/_listCacheClear.js","node_modules/lodash/_listCacheDelete.js","node_modules/lodash/_listCacheGet.js","node_modules/lodash/_listCacheHas.js","node_modules/lodash/_listCacheSet.js","node_modules/lodash/_mapCacheClear.js","node_modules/lodash/_mapCacheDelete.js","node_modules/lodash/_mapCacheGet.js","node_modules/lodash/_mapCacheHas.js","node_modules/lodash/_mapCacheSet.js","node_modules/lodash/_mapToArray.js","node_modules/lodash/_matchesStrictComparable.js","node_modules/lodash/_memoizeCapped.js","node_modules/lodash/_nativeCreate.js","node_modules/lodash/_nativeKeys.js","node_modules/lodash/_nodeUtil.js","node_modules/lodash/_objectToString.js","node_modules/lodash/_overArg.js","node_modules/lodash/_overRest.js","node_modules/lodash/_root.js","node_modules/lodash/_setCacheAdd.js","node_modules/lodash/_setCacheHas.js","node_modules/lodash/_setToArray.js","node_modules/lodash/_setToString.js","node_modules/lodash/_shortOut.js","node_modules/lodash/_stackClear.js","node_modules/lodash/_stackDelete.js","node_modules/lodash/_stackGet.js","node_modules/lodash/_stackHas.js","node_modules/lodash/_stackSet.js","node_modules/lodash/_strictIndexOf.js","node_modules/lodash/_stringToPath.js","node_modules/lodash/_toKey.js","node_modules/lodash/_toSource.js","node_modules/lodash/_trimmedEndIndex.js","node_modules/lodash/assign.js","node_modules/lodash/constant.js","node_modules/lodash/differenceWith.js","node_modules/lodash/eq.js","node_modules/lodash/findIndex.js","node_modules/lodash/get.js","node_modules/lodash/hasIn.js","node_modules/lodash/identity.js","node_modules/lodash/isArguments.js","node_modules/lodash/isArray.js","node_modules/lodash/isArrayLike.js","node_modules/lodash/isArrayLikeObject.js","node_modules/lodash/isBuffer.js","node_modules/lodash/isEqual.js","node_modules/lodash/isFunction.js","node_modules/lodash/isLength.js","node_modules/lodash/isObject.js","node_modules/lodash/isObjectLike.js","node_modules/lodash/isSymbol.js","node_modules/lodash/isTypedArray.js","node_modules/lodash/keys.js","node_modules/lodash/last.js","node_modules/lodash/memoize.js","node_modules/lodash/property.js","node_modules/lodash/stubArray.js","node_modules/lodash/stubFalse.js","node_modules/lodash/toFinite.js","node_modules/lodash/toInteger.js","node_modules/lodash/toNumber.js","node_modules/lodash/toString.js","node_modules/md5.js/index.js","node_modules/md5.js/node_modules/hash-base/index.js","node_modules/miller-rabin/lib/mr.js","node_modules/minimalistic-assert/index.js","node_modules/minimalistic-crypto-utils/lib/utils.js","node_modules/nullthrows/nullthrows.js","node_modules/parse-asn1/asn1.js","node_modules/parse-asn1/certificate.js","node_modules/parse-asn1/fixProc.js","node_modules/parse-asn1/index.js","node_modules/pbkdf2/browser.js","node_modules/pbkdf2/lib/async.js","node_modules/pbkdf2/lib/default-encoding.js","node_modules/pbkdf2/lib/precondition.js","node_modules/pbkdf2/lib/sync-browser.js","node_modules/pbkdf2/lib/to-buffer.js","node_modules/process-nextick-args/index.js","node_modules/public-encrypt/browser.js","node_modules/public-encrypt/mgf.js","node_modules/public-encrypt/privateDecrypt.js","node_modules/public-encrypt/publicEncrypt.js","node_modules/public-encrypt/withPublic.js","node_modules/public-encrypt/xor.js","node_modules/randombytes/browser.js","node_modules/randomfill/browser.js","node_modules/react-dom/cjs/react-dom.production.min.js","node_modules/react-dom/client.js","node_modules/react-dom/index.js","node_modules/react-dom/node_modules/scheduler/cjs/scheduler.production.min.js","node_modules/react-dom/node_modules/scheduler/index.js","node_modules/react/cjs/react-jsx-runtime.production.min.js","node_modules/react/cjs/react.production.min.js","node_modules/react/index.js","node_modules/react/jsx-runtime.js","node_modules/readable-stream/errors-browser.js","node_modules/readable-stream/lib/_stream_duplex.js","node_modules/readable-stream/lib/_stream_passthrough.js","node_modules/readable-stream/lib/_stream_readable.js","node_modules/readable-stream/lib/_stream_transform.js","node_modules/readable-stream/lib/_stream_writable.js","node_modules/readable-stream/lib/internal/streams/async_iterator.js","node_modules/readable-stream/lib/internal/streams/buffer_list.js","node_modules/readable-stream/lib/internal/streams/destroy.js","node_modules/readable-stream/lib/internal/streams/end-of-stream.js","node_modules/readable-stream/lib/internal/streams/from-browser.js","node_modules/readable-stream/lib/internal/streams/pipeline.js","node_modules/readable-stream/lib/internal/streams/state.js","node_modules/readable-stream/lib/internal/streams/stream-browser.js","node_modules/readable-stream/readable-browser.js","node_modules/ripemd160/index.js","node_modules/ripemd160/node_modules/hash-base/index.js","node_modules/safe-buffer/index.js","node_modules/sha.js/hash.js","node_modules/sha.js/index.js","node_modules/sha.js/sha.js","node_modules/sha.js/sha1.js","node_modules/sha.js/sha224.js","node_modules/sha.js/sha256.js","node_modules/sha.js/sha384.js","node_modules/sha.js/sha512.js","node_modules/stream-browserify/index.js","node_modules/string_decoder/lib/string_decoder.js","node_modules/styleq/dist/styleq.js","node_modules/styleq/dist/transform-localize-style.js","node_modules/util-deprecate/browser.js","node_modules/@babel/runtime/helpers/arrayLikeToArray.js","node_modules/@babel/runtime/helpers/arrayWithHoles.js","node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","node_modules/@babel/runtime/helpers/extends.js","node_modules/@babel/runtime/helpers/interopRequireDefault.js","node_modules/@babel/runtime/helpers/iterableToArray.js","node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","node_modules/@babel/runtime/helpers/nonIterableRest.js","node_modules/@babel/runtime/helpers/nonIterableSpread.js","node_modules/@babel/runtime/helpers/objectWithoutProperties.js","node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","node_modules/@babel/runtime/helpers/slicedToArray.js","node_modules/@babel/runtime/helpers/toConsumableArray.js","node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","node_modules/@babel/runtime/helpers/esm/classCallCheck.js","node_modules/@babel/runtime/helpers/esm/createClass.js","node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelperLoose.js","node_modules/@babel/runtime/helpers/esm/defineProperty.js","node_modules/@babel/runtime/helpers/esm/extends.js","node_modules/@babel/runtime/helpers/esm/get.js","node_modules/@babel/runtime/helpers/esm/superPropBase.js","node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","node_modules/@babel/runtime/helpers/esm/inherits.js","node_modules/@babel/runtime/helpers/esm/objectSpread2.js","node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","node_modules/@babel/runtime/helpers/esm/slicedToArray.js","node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","node_modules/@babel/runtime/helpers/esm/iterableToArray.js","node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","node_modules/@babel/runtime/helpers/esm/toPrimitive.js","node_modules/@babel/runtime/helpers/esm/typeof.js","node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js"],"sourcesContent":["var _interopRequireDefault=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _toConsumableArray2=_interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));var _extends2=_interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));var _slicedToArray2=_interopRequireDefault(require(\"@babel/runtime/helpers/slicedToArray\"));var _objectWithoutProperties2=_interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));var _reactDom=_interopRequireDefault(require(\"react-dom\"));var _react=_interopRequireWildcard(require(\"react\"));var _reactNative=require(\"react-native\");var _excluded=[\"value\",\"minimumValue\",\"maximumValue\",\"step\",\"minimumTrackTintColor\",\"maximumTrackTintColor\",\"thumbTintColor\",\"thumbStyle\",\"style\",\"inverted\",\"disabled\",\"trackHeight\",\"thumbSize\",\"thumbImage\",\"onRNCSliderSlidingStart\",\"onRNCSliderSlidingComplete\",\"onRNCSliderValueChange\"];var _this=this,_jsxFileName=\"C:\\\\Dev\\\\Projects\\\\react-native-slider\\\\package\\\\src\\\\RNCSliderNativeComponent.web.tsx\";function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!==\"function\")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!==\"object\"&&typeof obj!==\"function\"){return{default:obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!==\"default\"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}var valueToEvent=function valueToEvent(value){return{nativeEvent:{value:value}};};var RCTSliderWebComponent=_react.default.forwardRef(function(_ref,forwardedRef){var initialValue=_ref.value,_ref$minimumValue=_ref.minimumValue,minimumValue=_ref$minimumValue===void 0?0:_ref$minimumValue,_ref$maximumValue=_ref.maximumValue,maximumValue=_ref$maximumValue===void 0?0:_ref$maximumValue,_ref$step=_ref.step,step=_ref$step===void 0?1:_ref$step,_ref$minimumTrackTint=_ref.minimumTrackTintColor,minimumTrackTintColor=_ref$minimumTrackTint===void 0?'#009688':_ref$minimumTrackTint,_ref$maximumTrackTint=_ref.maximumTrackTintColor,maximumTrackTintColor=_ref$maximumTrackTint===void 0?'#939393':_ref$maximumTrackTint,_ref$thumbTintColor=_ref.thumbTintColor,thumbTintColor=_ref$thumbTintColor===void 0?'#009688':_ref$thumbTintColor,_ref$thumbStyle=_ref.thumbStyle,thumbStyle=_ref$thumbStyle===void 0?{}:_ref$thumbStyle,_ref$style=_ref.style,style=_ref$style===void 0?{}:_ref$style,_ref$inverted=_ref.inverted,inverted=_ref$inverted===void 0?false:_ref$inverted,_ref$disabled=_ref.disabled,disabled=_ref$disabled===void 0?false:_ref$disabled,_ref$trackHeight=_ref.trackHeight,trackHeight=_ref$trackHeight===void 0?4:_ref$trackHeight,_ref$thumbSize=_ref.thumbSize,thumbSize=_ref$thumbSize===void 0?20:_ref$thumbSize,thumbImage=_ref.thumbImage,_ref$onRNCSliderSlidi=_ref.onRNCSliderSlidingStart,onRNCSliderSlidingStart=_ref$onRNCSliderSlidi===void 0?function(_){}:_ref$onRNCSliderSlidi,_ref$onRNCSliderSlidi2=_ref.onRNCSliderSlidingComplete,onRNCSliderSlidingComplete=_ref$onRNCSliderSlidi2===void 0?function(_){}:_ref$onRNCSliderSlidi2,_ref$onRNCSliderValue=_ref.onRNCSliderValueChange,onRNCSliderValueChange=_ref$onRNCSliderValue===void 0?function(_){}:_ref$onRNCSliderValue,others=(0,_objectWithoutProperties2.default)(_ref,_excluded);var containerSize=_react.default.useRef({width:0,height:0});var containerPositionX=_react.default.useRef(0);var containerRef=forwardedRef||_react.default.createRef();var containerPositionInvalidated=_react.default.useRef(false);var _React$useState=_react.default.useState(initialValue||minimumValue),_React$useState2=(0,_slicedToArray2.default)(_React$useState,2),value=_React$useState2[0],setValue=_React$useState2[1];var lastInitialValue=_react.default.useRef();var animationValues=_react.default.useRef({val:new _reactNative.Animated.Value(value),min:new _reactNative.Animated.Value(minimumValue),max:new _reactNative.Animated.Value(maximumValue),diff:new _reactNative.Animated.Value(maximumValue-minimumValue||1)}).current;_react.default.useEffect(function(){animationValues.min.setValue(minimumValue);animationValues.max.setValue(maximumValue);animationValues.diff.setValue(maximumValue-minimumValue||1);},[animationValues,minimumValue,maximumValue]);var minPercent=_react.default.useRef(_reactNative.Animated.multiply(new _reactNative.Animated.Value(100),_reactNative.Animated.divide(_reactNative.Animated.subtract(animationValues.val,animationValues.min),animationValues.diff))).current;var maxPercent=_react.default.useRef(_reactNative.Animated.subtract(new _reactNative.Animated.Value(100),minPercent)).current;var onValueChange=(0,_react.useCallback)(function(value){onRNCSliderValueChange&&onRNCSliderValueChange(valueToEvent(value));},[onRNCSliderValueChange]);var onSlidingStart=(0,_react.useCallback)(function(value){onRNCSliderSlidingStart&&onRNCSliderSlidingStart(valueToEvent(value));},[onRNCSliderSlidingStart]);var onSlidingComplete=(0,_react.useCallback)(function(value){onRNCSliderSlidingComplete&&onRNCSliderSlidingComplete(valueToEvent(value));},[onRNCSliderSlidingComplete]);var _updateValue=(0,_react.useCallback)(function(newValue){var hardRounded=decimalPrecision.current<20?Number.parseFloat(newValue.toFixed(decimalPrecision.current)):newValue;var withinBounds=Math.max(minimumValue,Math.min(hardRounded,maximumValue));if(value!==withinBounds){setValue(withinBounds);onValueChange(withinBounds);return withinBounds;}return hardRounded;},[minimumValue,maximumValue,value,onValueChange]);_react.default.useLayoutEffect(function(){if(initialValue!==lastInitialValue.current){lastInitialValue.current=initialValue;var newValue=_updateValue(initialValue);animationValues.val.setValue(newValue);}},[initialValue,_updateValue,animationValues]);_react.default.useEffect(function(){var invalidateContainerPosition=function invalidateContainerPosition(){containerPositionInvalidated.current=true;};var onDocumentScroll=function onDocumentScroll(e){var isAlreadyInvalidated=!containerPositionInvalidated.current;if(isAlreadyInvalidated&&containerRef.current&&e.target.contains(containerRef.current)){invalidateContainerPosition();}};window.addEventListener('resize',invalidateContainerPosition);document.addEventListener('scroll',onDocumentScroll,{capture:true});return function(){window.removeEventListener('resize',invalidateContainerPosition);document.removeEventListener('scroll',onDocumentScroll,{capture:true});};},[containerRef]);var containerStyle=_reactNative.StyleSheet.compose({flexGrow:1,flexShrink:1,flexBasis:'auto',flexDirection:'row',alignItems:'center'},style);var trackStyle={height:trackHeight,borderRadius:trackHeight/2,userSelect:'none'};var minimumTrackStyle=Object.assign({},trackStyle,{backgroundColor:minimumTrackTintColor,flexGrow:minPercent});var maximumTrackStyle=Object.assign({},trackStyle,{backgroundColor:maximumTrackTintColor,flexGrow:maxPercent});var thumbViewStyle=_reactNative.StyleSheet.compose({width:thumbSize,height:thumbSize,backgroundColor:thumbTintColor,zIndex:1,borderRadius:thumbSize/2,overflow:'hidden'},thumbStyle);var decimalPrecision=_react.default.useRef(calculatePrecision(minimumValue,maximumValue,step));_react.default.useEffect(function(){decimalPrecision.current=calculatePrecision(minimumValue,maximumValue,step);},[maximumValue,minimumValue,step]);var updateContainerPositionX=function updateContainerPositionX(){var _ReactDOM$findDOMNode;var positionX=(_ReactDOM$findDOMNode=_reactDom.default.findDOMNode(containerRef.current).getBoundingClientRect())==null?void 0:_ReactDOM$findDOMNode.x;containerPositionX.current=positionX!=null?positionX:0;};var getValueFromNativeEvent=function getValueFromNativeEvent(pageX){var _containerSize$curren=containerSize.current.width,width=_containerSize$curren===void 0?1:_containerSize$curren;if(containerPositionInvalidated.current){containerPositionInvalidated.current=false;updateContainerPositionX();}var containerX=containerPositionX.current;if(pageXcontainerX+width){return inverted?minimumValue:maximumValue;}else{var x=pageX-containerX;var newValue=inverted?maximumValue-(maximumValue-minimumValue)*x/width:minimumValue+(maximumValue-minimumValue)*x/width;return step?Math.round(newValue/step)*step:newValue;}};var onTouchEnd=function onTouchEnd(_ref2){var nativeEvent=_ref2.nativeEvent;var newValue=_updateValue(getValueFromNativeEvent(nativeEvent.pageX));animationValues.val.setValue(newValue);onSlidingComplete(newValue);};var onMove=function onMove(_ref3){var nativeEvent=_ref3.nativeEvent;var newValue=getValueFromNativeEvent(nativeEvent.pageX);animationValues.val.setValue(newValue);_updateValue(newValue);};var accessibilityActions=function accessibilityActions(event){var tenth=(maximumValue-minimumValue)/10;switch(event.nativeEvent.actionName){case'increment':_updateValue(value+(step||tenth));break;case'decrement':_updateValue(value-(step||tenth));break;}};_react.default.useImperativeHandle(forwardedRef,function(){return{updateValue:function updateValue(val){_updateValue(val);}};},[_updateValue]);return _react.default.createElement(_reactNative.View,(0,_extends2.default)({ref:containerRef,onLayout:function onLayout(_ref4){var layout=_ref4.nativeEvent.layout;containerSize.current.height=layout.height;containerSize.current.width=layout.width;if(containerRef.current){updateContainerPositionX();}},accessibilityActions:[{name:'increment',label:'increment'},{name:'decrement',label:'decrement'}],onAccessibilityAction:accessibilityActions,accessible:true,accessibilityRole:'adjustable',style:containerStyle},others,{onStartShouldSetResponder:function onStartShouldSetResponder(){return!disabled;},onMoveShouldSetResponder:function onMoveShouldSetResponder(){return!disabled;},onResponderGrant:function onResponderGrant(){return onSlidingStart(value);},onResponderRelease:onTouchEnd,onResponderMove:onMove,__self:_this,__source:{fileName:_jsxFileName,lineNumber:318,columnNumber:7}}),_react.default.createElement(_reactNative.Animated.View,{pointerEvents:\"none\",style:minimumTrackStyle,__self:_this,__source:{fileName:_jsxFileName,lineNumber:343,columnNumber:9}}),_react.default.createElement(_reactNative.View,{pointerEvents:\"none\",style:thumbViewStyle,__self:_this,__source:{fileName:_jsxFileName,lineNumber:344,columnNumber:9}},thumbImage!==undefined?_react.default.createElement(_reactNative.Image,{source:thumbImage,style:{width:'100%',height:'100%'},__self:_this,__source:{fileName:_jsxFileName,lineNumber:346,columnNumber:13}}):null),_react.default.createElement(_reactNative.Animated.View,{pointerEvents:\"none\",style:maximumTrackStyle,__self:_this,__source:{fileName:_jsxFileName,lineNumber:352,columnNumber:9}}));});function calculatePrecision(minimumValue,maximumValue,step){if(!step){return Infinity;}else{var decimals=[minimumValue,maximumValue,step].map(function(value){return((value+'').split('.').pop()||'').length;});return Math.max.apply(Math,(0,_toConsumableArray2.default)(decimals));}}RCTSliderWebComponent.displayName='RTCSliderWebComponent';var _default=RCTSliderWebComponent;exports.default=_default;","var _interopRequireDefault=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _extends2=_interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));var _objectWithoutProperties2=_interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));var _react=_interopRequireDefault(require(\"react\"));var _reactNative=require(\"react-native\");var _index=_interopRequireDefault(require(\"./index\"));var _excluded=[\"onValueChange\",\"onSlidingStart\",\"onSlidingComplete\",\"onAccessibilityAction\"];var _this=this,_jsxFileName=\"C:\\\\Dev\\\\Projects\\\\react-native-slider\\\\package\\\\src\\\\Slider.tsx\";var LIMIT_MIN_VALUE=Number.MIN_SAFE_INTEGER;var LIMIT_MAX_VALUE=Number.MAX_SAFE_INTEGER;var SliderComponent=function SliderComponent(props,forwardedRef){var _props$accessibilityS;var style=_reactNative.StyleSheet.compose(props.style,styles.slider);var onValueChange=props.onValueChange,onSlidingStart=props.onSlidingStart,onSlidingComplete=props.onSlidingComplete,onAccessibilityAction=props.onAccessibilityAction,localProps=(0,_objectWithoutProperties2.default)(props,_excluded);var onValueChangeEvent=onValueChange?function(event){onValueChange(event.nativeEvent.value);}:null;var _disabled=typeof props.disabled==='boolean'?props.disabled:((_props$accessibilityS=props.accessibilityState)==null?void 0:_props$accessibilityS.disabled)===true;var _accessibilityState=typeof props.disabled==='boolean'?Object.assign({},props.accessibilityState,{disabled:props.disabled}):props.accessibilityState;var onSlidingStartEvent=onSlidingStart?function(event){onSlidingStart(event.nativeEvent.value);}:null;var onSlidingCompleteEvent=onSlidingComplete?function(event){onSlidingComplete(event.nativeEvent.value);}:null;var onAccessibilityActionEvent=onAccessibilityAction?function(event){onAccessibilityAction(event);}:null;var lowerLimit=!!localProps.lowerLimit||localProps.lowerLimit===0?localProps.lowerLimit:LIMIT_MIN_VALUE;var upperLimit=!!localProps.upperLimit||localProps.upperLimit===0?localProps.upperLimit:LIMIT_MAX_VALUE;return _react.default.createElement(_index.default,(0,_extends2.default)({},localProps,{lowerLimit:lowerLimit,upperLimit:upperLimit,accessibilityState:_accessibilityState,thumbImage:_reactNative.Platform.OS==='web'?props.thumbImage:props.thumbImage?_reactNative.Image.resolveAssetSource(props.thumbImage):undefined,ref:forwardedRef,style:style,onChange:onValueChangeEvent,onRNCSliderSlidingStart:onSlidingStartEvent,onRNCSliderSlidingComplete:onSlidingCompleteEvent,onRNCSliderValueChange:onValueChangeEvent,disabled:_disabled,onStartShouldSetResponder:function onStartShouldSetResponder(){return true;},onResponderTerminationRequest:function onResponderTerminationRequest(){return false;},onRNCSliderAccessibilityAction:onAccessibilityActionEvent,__self:_this,__source:{fileName:_jsxFileName,lineNumber:248,columnNumber:5}}));};var SliderWithRef=_react.default.forwardRef(SliderComponent);SliderWithRef.defaultProps={value:0,minimumValue:0,maximumValue:1,step:0,inverted:false,tapToSeek:false,lowerLimit:LIMIT_MIN_VALUE,upperLimit:LIMIT_MAX_VALUE};var styles=_reactNative.StyleSheet.create(_reactNative.Platform.OS==='ios'?{slider:{height:40}}:{slider:{}});var _default=SliderWithRef;exports.default=_default;","Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var RNCSlider=require('./RNCSliderNativeComponent').default;var _default=RNCSlider;exports.default=_default;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n'use strict';\n\nexport type PackagerAsset = {\n +__packager_asset: boolean,\n +fileSystemLocation: string,\n +httpServerLocation: string,\n +width: ?number,\n +height: ?number,\n +scales: Array,\n +hash: string,\n +name: string,\n +type: string,\n ...\n};\n\nconst assets: Array = [];\n\nfunction registerAsset(asset: PackagerAsset): number {\n // `push` returns new array length, so the first asset will\n // get id 1 (not 0) to make the value truthy\n return assets.push(asset);\n}\n\nfunction getAssetByID(assetId: number): PackagerAsset {\n return assets[assetId - 1];\n}\n\nmodule.exports = {registerAsset, getAssetByID};\n","import type { PackagerAsset } from '@react-native/assets-registry/registry';\nimport { Platform } from 'expo-modules-core';\nimport { PixelRatio } from 'react-native';\n\nexport type ResolvedAssetSource = {\n __packager_asset: boolean;\n width?: number;\n height?: number;\n uri: string;\n scale: number;\n};\n\n// Returns the Metro dev server-specific asset location.\nfunction getScaledAssetPath(asset): string {\n const scale = AssetSourceResolver.pickScale(asset.scales, PixelRatio.get());\n const scaleSuffix = scale === 1 ? '' : '@' + scale + 'x';\n const type = !asset.type ? '' : `.${asset.type}`;\n if (__DEV__) {\n return asset.httpServerLocation + '/' + asset.name + scaleSuffix + type;\n } else {\n return asset.httpServerLocation.replace(/\\.\\.\\//g, '_') + '/' + asset.name + scaleSuffix + type;\n }\n}\n\nexport default class AssetSourceResolver {\n serverUrl: string;\n // where the jsbundle is being run from\n // NOTE(EvanBacon): Never defined on web.\n jsbundleUrl?: string | null;\n // the asset to resolve\n asset: PackagerAsset;\n\n constructor(\n serverUrl: string | undefined | null,\n jsbundleUrl: string | undefined | null,\n asset: PackagerAsset\n ) {\n this.serverUrl = serverUrl || 'https://expo.dev';\n this.jsbundleUrl = null;\n this.asset = asset;\n }\n\n // Always true for web runtimes\n isLoadedFromServer(): boolean {\n return true;\n }\n\n // Always false for web runtimes\n isLoadedFromFileSystem(): boolean {\n return false;\n }\n\n defaultAsset(): ResolvedAssetSource {\n return this.assetServerURL();\n }\n\n /**\n * @returns absolute remote URL for the hosted asset.\n */\n assetServerURL(): ResolvedAssetSource {\n const fromUrl = new URL(getScaledAssetPath(this.asset), this.serverUrl);\n fromUrl.searchParams.set('platform', Platform.OS);\n fromUrl.searchParams.set('hash', this.asset.hash);\n return this.fromSource(\n // Relative on web\n fromUrl.toString().replace(fromUrl.origin, '')\n );\n }\n\n fromSource(source: string): ResolvedAssetSource {\n return {\n __packager_asset: true,\n width: this.asset.width ?? undefined,\n height: this.asset.height ?? undefined,\n uri: source,\n scale: AssetSourceResolver.pickScale(this.asset.scales, PixelRatio.get()),\n };\n }\n\n static pickScale(scales: number[], deviceScale: number): number {\n for (let i = 0; i < scales.length; i++) {\n if (scales[i] >= deviceScale) {\n return scales[i];\n }\n }\n return scales[scales.length - 1] || 1;\n }\n}\n","export const IS_MANAGED_ENV = false;\nexport const IS_ENV_WITH_UPDATES_ENABLED = false;\nexport const IS_ENV_WITHOUT_UPDATES_ENABLED = false;\n\n// Compute manifest base URL if available\nexport const manifestBaseUrl = null;\n\nexport async function downloadAsync(uri, hash, type, name): Promise {\n return uri;\n}\n\nexport function getManifest() {\n return {};\n}\n\nexport function getManifest2() {\n return {};\n}\n","import type { PackagerAsset } from '@react-native/assets-registry/registry';\nimport { Platform } from 'expo-modules-core';\nimport { PixelRatio, NativeModules } from 'react-native';\n\nimport AssetSourceResolver from './AssetSourceResolver';\nimport { getManifest, getManifest2, manifestBaseUrl } from './PlatformUtils';\n\n// @docsMissing\nexport type AssetMetadata = Pick<\n PackagerAsset,\n 'httpServerLocation' | 'name' | 'hash' | 'type' | 'scales' | 'width' | 'height'\n> & {\n uri?: string;\n fileHashes?: string[];\n fileUris?: string[];\n};\n\nexport type AssetSource = {\n uri: string;\n hash: string;\n};\n\n// Fast lookup check if asset map has any overrides in the manifest.\n// This value will always be either null or an absolute URL, e.g. `https://expo.dev/`\nconst assetMapOverride = getManifest().assetMapOverride;\n\n/**\n * Selects the best file for the given asset (ex: choosing the best scale for images) and returns\n * a { uri, hash } pair for the specific asset file.\n *\n * If the asset isn't an image with multiple scales, the first file is selected.\n */\nexport function selectAssetSource(meta: AssetMetadata): AssetSource {\n // Override with the asset map in manifest if available\n if (assetMapOverride && assetMapOverride.hasOwnProperty(meta.hash)) {\n meta = { ...meta, ...assetMapOverride[meta.hash] };\n }\n\n // This logic is based on that of AssetSourceResolver, with additional support for file hashes and\n // explicitly provided URIs\n const scale = AssetSourceResolver.pickScale(meta.scales, PixelRatio.get());\n const index = meta.scales.findIndex((s) => s === scale);\n const hash = meta.fileHashes ? meta.fileHashes[index] ?? meta.fileHashes[0] : meta.hash;\n\n // Allow asset processors to directly provide the URL to load\n const uri = meta.fileUris ? meta.fileUris[index] ?? meta.fileUris[0] : meta.uri;\n if (uri) {\n return { uri: resolveUri(uri), hash };\n }\n\n // Check if the assetUrl was overridden in the manifest\n const assetUrlOverride = getManifest().assetUrlOverride;\n if (assetUrlOverride) {\n const uri = pathJoin(assetUrlOverride, hash);\n return { uri: resolveUri(uri), hash };\n }\n\n const fileScale = scale === 1 ? '' : `@${scale}x`;\n const fileExtension = meta.type ? `.${encodeURIComponent(meta.type)}` : '';\n const suffix = `/${encodeURIComponent(meta.name)}${fileScale}${fileExtension}`;\n const params = new URLSearchParams({\n platform: Platform.OS,\n hash: meta.hash,\n });\n\n // For assets with a specified absolute URL, we use the existing origin instead of prepending the\n // development server or production CDN URL origin\n if (/^https?:\\/\\//.test(meta.httpServerLocation)) {\n const uri = meta.httpServerLocation + suffix + '?' + params;\n return { uri, hash };\n }\n\n // For assets during development using manifest2, we use the development server's URL origin\n const manifest2 = getManifest2();\n\n const devServerUrl = manifest2?.extra?.expoGo?.developer\n ? 'http://' + manifest2.extra.expoGo.debuggerHost\n : // For assets during development, we use the development server's URL origin\n getManifest().developer\n ? getManifest().bundleUrl\n : null;\n if (devServerUrl) {\n const baseUrl = new URL(meta.httpServerLocation + suffix, devServerUrl);\n\n baseUrl.searchParams.set('platform', Platform.OS);\n baseUrl.searchParams.set('hash', meta.hash);\n return {\n uri: baseUrl.href,\n hash,\n };\n }\n\n // Temporary fallback for loading assets in Expo Go home\n if (NativeModules.ExponentKernel) {\n return { uri: `https://classic-assets.eascdn.net/~assets/${encodeURIComponent(hash)}`, hash };\n }\n\n // In correctly configured apps, we arrive here if the asset is locally available on disk due to\n // being managed by expo-updates, and `getLocalAssetUri(hash)` must return a local URI for this\n // hash. Since the asset is local, we don't have a remote URL and specify an invalid URL (an empty\n // string) as a placeholder.\n return { uri: '', hash };\n}\n\n/**\n * Resolves the given URI to an absolute URI. If the given URI is already an absolute URI, it is\n * simply returned. Otherwise, if it is a relative URI, it is resolved relative to the manifest's\n * base URI.\n */\nexport function resolveUri(uri: string): string {\n // `manifestBaseUrl` is always an absolute URL or `null`.\n return manifestBaseUrl ? new URL(uri, manifestBaseUrl).href : uri;\n}\n\n// A very cheap path canonicalization like path.join but without depending on a `path` polyfill.\nexport function pathJoin(...paths: string[]): string {\n // Start by simply combining paths, without worrying about \"..\" or \".\"\n const combined = paths\n .map((part, index) => {\n if (index === 0) {\n return part.trim().replace(/\\/*$/, '');\n }\n return part.trim().replace(/(^\\/*|\\/*$)/g, '');\n })\n .filter((part) => part.length > 0)\n .join('/')\n .split('/');\n\n // Handle \"..\" and \".\" in paths\n const resolved: string[] = [];\n for (const part of combined) {\n if (part === '..') {\n resolved.pop(); // Remove the last element from the result\n } else if (part !== '.') {\n resolved.push(part);\n }\n }\n\n return resolved.join('/');\n}\n","export function getFilename(url: string): string {\n const { pathname, searchParams } = new URL(url, 'https://e');\n\n // When attached to a dev server, we use `unstable_path` to represent the file path. This ensures\n // the file name is not canonicalized by the browser.\n // NOTE(EvanBacon): This is technically not tied to `__DEV__` as it's possible to use this while bundling in production\n // mode.\n if (__DEV__) {\n if (searchParams.has('unstable_path')) {\n const encodedFilePath = decodeURIComponent(searchParams.get('unstable_path')!);\n return getBasename(encodedFilePath);\n }\n }\n\n return getBasename(pathname);\n}\n\nfunction getBasename(pathname: string): string {\n return pathname.substring(pathname.lastIndexOf('/') + 1);\n}\n\nexport function getFileExtension(url: string): string {\n const filename = getFilename(url);\n const dotIndex = filename.lastIndexOf('.');\n // Ignore leading dots for hidden files\n return dotIndex > 0 ? filename.substring(dotIndex) : '';\n}\n\n/**\n * Returns the base URL from a manifest's URL. For example, given a manifest hosted at\n * https://example.com/app/manifest.json, the base URL would be https://example.com/app/. Query\n * parameters and fragments also are removed.\n *\n * For an Expo-hosted project with a manifest hosted at https://exp.host/@user/project/index.exp, the\n * base URL would be https://exp.host/@user/project.\n *\n * We also normalize the \"exp\" protocol to \"http\" to handle internal URLs with the Expo schemes used\n * to tell the OS to open the URLs in the the Expo client.\n */\nexport function getManifestBaseUrl(manifestUrl: string): string {\n const urlObject = new URL(manifestUrl);\n\n let nextProtocol = urlObject.protocol;\n // Change the scheme to http(s) if it is exp(s)\n if (nextProtocol === 'exp:') {\n nextProtocol = 'http:';\n } else if (nextProtocol === 'exps:') {\n nextProtocol = 'https:';\n }\n urlObject.protocol = nextProtocol;\n\n // Trim filename, query parameters, and fragment, if any\n const directory = urlObject.pathname.substring(0, urlObject.pathname.lastIndexOf('/') + 1);\n urlObject.pathname = directory;\n urlObject.search = '';\n urlObject.hash = '';\n\n // The URL spec doesn't allow for changing the protocol to `http` or `https`\n // without a port set so instead, we'll just swap the protocol manually.\n return urlObject.protocol !== nextProtocol\n ? urlObject.href.replace(urlObject.protocol, nextProtocol)\n : urlObject.href;\n}\n","import { getAssetByID } from '@react-native/assets-registry/registry';\n\nimport AssetSourceResolver, { ResolvedAssetSource } from './AssetSourceResolver';\n\nlet _customSourceTransformer;\n\nexport function setCustomSourceTransformer(\n transformer: (resolver: AssetSourceResolver) => ResolvedAssetSource\n): void {\n _customSourceTransformer = transformer;\n}\n\n/**\n * `source` is either a number (opaque type returned by require('./foo.png'))\n * or an `ImageSource` like { uri: '' }\n */\nexport default function resolveAssetSource(source: any): ResolvedAssetSource | null {\n if (typeof source === 'object') {\n return source;\n }\n\n const asset = getAssetByID(source);\n if (!asset) {\n return null;\n }\n\n const resolver = new AssetSourceResolver(\n // Doesn't matter since this is removed on web\n 'https://expo.dev',\n null,\n asset\n );\n if (_customSourceTransformer) {\n return _customSourceTransformer(resolver);\n }\n return resolver.defaultAsset();\n}\n\nObject.defineProperty(resolveAssetSource, 'setCustomSourceTransformer', {\n get() {\n return setCustomSourceTransformer;\n },\n});\n\nexport const { pickScale } = AssetSourceResolver;\n","import { getAssetByID } from '@react-native/assets-registry/registry';\nimport { Platform } from 'expo-modules-core';\n\nimport { AssetMetadata, selectAssetSource } from './AssetSources';\nimport * as AssetUris from './AssetUris';\nimport * as ImageAssets from './ImageAssets';\nimport { getLocalAssetUri } from './LocalAssets';\nimport { downloadAsync, IS_ENV_WITH_UPDATES_ENABLED } from './PlatformUtils';\nimport resolveAssetSource from './resolveAssetSource';\n\n// @docsMissing\nexport type AssetDescriptor = {\n name: string;\n type: string;\n hash?: string | null;\n uri: string;\n width?: number | null;\n height?: number | null;\n};\n\ntype DownloadPromiseCallbacks = {\n resolve: () => void;\n reject: (error: Error) => void;\n};\n\nexport { AssetMetadata };\n\n// @needsAudit\n/**\n * The `Asset` class represents an asset in your app. It gives metadata about the asset (such as its\n * name and type) and provides facilities to load the asset data.\n */\nexport class Asset {\n /**\n * @private\n */\n static byHash = {};\n /**\n * @private\n */\n static byUri = {};\n\n /**\n * The name of the asset file without the extension. Also without the part from `@` onward in the\n * filename (used to specify scale factor for images).\n */\n name: string;\n /**\n * The extension of the asset filename.\n */\n type: string;\n /**\n * The MD5 hash of the asset's data.\n */\n hash: string | null = null;\n /**\n * A URI that points to the asset's data on the remote server. When running the published version\n * of your app, this refers to the location on Expo's asset server where Expo has stored your\n * asset. When running the app from Expo CLI during development, this URI points to Expo CLI's\n * server running on your computer and the asset is served directly from your computer. If you\n * are not using Classic Updates (legacy), this field should be ignored as we ensure your assets\n * are on device before before running your application logic.\n */\n uri: string;\n /**\n * If the asset has been downloaded (by calling [`downloadAsync()`](#downloadasync)), the\n * `file://` URI pointing to the local file on the device that contains the asset data.\n */\n localUri: string | null = null;\n /**\n * If the asset is an image, the width of the image data divided by the scale factor. The scale\n * factor is the number after `@` in the filename, or `1` if not present.\n */\n width: number | null = null;\n /**\n * If the asset is an image, the height of the image data divided by the scale factor. The scale factor is the number after `@` in the filename, or `1` if not present.\n */\n height: number | null = null;\n // @docsMissing\n downloading: boolean = false;\n // @docsMissing\n downloaded: boolean = false;\n\n /**\n * @private\n */\n _downloadCallbacks: DownloadPromiseCallbacks[] = [];\n\n constructor({ name, type, hash = null, uri, width, height }: AssetDescriptor) {\n this.name = name;\n this.type = type;\n this.hash = hash;\n this.uri = uri;\n\n if (typeof width === 'number') {\n this.width = width;\n }\n if (typeof height === 'number') {\n this.height = height;\n }\n\n if (hash) {\n this.localUri = getLocalAssetUri(hash, type);\n if (this.localUri) {\n this.downloaded = true;\n }\n }\n\n if (Platform.OS === 'web') {\n if (!name) {\n this.name = AssetUris.getFilename(uri);\n }\n if (!type) {\n this.type = AssetUris.getFileExtension(uri);\n }\n }\n }\n\n // @needsAudit\n /**\n * A helper that wraps `Asset.fromModule(module).downloadAsync` for convenience.\n * @param moduleId An array of `require('path/to/file')` or external network URLs. Can also be\n * just one module or URL without an Array.\n * @return Returns a Promise that fulfills with an array of `Asset`s when the asset(s) has been\n * saved to disk.\n * @example\n * ```ts\n * const [{ localUri }] = await Asset.loadAsync(require('./assets/snack-icon.png'));\n * ```\n */\n static loadAsync(moduleId: number | number[] | string | string[]): Promise {\n const moduleIds = Array.isArray(moduleId) ? moduleId : [moduleId];\n return Promise.all(moduleIds.map((moduleId) => Asset.fromModule(moduleId).downloadAsync()));\n }\n\n // @needsAudit\n /**\n * Returns the [`Asset`](#asset) instance representing an asset given its module or URL.\n * @param virtualAssetModule The value of `require('path/to/file')` for the asset or external\n * network URL\n * @return The [`Asset`](#asset) instance for the asset.\n */\n static fromModule(virtualAssetModule: number | string): Asset {\n if (typeof virtualAssetModule === 'string') {\n return Asset.fromURI(virtualAssetModule);\n }\n\n const meta = getAssetByID(virtualAssetModule);\n if (!meta) {\n throw new Error(`Module \"${virtualAssetModule}\" is missing from the asset registry`);\n }\n\n // Outside of the managed env we need the moduleId to initialize the asset\n // because resolveAssetSource depends on it\n if (!IS_ENV_WITH_UPDATES_ENABLED) {\n // null-check is performed above with `getAssetByID`.\n const { uri } = resolveAssetSource(virtualAssetModule)!;\n\n const asset = new Asset({\n name: meta.name,\n type: meta.type,\n hash: meta.hash,\n uri,\n width: meta.width,\n height: meta.height,\n });\n\n // TODO: FileSystem should probably support 'downloading' from drawable\n // resources But for now it doesn't (it only supports raw resources) and\n // React Native's Image works fine with drawable resource names for\n // images.\n if (Platform.OS === 'android' && !uri.includes(':') && (meta.width || meta.height)) {\n asset.localUri = asset.uri;\n asset.downloaded = true;\n }\n\n Asset.byHash[meta.hash] = asset;\n return asset;\n }\n\n return Asset.fromMetadata(meta);\n }\n\n // @docsMissing\n static fromMetadata(meta: AssetMetadata): Asset {\n // The hash of the whole asset, not to be confused with the hash of a specific file returned\n // from `selectAssetSource`\n const metaHash = meta.hash;\n if (Asset.byHash[metaHash]) {\n return Asset.byHash[metaHash];\n }\n\n const { uri, hash } = selectAssetSource(meta);\n const asset = new Asset({\n name: meta.name,\n type: meta.type,\n hash,\n uri,\n width: meta.width,\n height: meta.height,\n });\n Asset.byHash[metaHash] = asset;\n return asset;\n }\n\n // @docsMissing\n static fromURI(uri: string): Asset {\n if (Asset.byUri[uri]) {\n return Asset.byUri[uri];\n }\n\n // Possibly a Base64-encoded URI\n let type = '';\n if (uri.indexOf(';base64') > -1) {\n type = uri.split(';')[0].split('/')[1];\n } else {\n const extension = AssetUris.getFileExtension(uri);\n type = extension.startsWith('.') ? extension.substring(1) : extension;\n }\n\n const asset = new Asset({\n name: '',\n type,\n hash: null,\n uri,\n });\n\n Asset.byUri[uri] = asset;\n\n return asset;\n }\n\n // @needsAudit\n /**\n * Downloads the asset data to a local file in the device's cache directory. Once the returned\n * promise is fulfilled without error, the [`localUri`](#assetlocaluri) field of this asset points\n * to a local file containing the asset data. The asset is only downloaded if an up-to-date local\n * file for the asset isn't already present due to an earlier download. The downloaded `Asset`\n * will be returned when the promise is resolved.\n * @return Returns a Promise which fulfills with an `Asset` instance.\n */\n async downloadAsync(): Promise {\n if (this.downloaded) {\n return this;\n }\n if (this.downloading) {\n await new Promise((resolve, reject) => {\n this._downloadCallbacks.push({ resolve, reject });\n });\n return this;\n }\n this.downloading = true;\n\n try {\n if (Platform.OS === 'web') {\n if (ImageAssets.isImageType(this.type)) {\n const { width, height, name } = await ImageAssets.getImageInfoAsync(this.uri);\n this.width = width;\n this.height = height;\n this.name = name;\n } else {\n this.name = AssetUris.getFilename(this.uri);\n }\n }\n this.localUri = await downloadAsync(this.uri, this.hash, this.type, this.name);\n\n this.downloaded = true;\n this._downloadCallbacks.forEach(({ resolve }) => resolve());\n } catch (e) {\n this._downloadCallbacks.forEach(({ reject }) => reject(e));\n throw e;\n } finally {\n this.downloading = false;\n this._downloadCallbacks = [];\n }\n return this;\n }\n}\n","export function getLocalAssetUri(hash: string, type: string | null): string | null {\n // noop on web\n return null;\n}\n","/* eslint-env browser */\nimport { Platform } from 'expo-modules-core';\n\nimport { getFilename } from './AssetUris';\n\ntype ImageInfo = {\n name: string;\n width: number;\n height: number;\n};\n\nexport function isImageType(type: string): boolean {\n return /^(jpeg|jpg|gif|png|bmp|webp|heic)$/i.test(type);\n}\n\nexport function getImageInfoAsync(url: string): Promise {\n if (!Platform.isDOMAvailable) {\n return Promise.resolve({ name: getFilename(url), width: 0, height: 0 });\n }\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.onerror = reject;\n img.onload = () => {\n resolve({\n name: getFilename(url),\n width: img.naturalWidth,\n height: img.naturalHeight,\n });\n };\n img.src = url;\n });\n}\n","import { Asset } from 'expo-asset';\nimport { Platform } from 'expo-modules-core';\n\nimport {\n AVPlaybackSource,\n AVPlaybackNativeSource,\n AVPlaybackStatus,\n AVPlaybackStatusToSet,\n PitchCorrectionQuality,\n AVPlaybackTolerance,\n} from './AV.types';\n\n// TODO add:\n// disableFocusOnAndroid\n// audio routes (at least did become noisy on android)\n// pan\n// pitch\n// API to explicitly request audio focus / session\n// API to select stream type on Android\n// subtitles API\n\n/**\n * @hidden\n */\nexport const _DEFAULT_PROGRESS_UPDATE_INTERVAL_MILLIS: number = 500;\n\n// @needsAudit\n/**\n * The default initial `AVPlaybackStatusToSet` of all `Audio.Sound` objects and `Video` components is as follows:\n *\n * ```javascript\n * {\n * progressUpdateIntervalMillis: 500,\n * positionMillis: 0,\n * shouldPlay: false,\n * rate: 1.0,\n * shouldCorrectPitch: false,\n * volume: 1.0,\n * isMuted: false,\n * isLooping: false,\n * }\n * ```\n *\n * This default initial status can be overwritten by setting the optional `initialStatus` in `loadAsync()` or `Audio.Sound.createAsync()`.\n */\nexport const _DEFAULT_INITIAL_PLAYBACK_STATUS: AVPlaybackStatusToSet = {\n positionMillis: 0,\n progressUpdateIntervalMillis: _DEFAULT_PROGRESS_UPDATE_INTERVAL_MILLIS,\n shouldPlay: false,\n rate: 1.0,\n shouldCorrectPitch: false,\n volume: 1.0,\n audioPan: 0,\n isMuted: false,\n isLooping: false,\n};\n\n// @needsAudit\n/**\n * @hidden\n */\nexport function getNativeSourceFromSource(\n source?: AVPlaybackSource | null\n): AVPlaybackNativeSource | null {\n let uri: string | null = null;\n let overridingExtension: string | null = null;\n let headers: AVPlaybackNativeSource['headers'];\n\n if (typeof source === 'string' && Platform.OS === 'web') {\n return {\n uri: source,\n overridingExtension,\n headers,\n };\n }\n\n const asset: Asset | null = _getAssetFromPlaybackSource(source);\n if (asset != null) {\n uri = asset.localUri || asset.uri;\n } else if (\n source != null &&\n typeof source !== 'number' &&\n 'uri' in source &&\n typeof source.uri === 'string'\n ) {\n uri = source.uri;\n }\n\n if (uri == null) {\n return null;\n }\n\n if (\n source != null &&\n typeof source !== 'number' &&\n 'overrideFileExtensionAndroid' in source &&\n typeof source.overrideFileExtensionAndroid === 'string'\n ) {\n overridingExtension = source.overrideFileExtensionAndroid;\n }\n\n if (\n source != null &&\n typeof source !== 'number' &&\n 'headers' in source &&\n typeof source.headers === 'object'\n ) {\n headers = source.headers;\n }\n return { uri, overridingExtension, headers };\n}\n\nfunction _getAssetFromPlaybackSource(source?: AVPlaybackSource | null): Asset | null {\n if (source == null) {\n return null;\n }\n\n let asset: Asset | null = null;\n if (typeof source === 'number') {\n asset = Asset.fromModule(source);\n } else if (source instanceof Asset) {\n asset = source;\n }\n return asset;\n}\n\n// @needsAudit\n/**\n * @hidden\n */\nexport function assertStatusValuesInBounds(status: AVPlaybackStatusToSet): void {\n if (typeof status.rate === 'number' && (status.rate < 0 || status.rate > 32)) {\n throw new RangeError('Rate value must be between 0.0 and 32.0');\n }\n if (typeof status.volume === 'number' && (status.volume < 0 || status.volume > 1)) {\n throw new RangeError('Volume value must be between 0.0 and 1.0');\n }\n if (typeof status.audioPan === 'number' && (status.audioPan < -1 || status.audioPan > 1)) {\n throw new RangeError('Pan value must be between -1.0 and 1.0');\n }\n}\n\n// @needsAudit\n/**\n * @hidden\n */\nexport async function getNativeSourceAndFullInitialStatusForLoadAsync(\n source: AVPlaybackSource | null,\n initialStatus: AVPlaybackStatusToSet | null,\n downloadFirst: boolean\n): Promise<{\n nativeSource: AVPlaybackNativeSource;\n fullInitialStatus: AVPlaybackStatusToSet;\n}> {\n // Get the full initial status\n const fullInitialStatus: AVPlaybackStatusToSet =\n initialStatus == null\n ? _DEFAULT_INITIAL_PLAYBACK_STATUS\n : {\n ..._DEFAULT_INITIAL_PLAYBACK_STATUS,\n ...initialStatus,\n };\n assertStatusValuesInBounds(fullInitialStatus);\n\n if (typeof source === 'string' && Platform.OS === 'web') {\n return {\n nativeSource: {\n uri: source,\n overridingExtension: null,\n },\n fullInitialStatus,\n };\n }\n\n // Download first if necessary.\n const asset = _getAssetFromPlaybackSource(source);\n if (downloadFirst && asset) {\n // TODO we can download remote uri too once @nikki93 has integrated this into Asset\n await asset.downloadAsync();\n }\n\n // Get the native source\n const nativeSource: AVPlaybackNativeSource | null = getNativeSourceFromSource(source);\n\n if (nativeSource === null) {\n throw new Error(`Cannot load an AV asset from a null playback source`);\n }\n\n // If asset has been downloaded use the localUri\n if (asset && asset.localUri) {\n nativeSource.uri = asset.localUri;\n }\n\n return { nativeSource, fullInitialStatus };\n}\n\n// @needsAudit\n/**\n * @hidden\n */\nexport function getUnloadedStatus(error: string | null = null): AVPlaybackStatus {\n return {\n isLoaded: false,\n ...(error ? { error } : null),\n };\n}\n\n// @needsAudit\nexport interface AV {\n /**\n * Sets a new `AVPlaybackStatusToSet` on the `playbackObject`. This method can only be called if the media has been loaded.\n * @param status The new `AVPlaybackStatusToSet` of the `playbackObject`, whose values will override the current playback status.\n * @return A `Promise` that is fulfilled with the `AVPlaybackStatus` of the `playbackObject` once the new status has been set successfully,\n * or rejects if setting the new status failed. See below for details on `AVPlaybackStatus`.\n */\n setStatusAsync(status: AVPlaybackStatusToSet): Promise;\n\n /**\n * Gets the `AVPlaybackStatus` of the `playbackObject`.\n * @return A `Promise` that is fulfilled with the `AVPlaybackStatus` of the `playbackObject`.\n */\n getStatusAsync(): Promise;\n}\n\n// @needsAudit\n/**\n * On the `playbackObject` reference, the following API is provided.\n */\nexport interface Playback extends AV {\n /**\n * This is equivalent to `playbackObject.setStatusAsync({ shouldPlay: true })`.\n *\n * Playback may not start immediately after calling this function for reasons such as buffering. Make sure to update your UI based\n * on the `isPlaying` and `isBuffering` properties of the `AVPlaybackStatus`.\n */\n playAsync(): Promise;\n\n /**\n * Loads the media from `source` into memory and prepares it for playing. This must be called before calling `setStatusAsync()`\n * or any of the convenience set status methods. This method can only be called if the `playbackObject` is in an unloaded state.\n * @param source The source of the media.\n * @param initialStatus The initial intended `AVPlaybackStatusToSet` of the `playbackObject`, whose values will override the default initial playback status.\n * This value defaults to `{}` if no parameter is passed. For more information see the details on `AVPlaybackStatusToSet` type\n * and the default initial playback status.\n * @param downloadAsync If set to `true`, the system will attempt to download the resource to the device before loading.\n * This value defaults to `true`. Note that at the moment, this will only work for `source`s of the form `require('path/to/file')` or `Asset` objects.\n * @return A `Promise` that is fulfilled with the `AVPlaybackStatus` of the `playbackObject` once it is loaded, or rejects if loading failed.\n * The `Promise` will also reject if the `playbackObject` was already loaded. See below for details on `AVPlaybackStatus`.\n */\n loadAsync(\n source: AVPlaybackSource,\n initialStatus?: AVPlaybackStatusToSet,\n downloadAsync?: boolean\n ): Promise;\n\n /**\n * Unloads the media from memory. `loadAsync()` must be called again in order to be able to play the media.\n * > This cleanup function will be automatically called in the `Video` component's `componentWillUnmount`.\n * @return A `Promise` that is fulfilled with the `AVPlaybackStatus` of the `playbackObject` once it is unloaded, or rejects if unloading failed.\n */\n unloadAsync(): Promise;\n\n /**\n * This is equivalent to `playbackObject.setStatusAsync({ shouldPlay: true, positionMillis, seekMillisToleranceAfter: tolerances.seekMillisToleranceAfter, seekMillisToleranceBefore: tolerances.seekMillisToleranceBefore })`.\n *\n * Playback may not start immediately after calling this function for reasons such as buffering. Make sure to update your UI based\n * on the `isPlaying` and `isBuffering` properties of the `AVPlaybackStatus`.\n * @param positionMillis The desired position of playback in milliseconds.\n * @param tolerances The tolerances are used only on iOS ([more details](#what-is-seek-tolerance-and-why-would)).\n */\n playFromPositionAsync(\n positionMillis: number,\n tolerances?: AVPlaybackTolerance\n ): Promise;\n\n /**\n * This is equivalent to `playbackObject.setStatusAsync({ shouldPlay: false })`.\n */\n pauseAsync(): Promise;\n\n /**\n * This is equivalent to `playbackObject.setStatusAsync({ shouldPlay: false, positionMillis: 0 })`.\n */\n stopAsync(): Promise;\n\n /**\n * Replays the playback item. When using `playFromPositionAsync(0)` the item is seeked to the position at `0 ms`.\n * On iOS this method uses internal implementation of the player and is able to play the item from the beginning immediately.\n * @param status The new `AVPlaybackStatusToSet` of the `playbackObject`, whose values will override the current playback status.\n * `positionMillis` and `shouldPlay` properties will be overridden with respectively `0` and `true`.\n * @return A `Promise` that is fulfilled with the `AVPlaybackStatus` of the `playbackObject` once the new status has been set successfully,\n * or rejects if setting the new status failed.\n */\n replayAsync(status: AVPlaybackStatusToSet): Promise;\n\n /**\n * This is equivalent to `playbackObject.setStatusAsync({ positionMillis })`.\n * @param positionMillis The desired position of playback in milliseconds.\n * @param tolerances The tolerances are used only on iOS ([more details](#what-is-seek-tolerance-and-why-would)).\n */\n setPositionAsync(\n positionMillis: number,\n tolerances?: AVPlaybackTolerance\n ): Promise;\n\n /**\n * This is equivalent to `playbackObject.setStatusAsync({ rate, shouldCorrectPitch, pitchCorrectionQuality })`.\n * @param rate The desired playback rate of the media. This value must be between `0.0` and `32.0`. Only available on Android API version 23 and later and iOS.\n * @param shouldCorrectPitch A boolean describing if we should correct the pitch for a changed rate. If set to `true`, the pitch of the audio will be corrected\n * (so a rate different than `1.0` will timestretch the audio).\n * @param pitchCorrectionQuality iOS time pitch algorithm setting, defaults to `Audio.PitchCorrectionQuality.Medium`.\n * Using `Audio.PitchCorrectionQuality.Low` may cause automatic playback rate changes on iOS >= 17, as AVAudioTimePitchAlgorithmLowQualityZeroLatency is deprecated.\n */\n setRateAsync(\n rate: number,\n shouldCorrectPitch: boolean,\n pitchCorrectionQuality?: PitchCorrectionQuality\n ): Promise;\n\n /**\n * This is equivalent to `playbackObject.setStatusAsync({ volume, audioPan })`.\n * Note: `audioPan` is currently only supported on Android using `androidImplementation: 'MediaPlayer'`\n * @param volume A number between `0.0` (silence) and `1.0` (maximum volume).\n * @param audioPan A number between `-1.0` (full left) and `1.0` (full right).\n */\n setVolumeAsync(volume: number, audioPan?: number): Promise;\n\n /**\n * This is equivalent to `playbackObject.setStatusAsync({ isMuted })`.\n * @param isMuted A boolean describing if the audio of this media should be muted.\n */\n setIsMutedAsync(isMuted: boolean): Promise;\n\n /**\n * This is equivalent to `playbackObject.setStatusAsync({ isLooping })`.\n * @param isLooping A boolean describing if the media should play once (`false`) or loop indefinitely (`true`).\n */\n setIsLoopingAsync(isLooping: boolean): Promise;\n\n /**\n * This is equivalent to `playbackObject.setStatusAsync({ progressUpdateIntervalMillis })`.\n * @param progressUpdateIntervalMillis The new minimum interval in milliseconds between calls of `onPlaybackStatusUpdate`.\n * See `setOnPlaybackStatusUpdate()` for details.\n */\n setProgressUpdateIntervalAsync(progressUpdateIntervalMillis: number): Promise;\n}\n\n/**\n * @hidden\n * A mixin that defines common playback methods for A/V classes, so they implement the `Playback`\n * interface.\n */\nexport const PlaybackMixin = {\n async playAsync(): Promise {\n return (this as any as Playback).setStatusAsync({ shouldPlay: true });\n },\n\n async playFromPositionAsync(\n positionMillis: number,\n tolerances: AVPlaybackTolerance = {}\n ): Promise {\n return (this as any as Playback).setStatusAsync({\n positionMillis,\n shouldPlay: true,\n seekMillisToleranceAfter: tolerances.toleranceMillisAfter,\n seekMillisToleranceBefore: tolerances.toleranceMillisBefore,\n });\n },\n\n async pauseAsync(): Promise {\n return (this as any as Playback).setStatusAsync({ shouldPlay: false });\n },\n\n async stopAsync(): Promise {\n return (this as any as Playback).setStatusAsync({ positionMillis: 0, shouldPlay: false });\n },\n\n async setPositionAsync(\n positionMillis: number,\n tolerances: AVPlaybackTolerance = {}\n ): Promise {\n return (this as any as Playback).setStatusAsync({\n positionMillis,\n seekMillisToleranceAfter: tolerances.toleranceMillisAfter,\n seekMillisToleranceBefore: tolerances.toleranceMillisBefore,\n });\n },\n\n async setRateAsync(\n rate: number,\n shouldCorrectPitch: boolean = false,\n pitchCorrectionQuality: PitchCorrectionQuality = PitchCorrectionQuality.Medium\n ): Promise {\n return (this as any as Playback).setStatusAsync({\n rate,\n shouldCorrectPitch,\n pitchCorrectionQuality,\n });\n },\n\n async setVolumeAsync(volume: number, audioPan?: number): Promise {\n return (this as any as Playback).setStatusAsync({ volume, audioPan });\n },\n\n async setIsMutedAsync(isMuted: boolean): Promise {\n return (this as any as Playback).setStatusAsync({ isMuted });\n },\n\n async setIsLoopingAsync(isLooping: boolean): Promise {\n return (this as any as Playback).setStatusAsync({ isLooping });\n },\n\n async setProgressUpdateIntervalAsync(\n progressUpdateIntervalMillis: number\n ): Promise {\n return (this as any as Playback).setStatusAsync({ progressUpdateIntervalMillis });\n },\n};\n\nexport * from './AV.types';\n","import { Asset } from 'expo-asset';\n\nimport ExponentAV from './ExponentAV';\n\n// @needsAudit\n/**\n * Check [official Apple documentation](https://developer.apple.com/documentation/avfoundation/avaudiotimepitchalgorithmlowqualityzerolatency) for more information.\n */\nexport enum PitchCorrectionQuality {\n /**\n * Equivalent to `AVAudioTimePitchAlgorithmLowQualityZeroLatency`.\n */\n Low = ExponentAV && ExponentAV.Qualities && ExponentAV.Qualities.Low,\n /**\n * Equivalent to `AVAudioTimePitchAlgorithmTimeDomain`.\n */\n Medium = ExponentAV && ExponentAV.Qualities && ExponentAV.Qualities.Medium,\n /**\n * Equivalent to `AVAudioTimePitchAlgorithmSpectral`.\n */\n High = ExponentAV && ExponentAV.Qualities && ExponentAV.Qualities.High,\n}\n\n// @needsAudit\n/**\n * The following forms of source are supported:\n * - A dictionary of the form `AVPlaybackSourceObject`.\n * The `overrideFileExtensionAndroid` property may come in handy if the player receives an URL like `example.com/play` which redirects to `example.com/player.m3u8`.\n * Setting this property to `m3u8` would allow the Android player to properly infer the content type of the media and use proper media file reader.\n * - `require('path/to/file')` for a media file asset in the source code directory.\n * - An [`Asset`](./asset) object for a media file asset.\n *\n * The [iOS developer documentation](https://developer.apple.com/library/ios/documentation/Miscellaneous/Conceptual/iPhoneOSTechOverview/MediaLayer/MediaLayer.html)\n * lists the audio and video formats supported on iOS.\n *\n * There are two sets of audio and video formats supported on Android: [formats supported by ExoPlayer](https://google.github.io/ExoPlayer/supported-formats.html)\n * and [formats supported by Android's MediaPlayer](https://developer.android.com/guide/appendix/media-formats.html#formats-table).\n * Expo uses ExoPlayer implementation by default. To use `MediaPlayer`, add `androidImplementation: 'MediaPlayer'` to the initial status of the AV object.\n */\nexport type AVPlaybackSource = number | AVPlaybackSourceObject | Asset;\n\n// @needsAudit\n/**\n * One of the possible forms of the `AVPlaybackSource`.\n */\nexport type AVPlaybackSourceObject = {\n /**\n * A network URL pointing to a media file.\n */\n uri: string;\n /**\n * An optional string overriding extension inferred from the URL.\n * @platform android\n */\n overrideFileExtensionAndroid?: string;\n /**\n * An optional headers object passed in a network request.\n */\n headers?: Record;\n};\n\n/**\n * @hidden\n */\nexport type AVPlaybackNativeSource = {\n uri: string;\n overridingExtension?: string | null;\n headers?: Record;\n};\n\n// @needsAudit\n/**\n * Object passed to the `onMetadataUpdate` function.\n */\nexport type AVMetadata = {\n /**\n * A string with the title of the sound object.\n */\n title?: string;\n};\n\n// @needsAudit\n/**\n * This is the structure returned from all playback API calls and describes the state of the `playbackObject` at that point in time.\n * It can take a form of `AVPlaybackStatusSuccess` or `AVPlaybackStatusError` based on the `playbackObject` load status.\n */\nexport type AVPlaybackStatus = AVPlaybackStatusError | AVPlaybackStatusSuccess;\n\n// @needsAudit\nexport type AVPlaybackStatusError = {\n /**\n * A boolean set to `false`.\n */\n isLoaded: false;\n /**\n * Underlying implementation to use (when set to `MediaPlayer` it uses [Android's MediaPlayer](https://developer.android.com/reference/android/media/MediaPlayer.html),\n * uses [ExoPlayer](https://google.github.io/ExoPlayer/) otherwise). You may need to use this property if you're trying to play an item unsupported by ExoPlayer\n * ([formats supported by ExoPlayer](https://google.github.io/ExoPlayer/supported-formats.html), [formats supported by Android's MediaPlayer](https://developer.android.com/guide/appendix/media-formats.html#formats-table)).\n *\n * Note that setting this property takes effect only when the AV object is just being created (toggling its value later will do nothing).\n *\n * @platform android\n */\n androidImplementation?: string;\n /**\n * A string only present if the `playbackObject` just encountered a fatal error and forced unload.\n * Populated exactly once when an error forces the object to unload.\n */\n error?: string;\n};\n\n// @needsAudit\nexport type AVPlaybackStatusSuccess = {\n /**\n * A boolean set to `true`.\n */\n isLoaded: true;\n /**\n * Underlying implementation to use (when set to `MediaPlayer` it uses [Android's MediaPlayer](https://developer.android.com/reference/android/media/MediaPlayer.html),\n * uses [ExoPlayer](https://google.github.io/ExoPlayer/) otherwise). You may need to use this property if you're trying to play an item unsupported by ExoPlayer\n * ([formats supported by ExoPlayer](https://google.github.io/ExoPlayer/supported-formats.html), [formats supported by Android's MediaPlayer](https://developer.android.com/guide/appendix/media-formats.html#formats-table)).\n *\n * Note that setting this property takes effect only when the AV object is just being created (toggling its value later will do nothing).\n *\n * @platform android\n */\n androidImplementation?: string;\n /**\n * The location of the media source.\n */\n uri: string;\n /**\n * The minimum interval in milliseconds between calls of `onPlaybackStatusUpdate`. See `setOnPlaybackStatusUpdate()` for details.\n */\n progressUpdateIntervalMillis: number;\n /**\n * The duration of the media in milliseconds. This is only present if the media has a duration.\n * > Note that in some cases, a media file's duration is readable on Android, but not on iOS.\n */\n durationMillis?: number;\n /**\n * The current position of playback in milliseconds.\n */\n positionMillis: number;\n /**\n * The position until which the media has been buffered into memory. Like `durationMillis`, this is only present in some cases.\n */\n playableDurationMillis?: number;\n // @docsMissing\n seekMillisToleranceBefore?: number;\n // @docsMissing\n seekMillisToleranceAfter?: number;\n /**\n * A boolean describing if the media is supposed to play.\n */\n shouldPlay: boolean;\n /**\n * A boolean describing if the media is currently playing.\n */\n isPlaying: boolean;\n /**\n * A boolean describing if the media is currently buffering.\n */\n isBuffering: boolean;\n /**\n * The current rate of the media.\n */\n rate: number;\n /**\n * A boolean describing if we are correcting the pitch for a changed rate.\n */\n shouldCorrectPitch: boolean;\n /**\n * iOS time pitch algorithm setting. See `setRateAsync` for details.\n */\n pitchCorrectionQuality?: PitchCorrectionQuality;\n /**\n * The current volume of the audio for this media.\n */\n volume: number;\n /**\n * A boolean describing if the audio of this media is currently muted.\n */\n isMuted: boolean;\n /**\n * The current audio panning value of the audio for this media.\n */\n audioPan: number;\n /**\n * A boolean describing if the media is currently looping.\n */\n isLooping: boolean;\n /**\n * A boolean describing if the media just played to completion at the time that this status was received.\n * When the media plays to completion, the function passed in `setOnPlaybackStatusUpdate()` is called exactly once\n * with `didJustFinish` set to `true`. `didJustFinish` is never `true` in any other case.\n */\n didJustFinish: boolean;\n};\n\n// @needsAudit\n/**\n * This is the structure passed to `setStatusAsync()` to modify the state of the `playbackObject`.\n */\nexport type AVPlaybackStatusToSet = {\n /**\n * Underlying implementation to use (when set to `MediaPlayer` it uses [Android's MediaPlayer](https://developer.android.com/reference/android/media/MediaPlayer.html),\n * uses [ExoPlayer](https://google.github.io/ExoPlayer/) otherwise). You may need to use this property if you're trying to play an item unsupported by ExoPlayer\n * ([formats supported by ExoPlayer](https://google.github.io/ExoPlayer/supported-formats.html), [formats supported by Android's MediaPlayer](https://developer.android.com/guide/appendix/media-formats.html#formats-table)).\n *\n * Note that setting this property takes effect only when the AV object is just being created (toggling its value later will do nothing).\n *\n * @platform android\n */\n androidImplementation?: string;\n /**\n * The minimum interval in milliseconds between calls of `onPlaybackStatusUpdate`. See `setOnPlaybackStatusUpdate()` for details.\n */\n progressUpdateIntervalMillis?: number;\n /**\n * The current position of playback in milliseconds.\n */\n positionMillis?: number;\n // @docsMissing\n seekMillisToleranceBefore?: number;\n // @docsMissing\n seekMillisToleranceAfter?: number;\n /**\n * A boolean describing if the media is supposed to play.\n */\n shouldPlay?: boolean;\n /**\n * The current rate of the media.\n * @platform android API 23+\n * @platform ios\n */\n rate?: number;\n /**\n * A boolean describing if we are correcting the pitch for a changed rate.\n */\n shouldCorrectPitch?: boolean;\n /**\n * The current volume of the audio for this media.\n * > Note that this only affect the audio of this `playbackObject` and do NOT affect the system volume.\n */\n volume?: number;\n /**\n * A boolean describing if the audio of this media is currently muted.\n * > Note that this only affect the audio of this `playbackObject` and do NOT affect the system volume.\n */\n isMuted?: boolean;\n /**\n * The current audio panning value of the audio for this media.\n * > Note that this only affect the audio of this `playbackObject` and do NOT affect the system volume.\n * > Also note that this is only available when the video was loaded using `androidImplementation: 'MediaPlayer'`\n * @platform android\n */\n audioPan?: number;\n /**\n * A boolean describing if the media is currently looping.\n */\n isLooping?: boolean;\n /**\n * iOS time pitch algorithm setting. See `setRateAsync` for details.\n */\n pitchCorrectionQuality?: PitchCorrectionQuality;\n};\n\n// @docsMissing\nexport type AVPlaybackTolerance = { toleranceMillisBefore?: number; toleranceMillisAfter?: number };\n","// @needsAudit\nexport type AudioMode = {\n /**\n * A boolean selecting if recording is enabled on iOS.\n * > When this flag is set to `true`, playback may be routed to the phone earpiece instead of to the speaker. Set it back to `false` after stopping recording to reenable playback through the speaker.\n * @default false\n */\n allowsRecordingIOS: boolean;\n /**\n * An enum selecting how your experience's audio should interact with the audio from other apps on iOS.\n */\n interruptionModeIOS: InterruptionModeIOS;\n /**\n * A boolean selecting if your experience's audio should play in silent mode on iOS.\n * @default false\n */\n playsInSilentModeIOS: boolean;\n /**\n * A boolean selecting if the audio session (playback or recording) should stay active even when the app goes into background.\n * > This is not available in Expo Go for iOS, it will only work in standalone apps.\n * > To enable it for standalone apps, [follow the instructions below](#playing-or-recording-audio-in-background-ios)\n * > to add `UIBackgroundModes` to your app configuration.\n * @default false\n */\n staysActiveInBackground: boolean;\n /**\n * An enum selecting how your experience's audio should interact with the audio from other apps on Android.\n */\n interruptionModeAndroid: InterruptionModeAndroid;\n /**\n * A boolean selecting if your experience's audio should automatically be lowered in volume (\"duck\") if audio from another\n * app interrupts your experience. If `false`, audio from other apps will pause your audio.\n * @default true\n */\n shouldDuckAndroid: boolean;\n /**\n * A boolean selecting if the audio is routed to earpiece on Android.\n * @default false\n */\n playThroughEarpieceAndroid: boolean;\n};\n\n// @needsAudit\nexport enum InterruptionModeIOS {\n /**\n * **This is the default option.** If this option is set, your experience's audio is mixed with audio playing in background apps.\n */\n MixWithOthers = 0,\n /**\n * If this option is set, your experience's audio interrupts audio from other apps.\n */\n DoNotMix = 1,\n /**\n * If this option is set, your experience's audio lowers the volume (\"ducks\") of audio from other apps while your audio plays.\n */\n DuckOthers = 2,\n}\n\nexport enum InterruptionModeAndroid {\n /**\n * If this option is set, your experience's audio interrupts audio from other apps.\n */\n DoNotMix = 1,\n /**\n * **This is the default option.** If this option is set, your experience's audio lowers the volume (\"ducks\") of audio from other apps while your audio plays.\n */\n DuckOthers = 2,\n}\n","import {\n PermissionResponse,\n PermissionStatus,\n PermissionHookOptions,\n createPermissionHook,\n EventEmitter,\n Subscription,\n Platform,\n} from 'expo-modules-core';\n\nimport { isAudioEnabled, throwIfAudioIsDisabled } from './AudioAvailability';\nimport {\n RecordingInput,\n RecordingObject,\n RecordingOptions,\n RecordingStatus,\n} from './Recording.types';\nimport { RecordingOptionsPresets } from './RecordingConstants';\nimport { Sound, SoundObject } from './Sound';\nimport {\n _DEFAULT_PROGRESS_UPDATE_INTERVAL_MILLIS,\n AVPlaybackStatus,\n AVPlaybackStatusToSet,\n} from '../AV';\nimport ExponentAV from '../ExponentAV';\n\nlet _recorderExists: boolean = false;\nconst eventEmitter = Platform.OS === 'android' ? new EventEmitter(ExponentAV) : null;\n\n/**\n * Checks user's permissions for audio recording.\n * @return A promise that resolves to an object of type `PermissionResponse`.\n */\nexport async function getPermissionsAsync(): Promise {\n return ExponentAV.getPermissionsAsync();\n}\n\n/**\n * Asks the user to grant permissions for audio recording.\n * @return A promise that resolves to an object of type `PermissionResponse`.\n */\nexport async function requestPermissionsAsync(): Promise {\n return ExponentAV.requestPermissionsAsync();\n}\n\n/**\n * Check or request permissions to record audio.\n * This uses both `requestPermissionAsync` and `getPermissionsAsync` to interact with the permissions.\n *\n * @example\n * ```ts\n * const [permissionResponse, requestPermission] = Audio.usePermissions();\n * ```\n */\nexport const usePermissions = createPermissionHook({\n getMethod: getPermissionsAsync,\n requestMethod: requestPermissionsAsync,\n});\n\n// @needsAudit\n/**\n * > **warning** **Warning**: Experimental for web.\n *\n * This class represents an audio recording. After creating an instance of this class, `prepareToRecordAsync`\n * must be called in order to record audio. Once recording is finished, call `stopAndUnloadAsync`. Note that\n * only one recorder is allowed to exist in the state between `prepareToRecordAsync` and `stopAndUnloadAsync`\n * at any given time.\n *\n * Note that your experience must request audio recording permissions in order for recording to function.\n * See the [`Permissions` module](/guides/permissions) for more details.\n *\n * Additionally, audio recording is [not supported in the iOS Simulator](/workflow/ios-simulator/#limitations).\n *\n * @example\n * ```ts\n * const recording = new Audio.Recording();\n * try {\n * await recording.prepareToRecordAsync(Audio.RecordingOptionsPresets.HIGH_QUALITY);\n * await recording.startAsync();\n * // You are now recording!\n * } catch (error) {\n * // An error occurred!\n * }\n * ```\n *\n * @return A newly constructed instance of `Audio.Recording`.\n */\nexport class Recording {\n _subscription: Subscription | null = null;\n _canRecord: boolean = false;\n _isDoneRecording: boolean = false;\n _finalDurationMillis: number = 0;\n _uri: string | null = null;\n _onRecordingStatusUpdate: ((status: RecordingStatus) => void) | null = null;\n _progressUpdateTimeoutVariable: number | null = null;\n _progressUpdateIntervalMillis: number = _DEFAULT_PROGRESS_UPDATE_INTERVAL_MILLIS;\n _options: RecordingOptions | null = null;\n\n // Internal methods\n\n _cleanupForUnloadedRecorder = async (finalStatus?: RecordingStatus) => {\n this._canRecord = false;\n this._isDoneRecording = true;\n this._finalDurationMillis = finalStatus?.durationMillis ?? 0;\n _recorderExists = false;\n if (this._subscription) {\n this._subscription.remove();\n this._subscription = null;\n }\n this._disablePolling();\n return await this.getStatusAsync(); // Automatically calls onRecordingStatusUpdate for the final state.\n };\n\n _pollingLoop = async () => {\n if (isAudioEnabled() && this._canRecord && this._onRecordingStatusUpdate != null) {\n this._progressUpdateTimeoutVariable = setTimeout(\n this._pollingLoop,\n this._progressUpdateIntervalMillis\n ) as any;\n try {\n await this.getStatusAsync();\n } catch {\n this._disablePolling();\n }\n }\n };\n\n _disablePolling() {\n if (this._progressUpdateTimeoutVariable != null) {\n clearTimeout(this._progressUpdateTimeoutVariable);\n this._progressUpdateTimeoutVariable = null;\n }\n }\n\n _enablePollingIfNecessaryAndPossible() {\n if (isAudioEnabled() && this._canRecord && this._onRecordingStatusUpdate != null) {\n this._disablePolling();\n this._pollingLoop();\n }\n }\n\n _callOnRecordingStatusUpdateForNewStatus(status: RecordingStatus) {\n if (this._onRecordingStatusUpdate != null) {\n this._onRecordingStatusUpdate(status);\n }\n }\n\n async _performOperationAndHandleStatusAsync(\n operation: () => Promise\n ): Promise {\n throwIfAudioIsDisabled();\n if (this._canRecord) {\n const status = await operation();\n this._callOnRecordingStatusUpdateForNewStatus(status);\n return status;\n } else {\n throw new Error('Cannot complete operation because this recorder is not ready to record.');\n }\n }\n\n /**\n * Creates and starts a recording using the given options, with optional `onRecordingStatusUpdate` and `progressUpdateIntervalMillis`.\n *\n * ```ts\n * const { recording, status } = await Audio.Recording.createAsync(\n * options,\n * onRecordingStatusUpdate,\n * progressUpdateIntervalMillis\n * );\n *\n * // Which is equivalent to the following:\n * const recording = new Audio.Recording();\n * await recording.prepareToRecordAsync(options);\n * recording.setOnRecordingStatusUpdate(onRecordingStatusUpdate);\n * await recording.startAsync();\n * ```\n *\n * @param options Options for the recording, including sample rate, bitrate, channels, format, encoder, and extension. If no options are passed to,\n * the recorder will be created with options `Audio.RecordingOptionsPresets.LOW_QUALITY`. See below for details on `RecordingOptions`.\n * @param onRecordingStatusUpdate A function taking a single parameter `status` (a dictionary, described in `getStatusAsync`).\n * @param progressUpdateIntervalMillis The interval between calls of `onRecordingStatusUpdate`. This value defaults to 500 milliseconds.\n *\n * @example\n * ```ts\n * try {\n * const { recording: recordingObject, status } = await Audio.Recording.createAsync(\n * Audio.RecordingOptionsPresets.HIGH_QUALITY\n * );\n * // You are now recording!\n * } catch (error) {\n * // An error occurred!\n * }\n * ```\n *\n * @return A `Promise` that is rejected if creation failed, or fulfilled with the following dictionary if creation succeeded.\n */\n static createAsync = async (\n options: RecordingOptions = RecordingOptionsPresets.LOW_QUALITY,\n onRecordingStatusUpdate: ((status: RecordingStatus) => void) | null = null,\n progressUpdateIntervalMillis: number | null = null\n ): Promise => {\n const recording: Recording = new Recording();\n if (progressUpdateIntervalMillis) {\n recording._progressUpdateIntervalMillis = progressUpdateIntervalMillis;\n }\n recording.setOnRecordingStatusUpdate(onRecordingStatusUpdate);\n await recording.prepareToRecordAsync({\n ...options,\n keepAudioActiveHint: true,\n });\n try {\n const status = await recording.startAsync();\n return { recording, status };\n } catch (err) {\n recording.stopAndUnloadAsync();\n throw err;\n }\n };\n\n // Get status API\n\n /**\n * Gets the `status` of the `Recording`.\n * @return A `Promise` that is resolved with the `RecordingStatus` object.\n */\n getStatusAsync = async (): Promise => {\n // Automatically calls onRecordingStatusUpdate.\n if (this._canRecord) {\n return this._performOperationAndHandleStatusAsync(() => ExponentAV.getAudioRecordingStatus());\n }\n const status = {\n canRecord: false,\n isRecording: false,\n isDoneRecording: this._isDoneRecording,\n durationMillis: this._finalDurationMillis,\n };\n this._callOnRecordingStatusUpdateForNewStatus(status);\n return status;\n };\n\n /**\n * Sets a function to be called regularly with the `RecordingStatus` of the `Recording`.\n *\n * `onRecordingStatusUpdate` will be called when another call to the API for this recording completes (such as `prepareToRecordAsync()`,\n * `startAsync()`, `getStatusAsync()`, or `stopAndUnloadAsync()`), and will also be called at regular intervals while the recording can record.\n * Call `setProgressUpdateInterval()` to modify the interval with which `onRecordingStatusUpdate` is called while the recording can record.\n *\n * @param onRecordingStatusUpdate A function taking a single parameter `RecordingStatus`.\n */\n setOnRecordingStatusUpdate(onRecordingStatusUpdate: ((status: RecordingStatus) => void) | null) {\n this._onRecordingStatusUpdate = onRecordingStatusUpdate;\n if (onRecordingStatusUpdate == null) {\n this._disablePolling();\n } else {\n this._enablePollingIfNecessaryAndPossible();\n }\n this.getStatusAsync();\n }\n\n /**\n * Sets the interval with which `onRecordingStatusUpdate` is called while the recording can record.\n * See `setOnRecordingStatusUpdate` for details. This value defaults to 500 milliseconds.\n * @param progressUpdateIntervalMillis The new interval between calls of `onRecordingStatusUpdate`.\n */\n setProgressUpdateInterval(progressUpdateIntervalMillis: number) {\n this._progressUpdateIntervalMillis = progressUpdateIntervalMillis;\n this.getStatusAsync();\n }\n\n // Record API\n\n /**\n * Loads the recorder into memory and prepares it for recording. This must be called before calling `startAsync()`.\n * This method can only be called if the `Recording` instance has never yet been prepared.\n *\n * @param options `RecordingOptions` for the recording, including sample rate, bitrate, channels, format, encoder, and extension.\n * If no options are passed to `prepareToRecordAsync()`, the recorder will be created with options `Audio.RecordingOptionsPresets.LOW_QUALITY`.\n *\n * @return A `Promise` that is fulfilled when the recorder is loaded and prepared, or rejects if this failed. If another `Recording` exists\n * in your experience that is currently prepared to record, the `Promise` will reject. If the `RecordingOptions` provided are invalid,\n * the `Promise` will also reject. The promise is resolved with the `RecordingStatus` of the recording.\n */\n async prepareToRecordAsync(\n options: RecordingOptions = RecordingOptionsPresets.LOW_QUALITY\n ): Promise {\n throwIfAudioIsDisabled();\n\n if (_recorderExists) {\n throw new Error('Only one Recording object can be prepared at a given time.');\n }\n\n if (this._isDoneRecording) {\n throw new Error('This Recording object is done recording; you must make a new one.');\n }\n\n if (!options || !options.android || !options.ios) {\n throw new Error(\n 'You must provide recording options for android and ios in order to prepare to record.'\n );\n }\n\n const extensionRegex = /^\\.\\w+$/;\n if (\n !options.android.extension ||\n !options.ios.extension ||\n !extensionRegex.test(options.android.extension) ||\n !extensionRegex.test(options.ios.extension)\n ) {\n throw new Error(`Your file extensions must match ${extensionRegex.toString()}.`);\n }\n\n if (!this._canRecord) {\n if (eventEmitter) {\n this._subscription = eventEmitter.addListener(\n 'Expo.Recording.recorderUnloaded',\n this._cleanupForUnloadedRecorder\n );\n }\n\n const {\n uri,\n status,\n }: {\n uri: string | null;\n // status is of type RecordingStatus, but without the canRecord field populated\n status: Pick>;\n } = await ExponentAV.prepareAudioRecorder(options);\n _recorderExists = true;\n this._uri = uri;\n this._options = options;\n this._canRecord = true;\n\n const currentStatus = { ...status, canRecord: true };\n this._callOnRecordingStatusUpdateForNewStatus(currentStatus);\n this._enablePollingIfNecessaryAndPossible();\n return currentStatus;\n } else {\n throw new Error('This Recording object is already prepared to record.');\n }\n }\n\n /**\n * Returns a list of available recording inputs. This method can only be called if the `Recording` has been prepared.\n * @return A `Promise` that is fulfilled with an array of `RecordingInput` objects.\n */\n async getAvailableInputs(): Promise {\n return ExponentAV.getAvailableInputs();\n }\n\n /**\n * Returns the currently-selected recording input. This method can only be called if the `Recording` has been prepared.\n * @return A `Promise` that is fulfilled with a `RecordingInput` object.\n */\n async getCurrentInput(): Promise {\n return ExponentAV.getCurrentInput();\n }\n\n /**\n * Sets the current recording input.\n * @param inputUid The uid of a `RecordingInput`.\n * @return A `Promise` that is resolved if successful or rejected if not.\n */\n async setInput(inputUid: string): Promise {\n return ExponentAV.setInput(inputUid);\n }\n\n /**\n * Begins recording. This method can only be called if the `Recording` has been prepared.\n * @return A `Promise` that is fulfilled when recording has begun, or rejects if recording could not be started.\n * The promise is resolved with the `RecordingStatus` of the recording.\n */\n async startAsync(): Promise {\n return this._performOperationAndHandleStatusAsync(() => ExponentAV.startAudioRecording());\n }\n\n /**\n * Pauses recording. This method can only be called if the `Recording` has been prepared.\n *\n * > This is only available on Android API version 24 and later.\n *\n * @return A `Promise` that is fulfilled when recording has paused, or rejects if recording could not be paused.\n * If the Android API version is less than 24, the `Promise` will reject. The promise is resolved with the\n * `RecordingStatus` of the recording.\n */\n async pauseAsync(): Promise {\n return this._performOperationAndHandleStatusAsync(() => ExponentAV.pauseAudioRecording());\n }\n\n /**\n * Stops the recording and deallocates the recorder from memory. This reverts the `Recording` instance\n * to an unprepared state, and another `Recording` instance must be created in order to record again.\n * This method can only be called if the `Recording` has been prepared.\n *\n * > On Android this method may fail with `E_AUDIO_NODATA` when called too soon after `startAsync` and\n * > no audio data has been recorded yet. In that case the recorded file will be invalid and should be discarded.\n *\n * @return A `Promise` that is fulfilled when recording has stopped, or rejects if recording could not be stopped.\n * The promise is resolved with the `RecordingStatus` of the recording.\n */\n async stopAndUnloadAsync(): Promise {\n if (!this._canRecord) {\n if (this._isDoneRecording) {\n throw new Error('Cannot unload a Recording that has already been unloaded.');\n } else {\n throw new Error('Cannot unload a Recording that has not been prepared.');\n }\n }\n // We perform a separate native API call so that the state of the Recording can be updated with\n // the final duration of the recording. (We cast stopStatus as Object to appease Flow)\n let stopResult: RecordingStatus | undefined;\n let stopError: Error | undefined;\n try {\n stopResult = await ExponentAV.stopAudioRecording();\n } catch (err) {\n stopError = err;\n }\n\n // Web has to return the URI at the end of recording, so needs a little destructuring\n if (Platform.OS === 'web' && stopResult?.uri !== undefined) {\n this._uri = stopResult.uri;\n }\n\n // Clean-up and return status\n await ExponentAV.unloadAudioRecorder();\n const status = await this._cleanupForUnloadedRecorder(stopResult);\n return stopError ? Promise.reject(stopError) : status;\n }\n\n // Read API\n\n /**\n * Gets the local URI of the `Recording`. Note that this will only succeed once the `Recording` is prepared\n * to record. On web, this will not return the URI until the recording is finished.\n * @return A `string` with the local URI of the `Recording`, or `null` if the `Recording` is not prepared\n * to record (or, on Web, if the recording has not finished).\n */\n getURI(): string | null {\n return this._uri;\n }\n\n /**\n * @deprecated Use `createNewLoadedSoundAsync()` instead.\n */\n async createNewLoadedSound(\n initialStatus: AVPlaybackStatusToSet = {},\n onPlaybackStatusUpdate: ((status: AVPlaybackStatus) => void) | null = null\n ): Promise {\n console.warn(\n `createNewLoadedSound is deprecated in favor of createNewLoadedSoundAsync, which has the same API aside from the method name`\n );\n return this.createNewLoadedSoundAsync(initialStatus, onPlaybackStatusUpdate);\n }\n\n /**\n * Creates and loads a new `Sound` object to play back the `Recording`. Note that this will only succeed once the `Recording`\n * is done recording and `stopAndUnloadAsync()` has been called.\n *\n * @param initialStatus The initial intended `PlaybackStatusToSet` of the sound, whose values will override the default initial playback status.\n * This value defaults to `{}` if no parameter is passed. See the [AV documentation](/versions/latest/sdk/av) for details on `PlaybackStatusToSet`\n * and the default initial playback status.\n * @param onPlaybackStatusUpdate A function taking a single parameter `PlaybackStatus`. This value defaults to `null` if no parameter is passed.\n * See the [AV documentation](/versions/latest/sdk/av) for details on the functionality provided by `onPlaybackStatusUpdate`\n *\n * @return A `Promise` that is rejected if creation failed, or fulfilled with the `SoundObject`.\n */\n async createNewLoadedSoundAsync(\n initialStatus: AVPlaybackStatusToSet = {},\n onPlaybackStatusUpdate: ((status: AVPlaybackStatus) => void) | null = null\n ): Promise {\n if (this._uri == null || !this._isDoneRecording) {\n throw new Error('Cannot create sound when the Recording has not finished!');\n }\n return Sound.createAsync(\n // $FlowFixMe: Flow can't distinguish between this literal and Asset\n { uri: this._uri },\n initialStatus,\n onPlaybackStatusUpdate,\n false\n );\n }\n}\n\nexport { PermissionResponse, PermissionStatus, PermissionHookOptions };\n\nexport * from './RecordingConstants';\n\nexport * from './Recording.types';\n","import { AudioMode, InterruptionModeAndroid, InterruptionModeIOS } from './Audio.types';\nimport ExponentAV from './ExponentAV';\n\nexport * from './Audio/Recording';\nexport * from './Audio/Sound';\nexport { setIsEnabledAsync } from './Audio/AudioAvailability';\nexport { PitchCorrectionQuality } from './AV';\n\nconst _populateMissingKeys = (\n userAudioMode: Partial,\n defaultAudioMode: AudioMode\n): AudioMode => {\n for (const key in defaultAudioMode) {\n if (!userAudioMode.hasOwnProperty(key)) {\n userAudioMode[key] = defaultAudioMode[key];\n }\n }\n return userAudioMode as AudioMode;\n};\n\nconst defaultMode: AudioMode = {\n allowsRecordingIOS: false,\n interruptionModeIOS: InterruptionModeIOS.MixWithOthers,\n playsInSilentModeIOS: false,\n staysActiveInBackground: false,\n interruptionModeAndroid: InterruptionModeAndroid.DuckOthers,\n shouldDuckAndroid: true,\n playThroughEarpieceAndroid: false,\n};\n\nlet currentAudioMode: AudioMode | null = null;\n\nfunction getCurrentAudioMode(): AudioMode {\n if (!currentAudioMode) {\n return defaultMode;\n }\n return currentAudioMode;\n}\n\n/**\n * We provide this API to customize the audio experience on iOS and Android.\n * @param partialMode\n * @return A `Promise` that will reject if the audio mode could not be enabled for the device.\n */\nexport async function setAudioModeAsync(partialMode: Partial): Promise {\n const mode = _populateMissingKeys(partialMode, getCurrentAudioMode());\n\n if (!InterruptionModeIOS[mode.interruptionModeIOS]) {\n throw new Error(`\"interruptionModeIOS\" was set to an invalid value.`);\n }\n if (!InterruptionModeAndroid[mode.interruptionModeAndroid]) {\n throw new Error(`\"interruptionModeAndroid\" was set to an invalid value.`);\n }\n if (\n typeof mode.allowsRecordingIOS !== 'boolean' ||\n typeof mode.playsInSilentModeIOS !== 'boolean' ||\n typeof mode.staysActiveInBackground !== 'boolean' ||\n typeof mode.shouldDuckAndroid !== 'boolean' ||\n typeof mode.playThroughEarpieceAndroid !== 'boolean'\n ) {\n throw new Error(\n '\"allowsRecordingIOS\", \"playsInSilentModeIOS\", \"playThroughEarpieceAndroid\", \"staysActiveInBackground\" and \"shouldDuckAndroid\" must be booleans.'\n );\n }\n currentAudioMode = mode;\n return await ExponentAV.setAudioMode(mode);\n}\n","import ExponentAV from '../ExponentAV';\n\nlet _enabled = true;\n\nexport function isAudioEnabled(): boolean {\n return _enabled;\n}\n\nexport function throwIfAudioIsDisabled(): void {\n if (!_enabled) {\n throw new Error('Cannot complete operation because audio is not enabled.');\n }\n}\n\n// @needsAudit\n/**\n * Audio is enabled by default, but if you want to write your own Audio API in a bare workflow app, you might want to disable the Audio API.\n * @param value `true` enables Audio, and `false` disables it.\n * @return A `Promise` that will reject if audio playback could not be enabled for the device.\n */\nexport async function setIsEnabledAsync(value: boolean): Promise {\n _enabled = value;\n await ExponentAV.setAudioIsEnabled(value);\n // TODO : We immediately pause all players when disabled, but we do not resume all shouldPlay\n // players when enabled. Perhaps for completeness we should allow this; the design of the\n // enabling API is for people to enable / disable this audio library, but I think that it should\n // intuitively also double as a global pause/resume.\n}\n","import type { RecordingOptions } from './Recording.types';\n\n// @docsMissing\nexport enum AndroidOutputFormat {\n DEFAULT = 0,\n THREE_GPP = 1,\n MPEG_4 = 2,\n AMR_NB = 3,\n AMR_WB = 4,\n AAC_ADIF = 5,\n AAC_ADTS = 6,\n RTP_AVP = 7,\n MPEG2TS = 8,\n WEBM = 9,\n}\n\n// @docsMissing\nexport enum AndroidAudioEncoder {\n DEFAULT = 0,\n AMR_NB = 1,\n AMR_WB = 2,\n AAC = 3,\n HE_AAC = 4,\n AAC_ELD = 5,\n}\n\n// @docsMissing\n/**\n * > **Note** Not all of the iOS formats included in this list of constants are currently supported by iOS,\n * > in spite of appearing in the Apple source code. For an accurate list of formats supported by iOS, see\n * > [Core Audio Codecs](https://developer.apple.com/library/content/documentation/MusicAudio/Conceptual/CoreAudioOverview/CoreAudioEssentials/CoreAudioEssentials.html)\n * > and [iPhone Audio File Formats](https://developer.apple.com/library/content/documentation/MusicAudio/Conceptual/CoreAudioOverview/CoreAudioEssentials/CoreAudioEssentials.html).\n */\nexport enum IOSOutputFormat {\n LINEARPCM = 'lpcm',\n AC3 = 'ac-3',\n '60958AC3' = 'cac3',\n APPLEIMA4 = 'ima4',\n MPEG4AAC = 'aac ',\n MPEG4CELP = 'celp',\n MPEG4HVXC = 'hvxc',\n MPEG4TWINVQ = 'twvq',\n MACE3 = 'MAC3',\n MACE6 = 'MAC6',\n ULAW = 'ulaw',\n ALAW = 'alaw',\n QDESIGN = 'QDMC',\n QDESIGN2 = 'QDM2',\n QUALCOMM = 'Qclp',\n MPEGLAYER1 = '.mp1',\n MPEGLAYER2 = '.mp2',\n MPEGLAYER3 = '.mp3',\n APPLELOSSLESS = 'alac',\n MPEG4AAC_HE = 'aach',\n MPEG4AAC_LD = 'aacl',\n MPEG4AAC_ELD = 'aace',\n MPEG4AAC_ELD_SBR = 'aacf',\n MPEG4AAC_ELD_V2 = 'aacg',\n MPEG4AAC_HE_V2 = 'aacp',\n MPEG4AAC_SPATIAL = 'aacs',\n AMR = 'samr',\n AMR_WB = 'sawb',\n AUDIBLE = 'AUDB',\n ILBC = 'ilbc',\n DVIINTELIMA = 0x6d730011,\n MICROSOFTGSM = 0x6d730031,\n AES3 = 'aes3',\n ENHANCEDAC3 = 'ec-3',\n}\n\n// @docsMissing\nexport enum IOSAudioQuality {\n MIN = 0,\n LOW = 0x20,\n MEDIUM = 0x40,\n HIGH = 0x60,\n MAX = 0x7f,\n}\n\n// @docsMissing\nexport enum IOSBitRateStrategy {\n CONSTANT = 0,\n LONG_TERM_AVERAGE = 1,\n VARIABLE_CONSTRAINED = 2,\n VARIABLE = 3,\n}\n\n// TODO : maybe make presets for music and speech, or lossy / lossless.\n\nconst HIGH_QUALITY: RecordingOptions = {\n isMeteringEnabled: true,\n android: {\n extension: '.m4a',\n outputFormat: AndroidOutputFormat.MPEG_4,\n audioEncoder: AndroidAudioEncoder.AAC,\n sampleRate: 44100,\n numberOfChannels: 2,\n bitRate: 128000,\n },\n ios: {\n extension: '.m4a',\n outputFormat: IOSOutputFormat.MPEG4AAC,\n audioQuality: IOSAudioQuality.MAX,\n sampleRate: 44100,\n numberOfChannels: 2,\n bitRate: 128000,\n linearPCMBitDepth: 16,\n linearPCMIsBigEndian: false,\n linearPCMIsFloat: false,\n },\n web: {\n mimeType: 'audio/webm',\n bitsPerSecond: 128000,\n },\n};\n\nconst LOW_QUALITY: RecordingOptions = {\n isMeteringEnabled: true,\n android: {\n extension: '.3gp',\n outputFormat: AndroidOutputFormat.THREE_GPP,\n audioEncoder: AndroidAudioEncoder.AMR_NB,\n sampleRate: 44100,\n numberOfChannels: 2,\n bitRate: 128000,\n },\n ios: {\n extension: '.m4a',\n audioQuality: IOSAudioQuality.MIN,\n outputFormat: IOSOutputFormat.MPEG4AAC,\n sampleRate: 44100,\n numberOfChannels: 2,\n bitRate: 64000,\n linearPCMBitDepth: 16,\n linearPCMIsBigEndian: false,\n linearPCMIsFloat: false,\n },\n web: {\n mimeType: 'audio/webm',\n bitsPerSecond: 128000,\n },\n};\n\n/**\n * Constant which contains definitions of the two preset examples of `RecordingOptions`, as implemented in the Audio SDK.\n *\n * # `HIGH_QUALITY`\n * ```ts\n * RecordingOptionsPresets.HIGH_QUALITY = {\n * isMeteringEnabled: true,\n * android: {\n * extension: '.m4a',\n * outputFormat: AndroidOutputFormat.MPEG_4,\n * audioEncoder: AndroidAudioEncoder.AAC,\n * sampleRate: 44100,\n * numberOfChannels: 2,\n * bitRate: 128000,\n * },\n * ios: {\n * extension: '.m4a',\n * outputFormat: IOSOutputFormat.MPEG4AAC,\n * audioQuality: IOSAudioQuality.MAX,\n * sampleRate: 44100,\n * numberOfChannels: 2,\n * bitRate: 128000,\n * linearPCMBitDepth: 16,\n * linearPCMIsBigEndian: false,\n * linearPCMIsFloat: false,\n * },\n * web: {\n * mimeType: 'audio/webm',\n * bitsPerSecond: 128000,\n * },\n * };\n * ```\n *\n * # `LOW_QUALITY`\n * ```ts\n * RecordingOptionsPresets.LOW_QUALITY = {\n * isMeteringEnabled: true,\n * android: {\n * extension: '.3gp',\n * outputFormat: AndroidOutputFormat.THREE_GPP,\n * audioEncoder: AndroidAudioEncoder.AMR_NB,\n * sampleRate: 44100,\n * numberOfChannels: 2,\n * bitRate: 128000,\n * },\n * ios: {\n * extension: '.caf',\n * audioQuality: IOSAudioQuality.MIN,\n * sampleRate: 44100,\n * numberOfChannels: 2,\n * bitRate: 128000,\n * linearPCMBitDepth: 16,\n * linearPCMIsBigEndian: false,\n * linearPCMIsFloat: false,\n * },\n * web: {\n * mimeType: 'audio/webm',\n * bitsPerSecond: 128000,\n * },\n * };\n * ```\n */\nexport const RecordingOptionsPresets: Record = {\n HIGH_QUALITY,\n LOW_QUALITY,\n};\n","import { EventEmitter, Platform, UnavailabilityError } from 'expo-modules-core';\n\nimport { throwIfAudioIsDisabled } from './AudioAvailability';\nimport {\n Playback,\n PlaybackMixin,\n AVPlaybackSource,\n AVMetadata,\n AVPlaybackStatus,\n AVPlaybackStatusToSet,\n assertStatusValuesInBounds,\n getNativeSourceAndFullInitialStatusForLoadAsync,\n getUnloadedStatus,\n AVPlaybackTolerance,\n} from '../AV';\nimport { PitchCorrectionQuality } from '../Audio';\nimport ExponentAV from '../ExponentAV';\n\n// @needsAudit\nexport type AudioChannel = {\n /**\n * All samples for this specific Audio Channel in PCM Buffer format (-1 to 1).\n */\n frames: number[];\n};\n\n// @needsAudit\n/**\n * Object passed to the `onAudioSampleReceived` function. Represents a single sample from an audio source.\n * The sample contains all frames (PCM Buffer values) for each channel of the audio, so if the audio is _stereo_ (interleaved),\n * there will be two channels, one for left and one for right audio.\n */\nexport type AudioSample = {\n /**\n * An array representing the data from each channel in PCM Buffer format. Array elements are objects in the following format: `{ frames: number[] }`,\n * where each frame is a number in PCM Buffer format (`-1` to `1` range).\n */\n channels: AudioChannel[];\n /**\n * A number representing the timestamp of the current sample in seconds, relative to the audio track's timeline.\n * > **Known issue:** When using the `ExoPlayer` Android implementation, the timestamp is always `-1`.\n */\n timestamp: number;\n};\n\n// @needsAudit\nexport type SoundObject = {\n /**\n * The newly created and loaded `Sound` object.\n */\n sound: Sound;\n /**\n * The `PlaybackStatus` of the `Sound` object. See the [AV documentation](/versions/latest/sdk/av) for further information.\n */\n status: AVPlaybackStatus;\n};\n\ntype AudioInstance = number | HTMLMediaElement | null;\ntype AudioSampleCallback = ((sample: AudioSample) => void) | null;\n\ndeclare global {\n interface Global {\n __EXAV_setOnAudioSampleReceivedCallback:\n | ((key: number, callback: AudioSampleCallback) => void)\n | undefined;\n }\n}\n\n// @needsAudit\n/**\n * This class represents a sound corresponding to an Asset or URL.\n * @return A newly constructed instance of `Audio.Sound`.\n *\n * @example\n * ```ts\n * const sound = new Audio.Sound();\n * try {\n * await sound.loadAsync(require('./assets/sounds/hello.mp3'));\n * await sound.playAsync();\n * // Your sound is playing!\n *\n * // Don't forget to unload the sound from memory\n * // when you are done using the Sound object\n * await sound.unloadAsync();\n * } catch (error) {\n * // An error occurred!\n * }\n * ```\n *\n * > Method not described below and the rest of the API for `Audio.Sound` is the same as the imperative playback API for `Video`.\n * > See the [AV documentation](/versions/latest/sdk/av) for further information.\n */\nexport class Sound implements Playback {\n _loaded: boolean = false;\n _loading: boolean = false;\n _key: AudioInstance = null;\n _lastStatusUpdate: string | null = null;\n _lastStatusUpdateTime: Date | null = null;\n _subscriptions: { remove: () => void }[] = [];\n _eventEmitter: EventEmitter = new EventEmitter(ExponentAV);\n _coalesceStatusUpdatesInMillis: number = 100;\n _onPlaybackStatusUpdate: ((status: AVPlaybackStatus) => void) | null = null;\n _onMetadataUpdate: ((metadata: AVMetadata) => void) | null = null;\n _onAudioSampleReceived: AudioSampleCallback = null;\n\n /** @deprecated Use `Sound.createAsync()` instead */\n static create = async (\n source: AVPlaybackSource,\n initialStatus: AVPlaybackStatusToSet = {},\n onPlaybackStatusUpdate: ((status: AVPlaybackStatus) => void) | null = null,\n downloadFirst: boolean = true\n ): Promise => {\n console.warn(\n `Sound.create is deprecated in favor of Sound.createAsync with the same API except for the new method name`\n );\n return Sound.createAsync(source, initialStatus, onPlaybackStatusUpdate, downloadFirst);\n };\n\n /**\n * Creates and loads a sound from source.\n *\n * ```ts\n * const { sound } = await Audio.Sound.createAsync(\n * source,\n * initialStatus,\n * onPlaybackStatusUpdate,\n * downloadFirst\n * );\n *\n * // Which is equivalent to the following:\n * const sound = new Audio.Sound();\n * sound.setOnPlaybackStatusUpdate(onPlaybackStatusUpdate);\n * await sound.loadAsync(source, initialStatus, downloadFirst);\n * ```\n *\n * @param source The source of the sound. See the [AV documentation](/versions/latest/sdk/av/#playback-api) for details on the possible `source` values.\n *\n * @param initialStatus The initial intended `PlaybackStatusToSet` of the sound, whose values will override the default initial playback status.\n * This value defaults to `{}` if no parameter is passed. See the [AV documentation](/versions/latest/sdk/av) for details on `PlaybackStatusToSet` and the default\n * initial playback status.\n *\n * @param onPlaybackStatusUpdate A function taking a single parameter `PlaybackStatus`. This value defaults to `null` if no parameter is passed.\n * See the [AV documentation](/versions/latest/sdk/av) for details on the functionality provided by `onPlaybackStatusUpdate`\n *\n * @param downloadFirst If set to true, the system will attempt to download the resource to the device before loading. This value defaults to `true`.\n * Note that at the moment, this will only work for `source`s of the form `require('path/to/file')` or `Asset` objects.\n *\n * @example\n * ```ts\n * try {\n * const { sound: soundObject, status } = await Audio.Sound.createAsync(\n * require('./assets/sounds/hello.mp3'),\n * { shouldPlay: true }\n * );\n * // Your sound is playing!\n * } catch (error) {\n * // An error occurred!\n * }\n * ```\n *\n * @return A `Promise` that is rejected if creation failed, or fulfilled with the `SoundObject` if creation succeeded.\n */\n static createAsync = async (\n source: AVPlaybackSource,\n initialStatus: AVPlaybackStatusToSet = {},\n onPlaybackStatusUpdate: ((status: AVPlaybackStatus) => void) | null = null,\n downloadFirst: boolean = true\n ): Promise => {\n const sound: Sound = new Sound();\n sound.setOnPlaybackStatusUpdate(onPlaybackStatusUpdate);\n const status: AVPlaybackStatus = await sound.loadAsync(source, initialStatus, downloadFirst);\n return { sound, status };\n };\n\n // Internal methods\n\n _callOnPlaybackStatusUpdateForNewStatus(status: AVPlaybackStatus) {\n const shouldDismissBasedOnCoalescing =\n this._lastStatusUpdateTime &&\n JSON.stringify(status) === this._lastStatusUpdate &&\n Date.now() - this._lastStatusUpdateTime.getTime() < this._coalesceStatusUpdatesInMillis;\n\n if (this._onPlaybackStatusUpdate != null && !shouldDismissBasedOnCoalescing) {\n this._onPlaybackStatusUpdate(status);\n this._lastStatusUpdateTime = new Date();\n this._lastStatusUpdate = JSON.stringify(status);\n }\n }\n\n async _performOperationAndHandleStatusAsync(\n operation: () => Promise\n ): Promise {\n throwIfAudioIsDisabled();\n if (this._loaded) {\n const status = await operation();\n this._callOnPlaybackStatusUpdateForNewStatus(status);\n return status;\n } else {\n throw new Error('Cannot complete operation because sound is not loaded.');\n }\n }\n\n private _updateAudioSampleReceivedCallback() {\n if (globalThis.__EXAV_setOnAudioSampleReceivedCallback == null) {\n if (Platform.OS === 'ios' || Platform.OS === 'android') {\n console.warn(\n 'expo-av: Failed to set up Audio Sample Buffer callback. ' +\n \"Do you have 'Remote Debugging' enabled in your app's Developer Menu (https://docs.expo.dev/workflow/debugging)? \" +\n 'Audio Sample Buffer callbacks are not supported while using Remote Debugging, you will need to disable it to use them.'\n );\n return;\n } else {\n throw new UnavailabilityError('expo-av', 'setOnAudioSampleReceived');\n }\n }\n if (this._key == null) {\n throw new Error(\n 'Cannot set Audio Sample Buffer callback when the Sound instance has not been successfully loaded/initialized!'\n );\n }\n if (typeof this._key !== 'number') {\n throw new Error(\n `Cannot set Audio Sample Buffer callback when Sound instance key is of type ${typeof this\n ._key}! (expected: number)`\n );\n }\n\n globalThis.__EXAV_setOnAudioSampleReceivedCallback(this._key, this._onAudioSampleReceived);\n }\n\n _internalStatusUpdateCallback = ({\n key,\n status,\n }: {\n key: AudioInstance;\n status: AVPlaybackStatus;\n }) => {\n if (this._key === key) {\n this._callOnPlaybackStatusUpdateForNewStatus(status);\n }\n };\n\n _internalMetadataUpdateCallback = ({\n key,\n metadata,\n }: {\n key: AudioInstance;\n metadata: AVMetadata;\n }) => {\n if (this._key === key) {\n this._onMetadataUpdate?.(metadata);\n }\n };\n\n _internalErrorCallback = ({ key, error }: { key: AudioInstance; error: string }) => {\n if (this._key === key) {\n this._errorCallback(error);\n }\n };\n\n // TODO: We can optimize by only using time observer on native if (this._onPlaybackStatusUpdate).\n _subscribeToNativeEvents() {\n if (this._loaded) {\n this._subscriptions.push(\n this._eventEmitter.addListener(\n 'didUpdatePlaybackStatus',\n this._internalStatusUpdateCallback\n ),\n this._eventEmitter.addListener('didUpdateMetadata', this._internalMetadataUpdateCallback)\n );\n\n this._subscriptions.push(\n this._eventEmitter.addListener('ExponentAV.onError', this._internalErrorCallback)\n );\n }\n }\n\n _clearSubscriptions() {\n this._subscriptions.forEach((e) => e.remove());\n this._subscriptions = [];\n }\n\n _errorCallback = (error: string) => {\n this._clearSubscriptions();\n this._loaded = false;\n this._key = null;\n this._callOnPlaybackStatusUpdateForNewStatus(getUnloadedStatus(error));\n };\n\n // ### Unified playback API ### (consistent with Video.js)\n // All calls automatically call onPlaybackStatusUpdate as a side effect.\n\n // Get status API\n\n getStatusAsync = async (): Promise => {\n if (this._loaded) {\n return this._performOperationAndHandleStatusAsync(() =>\n ExponentAV.getStatusForSound(this._key)\n );\n }\n const status: AVPlaybackStatus = getUnloadedStatus();\n this._callOnPlaybackStatusUpdateForNewStatus(status);\n return status;\n };\n\n /**\n * Sets a function to be called regularly with the `AVPlaybackStatus` of the playback object.\n *\n * `onPlaybackStatusUpdate` will be called whenever a call to the API for this playback object completes\n * (such as `setStatusAsync()`, `getStatusAsync()`, or `unloadAsync()`), nd will also be called at regular intervals\n * while the media is in the loaded state.\n *\n * Set `progressUpdateIntervalMillis` via `setStatusAsync()` or `setProgressUpdateIntervalAsync()` to modify\n * the interval with which `onPlaybackStatusUpdate` is called while loaded.\n *\n * @param onPlaybackStatusUpdate A function taking a single parameter `AVPlaybackStatus`.\n */\n setOnPlaybackStatusUpdate(onPlaybackStatusUpdate: ((status: AVPlaybackStatus) => void) | null) {\n this._onPlaybackStatusUpdate = onPlaybackStatusUpdate;\n this.getStatusAsync();\n }\n\n /**\n * Sets a function to be called whenever the metadata of the sound object changes, if one is set.\n * @param onMetadataUpdate A function taking a single object of type `AVMetadata` as a parameter.\n * @platform ios\n */\n setOnMetadataUpdate(onMetadataUpdate: (metadata: AVMetadata) => void) {\n this._onMetadataUpdate = onMetadataUpdate;\n }\n\n /**\n * Sets a function to be called during playback, receiving the audio sample as parameter.\n * @param callback A function taking the `AudioSampleCallback` as parameter.\n */\n setOnAudioSampleReceived(callback: AudioSampleCallback) {\n this._onAudioSampleReceived = callback;\n if (this._key != null) {\n this._updateAudioSampleReceivedCallback();\n }\n }\n\n // Loading / unloading API\n\n async loadAsync(\n source: AVPlaybackSource,\n initialStatus: AVPlaybackStatusToSet = {},\n downloadFirst: boolean = true\n ): Promise {\n throwIfAudioIsDisabled();\n if (this._loading) {\n throw new Error('The Sound is already loading.');\n }\n if (!this._loaded) {\n this._loading = true;\n\n const { nativeSource, fullInitialStatus } =\n await getNativeSourceAndFullInitialStatusForLoadAsync(source, initialStatus, downloadFirst);\n\n // This is a workaround, since using load with resolve / reject seems to not work.\n return new Promise((resolve, reject) => {\n const loadSuccess = (result: [AudioInstance, AVPlaybackStatus]) => {\n const [key, status] = result;\n this._key = key;\n this._loaded = true;\n this._loading = false;\n this._subscribeToNativeEvents();\n this._callOnPlaybackStatusUpdateForNewStatus(status);\n resolve(status);\n };\n\n const loadError = (error: Error) => {\n this._loading = false;\n reject(error);\n };\n\n ExponentAV.loadForSound(nativeSource, fullInitialStatus).then(loadSuccess).catch(loadError);\n });\n } else {\n throw new Error('The Sound is already loaded.');\n }\n }\n\n async unloadAsync(): Promise {\n if (this._loaded) {\n this._loaded = false;\n const key = this._key;\n this._key = null;\n const status = await ExponentAV.unloadForSound(key);\n this._callOnPlaybackStatusUpdateForNewStatus(status);\n this._clearSubscriptions();\n return status;\n } else {\n return this.getStatusAsync(); // Automatically calls onPlaybackStatusUpdate.\n }\n }\n\n // Set status API (only available while isLoaded = true)\n\n async setStatusAsync(status: AVPlaybackStatusToSet): Promise {\n assertStatusValuesInBounds(status);\n return this._performOperationAndHandleStatusAsync(() =>\n ExponentAV.setStatusForSound(this._key, status)\n );\n }\n\n async replayAsync(status: AVPlaybackStatusToSet = {}): Promise {\n if (status.positionMillis && status.positionMillis !== 0) {\n throw new Error('Requested position after replay has to be 0.');\n }\n\n return this._performOperationAndHandleStatusAsync(() =>\n ExponentAV.replaySound(this._key, {\n ...status,\n positionMillis: 0,\n shouldPlay: true,\n })\n );\n }\n\n // Methods of the Playback interface that are set via PlaybackMixin\n playAsync!: () => Promise;\n playFromPositionAsync!: (\n positionMillis: number,\n tolerances?: AVPlaybackTolerance\n ) => Promise;\n pauseAsync!: () => Promise;\n stopAsync!: () => Promise;\n setPositionAsync!: (\n positionMillis: number,\n tolerances?: AVPlaybackTolerance\n ) => Promise;\n setRateAsync!: (\n rate: number,\n shouldCorrectPitch: boolean,\n pitchCorrectionQuality?: PitchCorrectionQuality\n ) => Promise;\n setVolumeAsync!: (volume: number, audioPan?: number) => Promise;\n setIsMutedAsync!: (isMuted: boolean) => Promise;\n setIsLoopingAsync!: (isLooping: boolean) => Promise;\n setProgressUpdateIntervalAsync!: (\n progressUpdateIntervalMillis: number\n ) => Promise;\n}\n\nObject.assign(Sound.prototype, PlaybackMixin);\n","// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\n'use strict';\n\nfunction f(s: number, x: number, y: number, z: number) {\n switch (s) {\n case 0:\n return (x & y) ^ (~x & z);\n case 1:\n return x ^ y ^ z;\n case 2:\n return (x & y) ^ (x & z) ^ (y & z);\n case 3:\n return x ^ y ^ z;\n default:\n return 0;\n }\n}\n\nfunction ROTL(x: number, n: number) {\n return (x << n) | (x >>> (32 - n));\n}\n\nfunction sha1(bytes: number[] | string) {\n const K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n const H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n if (typeof bytes == 'string') {\n const msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n bytes = new Array(msg.length);\n for (let i = 0; i < msg.length; i++) bytes[i] = msg.charCodeAt(i);\n }\n\n bytes.push(0x80);\n\n const l = bytes.length / 4 + 2;\n const N = Math.ceil(l / 16);\n const M = new Array(N);\n\n for (let i = 0; i < N; i++) {\n M[i] = new Array(16);\n for (let j = 0; j < 16; j++) {\n M[i][j] =\n (bytes[i * 64 + j * 4] << 24) |\n (bytes[i * 64 + j * 4 + 1] << 16) |\n (bytes[i * 64 + j * 4 + 2] << 8) |\n bytes[i * 64 + j * 4 + 3];\n }\n }\n\n M[N - 1][14] = ((bytes.length - 1) * 8) / Math.pow(2, 32);\n M[N - 1][14] = Math.floor(M[N - 1][14]);\n M[N - 1][15] = ((bytes.length - 1) * 8) & 0xffffffff;\n\n for (let i = 0; i < N; i++) {\n const W = new Array(80);\n\n for (let t = 0; t < 16; t++) W[t] = M[i][t];\n for (let t = 16; t < 80; t++) {\n W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);\n }\n\n let a = H[0];\n let b = H[1];\n let c = H[2];\n let d = H[3];\n let e = H[4];\n\n for (let t = 0; t < 80; t++) {\n const s = Math.floor(t / 20);\n const T = (ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t]) >>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n\n H[0] = (H[0] + a) >>> 0;\n H[1] = (H[1] + b) >>> 0;\n H[2] = (H[2] + c) >>> 0;\n H[3] = (H[3] + d) >>> 0;\n H[4] = (H[4] + e) >>> 0;\n }\n\n return [\n (H[0] >> 24) & 0xff,\n (H[0] >> 16) & 0xff,\n (H[0] >> 8) & 0xff,\n H[0] & 0xff,\n (H[1] >> 24) & 0xff,\n (H[1] >> 16) & 0xff,\n (H[1] >> 8) & 0xff,\n H[1] & 0xff,\n (H[2] >> 24) & 0xff,\n (H[2] >> 16) & 0xff,\n (H[2] >> 8) & 0xff,\n H[2] & 0xff,\n (H[3] >> 24) & 0xff,\n (H[3] >> 16) & 0xff,\n (H[3] >> 8) & 0xff,\n H[3] & 0xff,\n (H[4] >> 24) & 0xff,\n (H[4] >> 16) & 0xff,\n (H[4] >> 8) & 0xff,\n H[4] & 0xff,\n ];\n}\n\nexport default sha1;\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nconst byteToHex: string[] = [];\nfor (let i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf: number[], offset?: number) {\n let i = offset || 0;\n const bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return [\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n '-',\n bth[buf[i++]],\n bth[buf[i++]],\n '-',\n bth[buf[i++]],\n bth[buf[i++]],\n '-',\n bth[buf[i++]],\n bth[buf[i++]],\n '-',\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n bth[buf[i++]],\n ].join('');\n}\n\nexport default bytesToUuid;\n","/**\n * Collection of utilities used for generating Universally Unique Identifiers.\n */\nexport type UUID = {\n /**\n * A UUID generated randomly.\n */\n v4: () => string;\n /**\n * A UUID generated based on the `value` and `namespace` parameters, which always produces the same result for the same inputs.\n */\n v5: (name: string, namespace: string | number[]) => string;\n namespace: typeof Uuidv5Namespace;\n};\n\n/**\n * Default namespaces for UUID v5 defined in RFC 4122\n */\nexport enum Uuidv5Namespace {\n // Source of the UUIDs: https://datatracker.ietf.org/doc/html/rfc4122\n dns = '6ba7b810-9dad-11d1-80b4-00c04fd430c8',\n url = '6ba7b811-9dad-11d1-80b4-00c04fd430c8',\n oid = '6ba7b812-9dad-11d1-80b4-00c04fd430c8',\n x500 = '6ba7b814-9dad-11d1-80b4-00c04fd430c8',\n}\n","import bytesToUuid from './bytesToUuid';\n\nfunction uuidToBytes(uuid: string) {\n // Note: We assume we're being passed a valid uuid string\n const bytes: number[] = [];\n uuid.replace(/[a-fA-F0-9]{2}/g, (hex: string) => {\n bytes.push(parseInt(hex, 16));\n return '';\n });\n\n return bytes;\n}\n\nfunction stringToBytes(str: string) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n const bytes: number[] = new Array(str.length);\n for (let i = 0; i < str.length; i++) {\n bytes[i] = str.charCodeAt(i);\n }\n return bytes;\n}\n\nexport default function (\n name: string,\n version: number,\n hashfunc: (bytes: number[] | string) => number[]\n) {\n const generateUUID = function (\n value: number[] | string,\n namespace: number[] | string,\n buf?: number[],\n offset?: number\n ): string {\n const off = (buf && offset) || 0;\n\n if (typeof value == 'string') value = stringToBytes(value);\n if (typeof namespace == 'string') namespace = uuidToBytes(namespace);\n\n if (!Array.isArray(value)) throw TypeError('value must be an array of bytes');\n if (!Array.isArray(namespace) || namespace.length !== 16)\n throw TypeError('namespace must be uuid string or an Array of 16 byte values');\n\n // Per 4.3\n const bytes = hashfunc(namespace.concat(value));\n bytes[6] = (bytes[6] & 0x0f) | version;\n bytes[8] = (bytes[8] & 0x3f) | 0x80;\n\n if (buf) {\n for (let idx = 0; idx < 16; ++idx) {\n buf[off + idx] = bytes[idx];\n }\n }\n\n return bytesToUuid(bytes);\n };\n\n // Function#name is not settable on some platforms (#270)\n try {\n generateUUID.name = name;\n } catch {}\n\n // Pre-defined namespaces, per Appendix C\n generateUUID.DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\n generateUUID.URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\n\n return generateUUID;\n}\n","import sha1 from './lib/sha1';\nimport v35 from './lib/v35';\nimport { UUID, Uuidv5Namespace } from './uuid.types';\n\nfunction uuidv4(): string {\n // Crypto needs to be required when run in Node.js environment.\n const cryptoObject =\n typeof crypto === 'undefined' || typeof crypto.randomUUID === 'undefined'\n ? require('crypto')\n : crypto;\n\n if (!cryptoObject?.randomUUID) {\n throw Error(\"The browser doesn't support `crypto.randomUUID` function\");\n }\n return cryptoObject.randomUUID();\n}\n\nconst uuid: UUID = {\n v4: uuidv4,\n v5: v35('v5', 0x50, sha1),\n namespace: Uuidv5Namespace,\n};\n\nexport default uuid;\n","import { DeviceEventEmitter } from 'react-native';\n\nimport { EventEmitter, Subscription } from './EventEmitter';\nimport NativeModulesProxy from './NativeModulesProxy';\nimport { ProxyNativeModule } from './NativeModulesProxy.types';\nimport { requireNativeViewManager } from './NativeViewManagerAdapter';\nimport Platform from './Platform';\nimport { CodedError } from './errors/CodedError';\nimport { UnavailabilityError } from './errors/UnavailabilityError';\n\nimport './sweet/setUpErrorManager.fx';\n\nexport { default as uuid } from './uuid';\n\nexport {\n DeviceEventEmitter,\n EventEmitter,\n NativeModulesProxy,\n ProxyNativeModule,\n Platform,\n Subscription,\n requireNativeViewManager,\n // Errors\n CodedError,\n UnavailabilityError,\n};\n\nexport * from './requireNativeModule';\nexport * from './TypedArrays.types';\n\n/**\n * @deprecated renamed to `DeviceEventEmitter`\n */\nexport const SyntheticPlatformEmitter = DeviceEventEmitter;\n\nexport * from './PermissionsInterface';\nexport * from './PermissionsHook';\n","import { PermissionResponse, PermissionStatus, SyntheticPlatformEmitter } from 'expo-modules-core';\n\nimport type { AVPlaybackNativeSource, AVPlaybackStatus, AVPlaybackStatusToSet } from './AV.types';\nimport type { RecordingStatus } from './Audio/Recording.types';\nimport { RecordingOptionsPresets } from './Audio/RecordingConstants';\n\nasync function getPermissionWithQueryAsync(\n name: PermissionNameWithAdditionalValues\n): Promise {\n if (!navigator || !navigator.permissions || !navigator.permissions.query) return null;\n\n try {\n const { state } = await navigator.permissions.query({ name });\n switch (state) {\n case 'granted':\n return PermissionStatus.GRANTED;\n case 'denied':\n return PermissionStatus.DENIED;\n default:\n return PermissionStatus.UNDETERMINED;\n }\n } catch {\n // Firefox - TypeError: 'microphone' (value of 'name' member of PermissionDescriptor) is not a valid value for enumeration PermissionName.\n return PermissionStatus.UNDETERMINED;\n }\n}\n\nfunction getUserMedia(constraints: MediaStreamConstraints): Promise {\n if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {\n return navigator.mediaDevices.getUserMedia(constraints);\n }\n\n // Some browsers partially implement mediaDevices. We can't just assign an object\n // with getUserMedia as it would overwrite existing properties.\n // Here, we will just add the getUserMedia property if it's missing.\n\n // First get ahold of the legacy getUserMedia, if present\n const getUserMedia =\n // TODO: this method is deprecated, migrate to https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia\n navigator.getUserMedia ||\n navigator.webkitGetUserMedia ||\n navigator.mozGetUserMedia ||\n function () {\n const error: any = new Error('Permission unimplemented');\n error.code = 0;\n error.name = 'NotAllowedError';\n throw error;\n };\n\n return new Promise((resolve, reject) => {\n getUserMedia.call(navigator, constraints, resolve, reject);\n });\n}\n\nfunction getStatusFromMedia(media?: HTMLMediaElement): AVPlaybackStatus {\n if (!media) {\n return {\n isLoaded: false,\n error: undefined,\n };\n }\n\n const isPlaying = !!(\n media.currentTime > 0 &&\n !media.paused &&\n !media.ended &&\n media.readyState > 2\n );\n\n const status: AVPlaybackStatus = {\n isLoaded: true,\n uri: media.src,\n progressUpdateIntervalMillis: 100, //TODO: Bacon: Add interval between calls\n durationMillis: media.duration * 1000,\n positionMillis: media.currentTime * 1000,\n // playableDurationMillis: media.buffered * 1000,\n // seekMillisToleranceBefore?: number\n // seekMillisToleranceAfter?: number\n shouldPlay: media.autoplay,\n isPlaying,\n isBuffering: false, //media.waiting,\n rate: media.playbackRate,\n // TODO: Bacon: This seems too complicated right now: https://webaudio.github.io/web-audio-api/#dom-biquadfilternode-frequency\n shouldCorrectPitch: false,\n volume: media.volume,\n audioPan: 0,\n isMuted: media.muted,\n isLooping: media.loop,\n didJustFinish: media.ended,\n };\n\n return status;\n}\n\nasync function setStatusForMedia(\n media: HTMLMediaElement,\n status: AVPlaybackStatusToSet\n): Promise {\n if (status.positionMillis !== undefined) {\n media.currentTime = status.positionMillis / 1000;\n }\n // if (status.progressUpdateIntervalMillis !== undefined) {\n // media.progressUpdateIntervalMillis = status.progressUpdateIntervalMillis;\n // }\n // if (status.seekMillisToleranceBefore !== undefined) {\n // media.seekMillisToleranceBefore = status.seekMillisToleranceBefore;\n // }\n // if (status.seekMillisToleranceAfter !== undefined) {\n // media.seekMillisToleranceAfter = status.seekMillisToleranceAfter;\n // }\n // if (status.shouldCorrectPitch !== undefined) {\n // media.shouldCorrectPitch = status.shouldCorrectPitch;\n // }\n if (status.shouldPlay !== undefined) {\n if (status.shouldPlay) {\n await media.play();\n } else {\n await media.pause();\n }\n }\n if (status.rate !== undefined) {\n media.playbackRate = status.rate;\n }\n if (status.volume !== undefined) {\n media.volume = status.volume;\n }\n if (status.isMuted !== undefined) {\n media.muted = status.isMuted;\n }\n if (status.isLooping !== undefined) {\n media.loop = status.isLooping;\n }\n\n return getStatusFromMedia(media);\n}\n\nlet mediaRecorder: null | any /*MediaRecorder*/ = null;\nlet mediaRecorderUptimeOfLastStartResume: number = 0;\nlet mediaRecorderDurationAlreadyRecorded: number = 0;\nlet mediaRecorderIsRecording: boolean = false;\n\nfunction getAudioRecorderDurationMillis() {\n let duration = mediaRecorderDurationAlreadyRecorded;\n if (mediaRecorderIsRecording && mediaRecorderUptimeOfLastStartResume > 0) {\n duration += Date.now() - mediaRecorderUptimeOfLastStartResume;\n }\n return duration;\n}\n\nexport default {\n get name(): string {\n return 'ExponentAV';\n },\n async getStatusForVideo(element: HTMLMediaElement): Promise {\n return getStatusFromMedia(element);\n },\n async loadForVideo(\n element: HTMLMediaElement,\n nativeSource: AVPlaybackNativeSource,\n fullInitialStatus: AVPlaybackStatusToSet\n ): Promise {\n return getStatusFromMedia(element);\n },\n async unloadForVideo(element: HTMLMediaElement): Promise {\n return getStatusFromMedia(element);\n },\n async setStatusForVideo(\n element: HTMLMediaElement,\n status: AVPlaybackStatusToSet\n ): Promise {\n return setStatusForMedia(element, status);\n },\n async replayVideo(\n element: HTMLMediaElement,\n status: AVPlaybackStatusToSet\n ): Promise {\n return setStatusForMedia(element, status);\n },\n /* Audio */\n async setAudioMode() {},\n async setAudioIsEnabled() {},\n async getStatusForSound(element: HTMLMediaElement) {\n return getStatusFromMedia(element);\n },\n async loadForSound(\n nativeSource: string | { uri: string; [key: string]: any },\n fullInitialStatus: AVPlaybackStatusToSet\n ): Promise<[HTMLMediaElement, AVPlaybackStatus]> {\n const source = typeof nativeSource === 'string' ? nativeSource : nativeSource.uri;\n const media = new Audio(source);\n\n media.ontimeupdate = () => {\n SyntheticPlatformEmitter.emit('didUpdatePlaybackStatus', {\n key: media,\n status: getStatusFromMedia(media),\n });\n };\n\n media.onerror = () => {\n SyntheticPlatformEmitter.emit('ExponentAV.onError', {\n key: media,\n error: media.error!.message,\n });\n };\n\n const status = await setStatusForMedia(media, fullInitialStatus);\n\n return [media, status];\n },\n async unloadForSound(element: HTMLMediaElement) {\n element.pause();\n element.removeAttribute('src');\n element.load();\n return getStatusFromMedia(element);\n },\n async setStatusForSound(\n element: HTMLMediaElement,\n status: AVPlaybackStatusToSet\n ): Promise {\n return setStatusForMedia(element, status);\n },\n async replaySound(\n element: HTMLMediaElement,\n status: AVPlaybackStatusToSet\n ): Promise {\n return setStatusForMedia(element, status);\n },\n\n /* Recording */\n // async setUnloadedCallbackForAndroidRecording() {},\n async getAudioRecordingStatus(): Promise {\n return {\n canRecord: mediaRecorder?.state === 'recording' || mediaRecorder?.state === 'inactive',\n isRecording: mediaRecorder?.state === 'recording',\n isDoneRecording: false,\n durationMillis: getAudioRecorderDurationMillis(),\n uri: null,\n };\n },\n async prepareAudioRecorder(options): Promise<{\n uri: string | null;\n // status is of type RecordingStatus, but without the canRecord field populated\n status: Pick>;\n }> {\n if (typeof navigator !== 'undefined' && !navigator.mediaDevices) {\n throw new Error('No media devices available');\n }\n\n mediaRecorderUptimeOfLastStartResume = 0;\n mediaRecorderDurationAlreadyRecorded = 0;\n\n const stream = await getUserMedia({ audio: true });\n\n mediaRecorder = new (window as any).MediaRecorder(\n stream,\n options?.web || RecordingOptionsPresets.HIGH_QUALITY.web\n );\n\n mediaRecorder.addEventListener('pause', () => {\n mediaRecorderDurationAlreadyRecorded = getAudioRecorderDurationMillis();\n mediaRecorderIsRecording = false;\n });\n\n mediaRecorder.addEventListener('resume', () => {\n mediaRecorderUptimeOfLastStartResume = Date.now();\n mediaRecorderIsRecording = true;\n });\n\n mediaRecorder.addEventListener('start', () => {\n mediaRecorderUptimeOfLastStartResume = Date.now();\n mediaRecorderDurationAlreadyRecorded = 0;\n mediaRecorderIsRecording = true;\n });\n\n mediaRecorder.addEventListener('stop', () => {\n mediaRecorderDurationAlreadyRecorded = getAudioRecorderDurationMillis();\n mediaRecorderIsRecording = false;\n\n // Clears recording icon in Chrome tab\n stream.getTracks().forEach((track) => track.stop());\n });\n\n const { uri, ...status } = await this.getAudioRecordingStatus();\n\n return { uri: null, status };\n },\n async startAudioRecording(): Promise {\n if (mediaRecorder === null) {\n throw new Error(\n 'Cannot start an audio recording without initializing a MediaRecorder. Run prepareToRecordAsync() before attempting to start an audio recording.'\n );\n }\n\n if (mediaRecorder.state === 'paused') {\n mediaRecorder.resume();\n } else {\n mediaRecorder.start();\n }\n\n return this.getAudioRecordingStatus();\n },\n async pauseAudioRecording(): Promise {\n if (mediaRecorder === null) {\n throw new Error(\n 'Cannot start an audio recording without initializing a MediaRecorder. Run prepareToRecordAsync() before attempting to start an audio recording.'\n );\n }\n\n // Set status to paused\n mediaRecorder.pause();\n\n return this.getAudioRecordingStatus();\n },\n async stopAudioRecording(): Promise {\n if (mediaRecorder === null) {\n throw new Error(\n 'Cannot start an audio recording without initializing a MediaRecorder. Run prepareToRecordAsync() before attempting to start an audio recording.'\n );\n }\n\n if (mediaRecorder.state === 'inactive') {\n return this.getAudioRecordingStatus();\n }\n\n const dataPromise = new Promise((resolve) =>\n mediaRecorder.addEventListener('dataavailable', (e) => resolve(e.data))\n );\n\n mediaRecorder.stop();\n\n const data = await dataPromise;\n const url = URL.createObjectURL(data);\n\n return {\n ...(await this.getAudioRecordingStatus()),\n uri: url,\n };\n },\n async unloadAudioRecorder(): Promise {\n mediaRecorder = null;\n },\n\n async getPermissionsAsync(): Promise {\n const maybeStatus = await getPermissionWithQueryAsync('microphone');\n switch (maybeStatus) {\n case PermissionStatus.GRANTED:\n return {\n status: PermissionStatus.GRANTED,\n expires: 'never',\n canAskAgain: true,\n granted: true,\n };\n case PermissionStatus.DENIED:\n return {\n status: PermissionStatus.DENIED,\n expires: 'never',\n canAskAgain: true,\n granted: false,\n };\n default:\n return await this.requestPermissionsAsync();\n }\n },\n async requestPermissionsAsync(): Promise {\n try {\n const stream = await getUserMedia({ audio: true });\n stream.getTracks().forEach((track) => track.stop());\n return {\n status: PermissionStatus.GRANTED,\n expires: 'never',\n canAskAgain: true,\n granted: true,\n };\n } catch {\n return {\n status: PermissionStatus.DENIED,\n expires: 'never',\n canAskAgain: true,\n granted: false,\n };\n }\n },\n};\n","import { Asset } from 'expo-asset';\n\n// @needsAudit\n/**\n * The different types of assets you can provide to the [`loadAsync()`](#loadAsync) function.\n * A font source can be a URI, a module ID, or an Expo Asset.\n */\nexport type FontSource = string | number | Asset | FontResource;\n\n// @needsAudit\n/**\n * An object used to dictate the resource that is loaded into the provided font namespace when used\n * with [`loadAsync`](#loadasync).\n */\nexport type FontResource = {\n uri?: string | number;\n /**\n * Sets the [`font-display`](#fontdisplay) property for a given typeface in the browser.\n * @platform web\n */\n display?: FontDisplay;\n default?: string;\n};\n\n// @needsAudit\n/**\n * Sets the [font-display](https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display)\n * for a given typeface. The default font value on web is `FontDisplay.AUTO`.\n * Even though setting the `fontDisplay` does nothing on native platforms, the default behavior\n * emulates `FontDisplay.SWAP` on flagship devices like iOS, Samsung, Pixel, etc. Default\n * functionality varies on One Plus devices. In the browser this value is set in the generated\n * `@font-face` CSS block and not as a style property meaning you cannot dynamically change this\n * value based on the element it's used in.\n * @platform web\n */\nexport enum FontDisplay {\n /**\n * __(Default)__ The font display strategy is defined by the user agent or platform.\n * This generally defaults to the text being invisible until the font is loaded.\n * Good for buttons or banners that require a specific treatment.\n */\n AUTO = 'auto',\n /**\n * Fallback text is rendered immediately with a default font while the desired font is loaded.\n * This is good for making the content appear to load instantly and is usually preferred.\n */\n SWAP = 'swap',\n /**\n * The text will be invisible until the font has loaded. If the font fails to load then nothing\n * will appear - it's best to turn this off when debugging missing text.\n */\n BLOCK = 'block',\n /**\n * Splits the behavior between `SWAP` and `BLOCK`.\n * There will be a [100ms timeout](https://developers.google.com/web/updates/2016/02/font-display?hl=en)\n * where the text with a custom font is invisible, after that the text will either swap to the\n * styled text or it'll show the unstyled text and continue to load the custom font. This is good\n * for buttons that need a custom font but should also be quickly available to screen-readers.\n */\n FALLBACK = 'fallback',\n /**\n * This works almost identically to `FALLBACK`, the only difference is that the browser will\n * decide to load the font based on slow connection speed or critical resource demand.\n */\n OPTIONAL = 'optional',\n}\n\n// @needsAudit\n/**\n * Object used to query fonts for unloading.\n */\nexport type UnloadFontOptions = Pick;\n","import { CodedError, Platform } from 'expo-modules-core';\nimport FontObserver from 'fontfaceobserver';\n\nimport { UnloadFontOptions } from './Font';\nimport { FontDisplay, FontResource } from './Font.types';\n\nfunction getFontFaceStyleSheet(): CSSStyleSheet | null {\n if (!Platform.isDOMAvailable) {\n return null;\n }\n const styleSheet = getStyleElement();\n return styleSheet.sheet ? (styleSheet.sheet as CSSStyleSheet) : null;\n}\n\ntype RuleItem = { rule: CSSFontFaceRule; index: number };\n\nfunction getFontFaceRules(): RuleItem[] {\n const sheet = getFontFaceStyleSheet();\n if (sheet) {\n // @ts-ignore: rule iterator\n const rules = [...sheet.cssRules];\n\n const items: RuleItem[] = [];\n\n for (let i = 0; i < rules.length; i++) {\n const rule = rules[i];\n if (rule instanceof CSSFontFaceRule) {\n items.push({ rule, index: i });\n }\n }\n return items;\n }\n return [];\n}\n\nfunction getFontFaceRulesMatchingResource(\n fontFamilyName: string,\n options?: UnloadFontOptions\n): RuleItem[] {\n const rules = getFontFaceRules();\n return rules.filter(({ rule }) => {\n return (\n rule.style.fontFamily === fontFamilyName &&\n (options && options.display ? options.display === (rule.style as any).fontDisplay : true)\n );\n });\n}\n\nconst serverContext: Set<{ name: string; css: string; resourceId: string }> = new Set();\n\nfunction getHeadElements(): {\n $$type: string;\n rel?: string;\n href?: string;\n as?: string;\n crossorigin?: string;\n children?: string;\n id?: string;\n type?: string;\n}[] {\n const entries = [...serverContext.entries()];\n if (!entries.length) {\n return [];\n }\n const css = entries.map(([{ css }]) => css).join('\\n');\n const links = entries.map(([{ resourceId }]) => resourceId);\n // TODO: Maybe return nothing if no fonts were loaded.\n return [\n {\n $$type: 'style',\n children: css,\n id: ID,\n type: 'text/css',\n },\n ...links.map((resourceId) => ({\n $$type: 'link',\n rel: 'preload',\n href: resourceId,\n as: 'font',\n crossorigin: '',\n })),\n ];\n}\n\nexport default {\n get name(): string {\n return 'ExpoFontLoader';\n },\n\n async unloadAllAsync(): Promise {\n if (!Platform.isDOMAvailable) return;\n\n const element = document.getElementById(ID);\n if (element && element instanceof HTMLStyleElement) {\n document.removeChild(element);\n }\n },\n\n async unloadAsync(fontFamilyName: string, options?: UnloadFontOptions): Promise {\n const sheet = getFontFaceStyleSheet();\n if (!sheet) return;\n const items = getFontFaceRulesMatchingResource(fontFamilyName, options);\n for (const item of items) {\n sheet.deleteRule(item.index);\n }\n },\n\n getServerResources(): string[] {\n const elements = getHeadElements();\n\n return elements\n .map((element) => {\n switch (element.$$type) {\n case 'style':\n return ``;\n case 'link':\n return ``;\n default:\n return '';\n }\n })\n .filter(Boolean);\n },\n\n resetServerContext() {\n serverContext.clear();\n },\n\n isLoaded(fontFamilyName: string, resource: UnloadFontOptions = {}): boolean {\n if (typeof window === 'undefined') {\n return !![...serverContext.values()].find((asset) => {\n return asset.name === fontFamilyName;\n });\n }\n return getFontFaceRulesMatchingResource(fontFamilyName, resource)?.length > 0;\n },\n\n // NOTE(EvanBacon): No async keyword! This cannot return a promise in Node environments.\n loadAsync(fontFamilyName: string, resource: FontResource): Promise {\n if (typeof window === 'undefined') {\n serverContext.add({\n name: fontFamilyName,\n css: _createWebFontTemplate(fontFamilyName, resource),\n // @ts-expect-error: typeof string\n resourceId: resource.uri!,\n });\n return Promise.resolve();\n }\n\n const canInjectStyle = document.head && typeof document.head.appendChild === 'function';\n if (!canInjectStyle) {\n throw new CodedError(\n 'ERR_WEB_ENVIRONMENT',\n `The browser's \\`document.head\\` element doesn't support injecting fonts.`\n );\n }\n\n const style = getStyleElement();\n document.head!.appendChild(style);\n\n const res = getFontFaceRulesMatchingResource(fontFamilyName, resource);\n if (!res.length) {\n _createWebStyle(fontFamilyName, resource);\n }\n\n if (!isFontLoadingListenerSupported()) {\n return Promise.resolve();\n }\n\n return new FontObserver(fontFamilyName, { display: resource.display }).load(null, 6000);\n },\n};\n\nconst ID = 'expo-generated-fonts';\n\nfunction getStyleElement(): HTMLStyleElement {\n const element = document.getElementById(ID);\n if (element && element instanceof HTMLStyleElement) {\n return element;\n }\n const styleElement = document.createElement('style');\n styleElement.id = ID;\n styleElement.type = 'text/css';\n return styleElement;\n}\n\nexport function _createWebFontTemplate(fontFamily: string, resource: FontResource): string {\n return `@font-face{font-family:${fontFamily};src:url(${resource.uri});font-display:${\n resource.display || FontDisplay.AUTO\n }}`;\n}\n\nfunction _createWebStyle(fontFamily: string, resource: FontResource): HTMLStyleElement {\n const fontStyle = _createWebFontTemplate(fontFamily, resource);\n\n const styleElement = getStyleElement();\n // @ts-ignore: TypeScript does not define HTMLStyleElement::styleSheet. This is just for IE and\n // possibly can be removed if it's unnecessary on IE 11.\n if (styleElement.styleSheet) {\n const styleElementIE = styleElement as any;\n styleElementIE.styleSheet.cssText = styleElementIE.styleSheet.cssText\n ? styleElementIE.styleSheet.cssText + fontStyle\n : fontStyle;\n } else {\n const textNode = document.createTextNode(fontStyle);\n styleElement.appendChild(textNode);\n }\n return styleElement;\n}\n\nfunction isFontLoadingListenerSupported(): boolean {\n const { userAgent } = window.navigator;\n // WebKit is broken https://github.com/bramstein/fontfaceobserver/issues/95\n const isIOS = !!userAgent.match(/iPad|iPhone/i);\n const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n // Edge is broken https://github.com/bramstein/fontfaceobserver/issues/109#issuecomment-333356795\n const isEdge = userAgent.includes('Edge');\n // Internet Explorer\n const isIE = userAgent.includes('Trident');\n // Firefox\n const isFirefox = userAgent.includes('Firefox');\n return !isSafari && !isIOS && !isEdge && !isIE && !isFirefox;\n}\n","import { Asset } from 'expo-asset';\nimport { CodedError } from 'expo-modules-core';\n\nimport ExpoFontLoader from './ExpoFontLoader';\nimport { FontResource, FontSource, FontDisplay } from './Font.types';\n\nfunction uriFromFontSource(asset: any): string | null {\n if (typeof asset === 'string') {\n return asset || null;\n } else if (typeof asset === 'object') {\n return asset.uri || asset.localUri || asset.default || null;\n } else if (typeof asset === 'number') {\n return uriFromFontSource(Asset.fromModule(asset));\n }\n return null;\n}\n\nfunction displayFromFontSource(asset: any): FontDisplay | undefined {\n return asset.display || FontDisplay.AUTO;\n}\n\nexport function fontFamilyNeedsScoping(name: string): boolean {\n return false;\n}\n\nexport function getAssetForSource(source: FontSource): Asset | FontResource {\n const uri = uriFromFontSource(source);\n const display = displayFromFontSource(source);\n\n if (!uri || typeof uri !== 'string') {\n throwInvalidSourceError(uri);\n }\n\n return {\n uri: uri!,\n display,\n };\n}\n\nfunction throwInvalidSourceError(source: any): never {\n let type: string = typeof source;\n if (type === 'object') type = JSON.stringify(source, null, 2);\n throw new CodedError(\n `ERR_FONT_SOURCE`,\n `Expected font asset of type \\`string | FontResource | Asset\\` instead got: ${type}`\n );\n}\n\n// NOTE(EvanBacon): No async keyword!\nexport function loadSingleFontAsync(name: string, input: Asset | FontResource): Promise {\n if (typeof input !== 'object' || typeof input.uri !== 'string' || (input as any).downloadAsync) {\n throwInvalidSourceError(input);\n }\n\n try {\n return ExpoFontLoader.loadAsync(name, input);\n } catch {\n // No-op.\n }\n\n return Promise.resolve();\n}\n\nexport function getNativeFontName(name: string): string {\n return name;\n}\n","export const loaded: { [name: string]: boolean } = {};\nexport const loadPromises: { [name: string]: Promise } = {};\n","import { CodedError } from 'expo-modules-core';\n\nimport ExpoFontLoader from './ExpoFontLoader';\nimport { FontSource } from './Font.types';\nimport { getAssetForSource, loadSingleFontAsync } from './FontLoader';\n\n/**\n * @returns the server resources that should be statically extracted.\n * @private\n */\nexport function getServerResources(): string[] {\n return ExpoFontLoader.getServerResources();\n}\n\n/**\n * @returns clear the server resources from the global scope.\n * @private\n */\nexport function resetServerContext() {\n return ExpoFontLoader.resetServerContext();\n}\n\nexport function registerStaticFont(fontFamily: string, source?: FontSource | null) {\n // MUST BE A SYNC FUNCTION!\n if (!source) {\n throw new CodedError(\n `ERR_FONT_SOURCE`,\n `Cannot load null or undefined font source: { \"${fontFamily}\": ${source} }. Expected asset of type \\`FontSource\\` for fontFamily of name: \"${fontFamily}\"`\n );\n }\n const asset = getAssetForSource(source);\n\n loadSingleFontAsync(fontFamily, asset);\n}\n","import { CodedError, Platform, UnavailabilityError } from 'expo-modules-core';\n\nimport ExpoFontLoader from './ExpoFontLoader';\nimport { FontDisplay, FontSource, FontResource, UnloadFontOptions } from './Font.types';\nimport {\n getAssetForSource,\n loadSingleFontAsync,\n fontFamilyNeedsScoping,\n getNativeFontName,\n} from './FontLoader';\nimport { loaded, loadPromises } from './memory';\nimport { registerStaticFont } from './server';\n\n// @needsAudit\n// note(brentvatne): at some point we may want to warn if this is called outside of a managed app.\n/**\n * Used to transform font family names to the scoped name. This does not need to\n * be called in standalone or bare apps but it will return unscoped font family\n * names if it is called in those contexts.\n *\n * @param fontFamily Name of font to process.\n * @returns Returns a name processed for use with the [current workflow](https://docs.expo.dev/archive/managed-vs-bare/).\n */\nexport function processFontFamily(fontFamily: string | null): string | null {\n if (!fontFamily || !fontFamilyNeedsScoping(fontFamily)) {\n return fontFamily;\n }\n\n if (!isLoaded(fontFamily)) {\n if (__DEV__) {\n if (isLoading(fontFamily)) {\n console.warn(\n `You started loading the font \"${fontFamily}\", but used it before it finished loading. You need to wait for Font.loadAsync to complete before using the font.`\n );\n } else {\n console.warn(\n `fontFamily \"${fontFamily}\" is not a system font and has not been loaded through expo-font.`\n );\n }\n }\n }\n\n return `ExpoFont-${getNativeFontName(fontFamily)}`;\n}\n\n// @needsAudit\n/**\n * Synchronously detect if the font for `fontFamily` has finished loading.\n *\n * @param fontFamily The name used to load the `FontResource`.\n * @return Returns `true` if the font has fully loaded.\n */\nexport function isLoaded(fontFamily: string): boolean {\n if (Platform.OS === 'web') {\n return fontFamily in loaded || !!ExpoFontLoader.isLoaded(fontFamily);\n }\n return fontFamily in loaded || ExpoFontLoader.customNativeFonts?.includes(fontFamily);\n}\n\n// @needsAudit\n/**\n * Synchronously detect if the font for `fontFamily` is still being loaded.\n *\n * @param fontFamily The name used to load the `FontResource`.\n * @returns Returns `true` if the font is still loading.\n */\nexport function isLoading(fontFamily: string): boolean {\n return fontFamily in loadPromises;\n}\n\n// @needsAudit\n/**\n * Highly efficient method for loading fonts from static or remote resources which can then be used\n * with the platform's native text elements. In the browser this generates a `@font-face` block in\n * a shared style sheet for fonts. No CSS is needed to use this method.\n *\n * @param fontFamilyOrFontMap string or map of values that can be used as the [`fontFamily`](https://reactnative.dev/docs/text#style)\n * style prop with React Native Text elements.\n * @param source the font asset that should be loaded into the `fontFamily` namespace.\n *\n * @return Returns a promise that fulfils when the font has loaded. Often you may want to wrap the\n * method in a `try/catch/finally` to ensure the app continues if the font fails to load.\n */\nexport function loadAsync(\n fontFamilyOrFontMap: string | Record,\n source?: FontSource\n): Promise {\n // NOTE(EvanBacon): Static render pass on web must be synchronous to collect all fonts.\n // Because of this, `loadAsync` doesn't use the `async` keyword and deviates from the\n // standard Expo SDK style guide.\n const isServer = Platform.OS === 'web' && typeof window === 'undefined';\n\n if (typeof fontFamilyOrFontMap === 'object') {\n if (source) {\n return Promise.reject(\n new CodedError(\n `ERR_FONT_API`,\n `No fontFamily can be used for the provided source: ${source}. The second argument of \\`loadAsync()\\` can only be used with a \\`string\\` value as the first argument.`\n )\n );\n }\n const fontMap = fontFamilyOrFontMap;\n const names = Object.keys(fontMap);\n\n if (isServer) {\n names.map((name) => registerStaticFont(name, fontMap[name]));\n return Promise.resolve();\n }\n\n return Promise.all(names.map((name) => loadFontInNamespaceAsync(name, fontMap[name]))).then(\n () => {}\n );\n }\n\n if (isServer) {\n registerStaticFont(fontFamilyOrFontMap, source);\n return Promise.resolve();\n }\n\n return loadFontInNamespaceAsync(fontFamilyOrFontMap, source);\n}\n\nasync function loadFontInNamespaceAsync(\n fontFamily: string,\n source?: FontSource | null\n): Promise {\n if (!source) {\n throw new CodedError(\n `ERR_FONT_SOURCE`,\n `Cannot load null or undefined font source: { \"${fontFamily}\": ${source} }. Expected asset of type \\`FontSource\\` for fontFamily of name: \"${fontFamily}\"`\n );\n }\n\n if (loaded[fontFamily]) {\n return;\n }\n\n if (loadPromises.hasOwnProperty(fontFamily)) {\n return loadPromises[fontFamily];\n }\n\n // Important: we want all callers that concurrently try to load the same font to await the same\n // promise. If we're here, we haven't created the promise yet. To ensure we create only one\n // promise in the program, we need to create the promise synchronously without yielding the event\n // loop from this point.\n\n const asset = getAssetForSource(source);\n loadPromises[fontFamily] = (async () => {\n try {\n await loadSingleFontAsync(fontFamily, asset);\n loaded[fontFamily] = true;\n } finally {\n delete loadPromises[fontFamily];\n }\n })();\n\n await loadPromises[fontFamily];\n}\n\n// @needsAudit\n/**\n * Unloads all the custom fonts. This is used for testing.\n */\nexport async function unloadAllAsync(): Promise {\n if (!ExpoFontLoader.unloadAllAsync) {\n throw new UnavailabilityError('expo-font', 'unloadAllAsync');\n }\n\n if (Object.keys(loadPromises).length) {\n throw new CodedError(\n `ERR_UNLOAD`,\n `Cannot unload fonts while they're still loading: ${Object.keys(loadPromises).join(', ')}`\n );\n }\n\n for (const fontFamily of Object.keys(loaded)) {\n delete loaded[fontFamily];\n }\n\n await ExpoFontLoader.unloadAllAsync();\n}\n\n// @needsAudit\n/**\n * Unload custom fonts matching the `fontFamily`s and display values provided.\n * Because fonts are automatically unloaded on every platform this is mostly used for testing.\n *\n * @param fontFamilyOrFontMap The name or names of the custom fonts that will be unloaded.\n * @param options When `fontFamilyOrFontMap` is a string, this should be the font source used to load\n * the custom font originally.\n */\nexport async function unloadAsync(\n fontFamilyOrFontMap: string | Record,\n options?: UnloadFontOptions\n): Promise {\n if (!ExpoFontLoader.unloadAsync) {\n throw new UnavailabilityError('expo-font', 'unloadAsync');\n }\n if (typeof fontFamilyOrFontMap === 'object') {\n if (options) {\n throw new CodedError(\n `ERR_FONT_API`,\n `No fontFamily can be used for the provided options: ${options}. The second argument of \\`unloadAsync()\\` can only be used with a \\`string\\` value as the first argument.`\n );\n }\n const fontMap = fontFamilyOrFontMap;\n const names = Object.keys(fontMap);\n await Promise.all(names.map((name) => unloadFontInNamespaceAsync(name, fontMap[name])));\n return;\n }\n\n return await unloadFontInNamespaceAsync(fontFamilyOrFontMap, options);\n}\n\nasync function unloadFontInNamespaceAsync(\n fontFamily: string,\n options?: UnloadFontOptions | null\n): Promise {\n if (!loaded[fontFamily]) {\n return;\n } else {\n delete loaded[fontFamily];\n }\n\n // Important: we want all callers that concurrently try to load the same font to await the same\n // promise. If we're here, we haven't created the promise yet. To ensure we create only one\n // promise in the program, we need to create the promise synchronously without yielding the event\n // loop from this point.\n\n const nativeFontName = getNativeFontName(fontFamily);\n\n if (!nativeFontName) {\n throw new CodedError(`ERR_FONT_FAMILY`, `Cannot unload an empty name`);\n }\n\n await ExpoFontLoader.unloadAsync(nativeFontName, options);\n}\n\nexport { FontDisplay, FontSource, FontResource, UnloadFontOptions };\n","import { useEffect, useState } from 'react';\n\nimport { loadAsync, isLoaded } from './Font';\nimport { FontSource } from './Font.types';\n\nfunction isMapLoaded(map: string | Record) {\n if (typeof map === 'string') {\n return isLoaded(map);\n } else {\n return Object.keys(map).every((fontFamily) => isLoaded(fontFamily));\n }\n}\n\nfunction useRuntimeFonts(map: string | Record): [boolean, Error | null] {\n const [loaded, setLoaded] = useState(\n // For web rehydration, we need to check if the fonts are already loaded during the static render.\n // Native will also benefit from this optimization.\n isMapLoaded(map)\n );\n const [error, setError] = useState(null);\n\n useEffect(() => {\n loadAsync(map)\n .then(() => setLoaded(true))\n .catch(setError);\n }, []);\n\n return [loaded, error];\n}\n\nfunction useStaticFonts(map: string | Record): [boolean, Error | null] {\n loadAsync(map);\n return [true, null];\n}\n\n// @needsAudit\n/**\n * ```ts\n * const [loaded, error] = useFonts({ ... });\n * ```\n * Load a map of fonts with [`loadAsync`](#loadasync). This returns a `boolean` if the fonts are\n * loaded and ready to use. It also returns an error if something went wrong, to use in development.\n *\n * > Note, the fonts are not \"reloaded\" when you dynamically change the font map.\n *\n * @param map A map of `fontFamily`s to [`FontSource`](#fontsource)s. After loading the font you can\n * use the key in the `fontFamily` style prop of a `Text` element.\n *\n * @return\n * - __loaded__ (`boolean`) - A boolean to detect if the font for `fontFamily` has finished\n * loading.\n * - __error__ (`Error | null`) - An error encountered when loading the fonts.\n */\nexport const useFonts: (map: string | Record) => [boolean, Error | null] =\n typeof window === 'undefined' ? useStaticFonts : useRuntimeFonts;\n","import { PermissionResponse, PermissionStatus, Platform } from 'expo-modules-core';\n\nimport {\n ImagePickerAsset,\n ImagePickerResult,\n MediaTypeOptions,\n OpenFileBrowserOptions,\n} from './ImagePicker.types';\n\nconst MediaTypeInput = {\n [MediaTypeOptions.All]: 'video/mp4,video/quicktime,video/x-m4v,video/*,image/*',\n [MediaTypeOptions.Images]: 'image/*',\n [MediaTypeOptions.Videos]: 'video/mp4,video/quicktime,video/x-m4v,video/*',\n};\n\nexport default {\n get name(): string {\n return 'ExponentImagePicker';\n },\n\n async launchImageLibraryAsync({\n mediaTypes = MediaTypeOptions.Images,\n allowsMultipleSelection = false,\n base64 = false,\n }): Promise {\n // SSR guard\n if (!Platform.isDOMAvailable) {\n return { canceled: true, assets: null };\n }\n return await openFileBrowserAsync({\n mediaTypes,\n allowsMultipleSelection,\n base64,\n });\n },\n\n async launchCameraAsync({\n mediaTypes = MediaTypeOptions.Images,\n allowsMultipleSelection = false,\n base64 = false,\n }): Promise {\n // SSR guard\n if (!Platform.isDOMAvailable) {\n return { canceled: true, assets: null };\n }\n return await openFileBrowserAsync({\n mediaTypes,\n allowsMultipleSelection,\n capture: true,\n base64,\n });\n },\n\n /*\n * Delegate to expo-permissions to request camera permissions\n */\n async getCameraPermissionsAsync() {\n return permissionGrantedResponse();\n },\n async requestCameraPermissionsAsync() {\n return permissionGrantedResponse();\n },\n\n /*\n * Camera roll permissions don't need to be requested on web, so we always\n * respond with granted.\n */\n async getMediaLibraryPermissionsAsync(_writeOnly: boolean) {\n return permissionGrantedResponse();\n },\n async requestMediaLibraryPermissionsAsync(_writeOnly: boolean): Promise {\n return permissionGrantedResponse();\n },\n};\n\nfunction permissionGrantedResponse(): PermissionResponse {\n return {\n status: PermissionStatus.GRANTED,\n expires: 'never',\n granted: true,\n canAskAgain: true,\n };\n}\n\nfunction openFileBrowserAsync({\n mediaTypes,\n capture = false,\n allowsMultipleSelection = false,\n base64,\n}: OpenFileBrowserOptions): Promise {\n const mediaTypeFormat = MediaTypeInput[mediaTypes];\n\n const input = document.createElement('input');\n input.style.display = 'none';\n input.setAttribute('type', 'file');\n input.setAttribute('accept', mediaTypeFormat);\n input.setAttribute('id', String(Math.random()));\n if (allowsMultipleSelection) {\n input.setAttribute('multiple', 'multiple');\n }\n if (capture) {\n input.setAttribute('capture', 'camera');\n }\n document.body.appendChild(input);\n\n return new Promise((resolve) => {\n input.addEventListener('change', async () => {\n if (input.files) {\n const files = allowsMultipleSelection ? input.files : [input.files[0]];\n const assets: ImagePickerAsset[] = await Promise.all(\n Array.from(files).map((file) => readFile(file, { base64 }))\n );\n\n resolve({ canceled: false, assets });\n } else {\n resolve({ canceled: true, assets: null });\n }\n document.body.removeChild(input);\n });\n\n const event = new MouseEvent('click');\n input.dispatchEvent(event);\n });\n}\n\nfunction readFile(targetFile: File, options: { base64: boolean }): Promise {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onerror = () => {\n reject(new Error(`Failed to read the selected media because the operation failed.`));\n };\n reader.onload = ({ target }) => {\n const uri = (target as any).result;\n const returnRaw = () => resolve({ uri, width: 0, height: 0 });\n\n if (typeof uri === 'string') {\n const image = new Image();\n image.src = uri;\n\n image.onload = () => {\n resolve({\n uri,\n width: image.naturalWidth ?? image.width,\n height: image.naturalHeight ?? image.height,\n mimeType: targetFile.type,\n fileName: targetFile.name,\n // The blob's result cannot be directly decoded as Base64 without\n // first removing the Data-URL declaration preceding the\n // Base64-encoded data. To retrieve only the Base64 encoded string,\n // first remove data:*/*;base64, from the result.\n // https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsDataURL\n ...(options.base64 && { base64: uri.substr(uri.indexOf(',') + 1) }),\n });\n };\n image.onerror = () => returnRaw();\n } else {\n returnRaw();\n }\n };\n\n reader.readAsDataURL(targetFile);\n });\n}\n","import {\n PermissionStatus,\n PermissionExpiration,\n PermissionHookOptions,\n PermissionResponse,\n createPermissionHook,\n UnavailabilityError,\n CodedError,\n} from 'expo-modules-core';\n\nimport ExponentImagePicker from './ExponentImagePicker';\nimport {\n CameraPermissionResponse,\n MediaLibraryPermissionResponse,\n ImagePickerResult,\n ImagePickerErrorResult,\n ImagePickerOptions,\n} from './ImagePicker.types';\n\nfunction validateOptions(options: ImagePickerOptions) {\n const { aspect, quality, videoMaxDuration } = options;\n\n if (aspect != null) {\n const [x, y] = aspect;\n\n if (x <= 0 || y <= 0) {\n throw new CodedError(\n 'ERR_INVALID_ARGUMENT',\n `Invalid aspect ratio values ${x}:${y}. Provide positive numbers.`\n );\n }\n }\n\n if (quality && (quality < 0 || quality > 1)) {\n throw new CodedError(\n 'ERR_INVALID_ARGUMENT',\n `Invalid 'quality' value ${quality}. Provide a value between 0 and 1.`\n );\n }\n\n if (videoMaxDuration && videoMaxDuration < 0) {\n throw new CodedError(\n 'ERR_INVALID_ARGUMENT',\n `Invalid 'videoMaxDuration' value ${videoMaxDuration}. Provide a non-negative number.`\n );\n }\n\n return options;\n}\n\n// @needsAudit\n/**\n * Checks user's permissions for accessing camera.\n * @return A promise that fulfills with an object of type [CameraPermissionResponse](#camerapermissionresponse).\n */\nexport async function getCameraPermissionsAsync(): Promise {\n return ExponentImagePicker.getCameraPermissionsAsync();\n}\n\n// @needsAudit\n/**\n * Checks user's permissions for accessing photos.\n * @param writeOnly Whether to request write or read and write permissions. Defaults to `false`\n * @return A promise that fulfills with an object of type [MediaLibraryPermissionResponse](#medialibrarypermissionresponse).\n */\nexport async function getMediaLibraryPermissionsAsync(\n writeOnly: boolean = false\n): Promise {\n return ExponentImagePicker.getMediaLibraryPermissionsAsync(writeOnly);\n}\n\n// @needsAudit\n/**\n * Asks the user to grant permissions for accessing camera. This does nothing on web because the\n * browser camera is not used.\n * @return A promise that fulfills with an object of type [CameraPermissionResponse](#camerarollpermissionresponse).\n */\nexport async function requestCameraPermissionsAsync(): Promise {\n return ExponentImagePicker.requestCameraPermissionsAsync();\n}\n\n// @needsAudit\n/**\n * Asks the user to grant permissions for accessing user's photo. This method does nothing on web.\n * @param writeOnly Whether to request write or read and write permissions. Defaults to `false`\n * @return A promise that fulfills with an object of type [MediaLibraryPermissionResponse](#medialibrarypermissionresponse).\n */\nexport async function requestMediaLibraryPermissionsAsync(\n writeOnly: boolean = false\n): Promise {\n const imagePickerMethod = ExponentImagePicker.requestMediaLibraryPermissionsAsync;\n return imagePickerMethod(writeOnly);\n}\n\n// @needsAudit\n/**\n * Check or request permissions to access the media library.\n * This uses both `requestMediaLibraryPermissionsAsync` and `getMediaLibraryPermissionsAsync` to interact with the permissions.\n *\n * @example\n * ```ts\n * const [status, requestPermission] = ImagePicker.useMediaLibraryPermissions();\n * ```\n */\nexport const useMediaLibraryPermissions = createPermissionHook<\n MediaLibraryPermissionResponse,\n { writeOnly?: boolean }\n>({\n // TODO(cedric): permission requesters should have an options param or a different requester\n getMethod: (options) => getMediaLibraryPermissionsAsync(options?.writeOnly),\n requestMethod: (options) => requestMediaLibraryPermissionsAsync(options?.writeOnly),\n});\n\n// @needsAudit\n/**\n * Check or request permissions to access the camera.\n * This uses both `requestCameraPermissionsAsync` and `getCameraPermissionsAsync` to interact with the permissions.\n *\n * @example\n * ```ts\n * const [status, requestPermission] = ImagePicker.useCameraPermissions();\n * ```\n */\nexport const useCameraPermissions = createPermissionHook({\n getMethod: getCameraPermissionsAsync,\n requestMethod: requestCameraPermissionsAsync,\n});\n\n// @needsAudit\n/**\n * Android system sometimes kills the `MainActivity` after the `ImagePicker` finishes. When this\n * happens, we lost the data selected from the `ImagePicker`. However, you can retrieve the lost\n * data by calling `getPendingResultAsync`. You can test this functionality by turning on\n * `Don't keep activities` in the developer options.\n * @return\n * - **On Android:** a promise that resolves to an array of objects of exactly same type as in\n * `ImagePicker.launchImageLibraryAsync` or `ImagePicker.launchCameraAsync` if the `ImagePicker`\n * finished successfully. Otherwise, to the array of [`ImagePickerErrorResult`](#imagepickerimagepickererrorresult).\n * - **On other platforms:** an empty array.\n */\nexport async function getPendingResultAsync(): Promise<\n (ImagePickerResult | ImagePickerErrorResult)[]\n> {\n if (ExponentImagePicker.getPendingResultAsync) {\n return ExponentImagePicker.getPendingResultAsync();\n }\n return [];\n}\n\n// @needsAudit\n/**\n * Display the system UI for taking a photo with the camera. Requires `Permissions.CAMERA`.\n * On Android and iOS 10 `Permissions.CAMERA_ROLL` is also required. On mobile web, this must be\n * called immediately in a user interaction like a button press, otherwise the browser will block\n * the request without a warning.\n * > **Note:** Make sure that you handle `MainActivity` destruction on **Android**. See [ImagePicker.getPendingResultAsync](#imagepickergetpendingresultasync).\n * > **Notes for Web:** The system UI can only be shown after user activation (e.g. a `Button` press).\n * Therefore, calling `launchCameraAsync` in `componentDidMount`, for example, will **not** work as\n * intended. The `cancelled` event will not be returned in the browser due to platform restrictions\n * and inconsistencies across browsers.\n * @param options An `ImagePickerOptions` object.\n * @return A promise that resolves to an object with `canceled` and `assets` fields.\n * When the user canceled the action the `assets` is always `null`, otherwise it's an array of\n * the selected media assets which have a form of [`ImagePickerAsset`](#imagepickerasset).\n */\nexport async function launchCameraAsync(\n options: ImagePickerOptions = {}\n): Promise {\n if (!ExponentImagePicker.launchCameraAsync) {\n throw new UnavailabilityError('ImagePicker', 'launchCameraAsync');\n }\n return await ExponentImagePicker.launchCameraAsync(validateOptions(options));\n}\n\n// @needsAudit\n/**\n * Display the system UI for choosing an image or a video from the phone's library.\n * Requires `Permissions.MEDIA_LIBRARY` on iOS 10 only. On mobile web, this must be called\n * immediately in a user interaction like a button press, otherwise the browser will block the\n * request without a warning.\n *\n * **Animated GIFs support:** On Android, if the selected image is an animated GIF, the result image will be an\n * animated GIF too if and only if `quality` is explicitly set to `1.0` and `allowsEditing` is set to `false`.\n * Otherwise compression and/or cropper will pick the first frame of the GIF and return it as the\n * result (on Android the result will be a PNG). On iOS, both quality and cropping are supported.\n *\n * > **Notes for Web:** The system UI can only be shown after user activation (e.g. a `Button` press).\n * Therefore, calling `launchImageLibraryAsync` in `componentDidMount`, for example, will **not**\n * work as intended. The `cancelled` event will not be returned in the browser due to platform\n * restrictions and inconsistencies across browsers.\n * @param options An object extended by [`ImagePickerOptions`](#imagepickeroptions).\n * @return A promise that resolves to an object with `canceled` and `assets` fields.\n * When the user canceled the action the `assets` is always `null`, otherwise it's an array of\n * the selected media assets which have a form of [`ImagePickerAsset`](#imagepickerasset).\n */\nexport async function launchImageLibraryAsync(\n options?: ImagePickerOptions\n): Promise {\n if (!ExponentImagePicker.launchImageLibraryAsync) {\n throw new UnavailabilityError('ImagePicker', 'launchImageLibraryAsync');\n }\n if (options?.allowsEditing && options.allowsMultipleSelection) {\n console.warn(\n '[expo-image-picker] `allowsEditing` is not supported when `allowsMultipleSelection` is enabled and will be ignored.' +\n \"Disable either 'allowsEditing' or 'allowsMultipleSelection' in 'launchImageLibraryAsync' \" +\n 'to fix this warning.'\n );\n }\n return await ExponentImagePicker.launchImageLibraryAsync(options ?? {});\n}\n\nexport * from './ImagePicker.types';\n\nexport { PermissionStatus, PermissionExpiration, PermissionHookOptions, PermissionResponse };\n","import { PermissionResponse } from 'expo-modules-core';\n\n// @needsAudit\n/**\n * Alias for `PermissionResponse` type exported by `expo-modules-core`.\n */\nexport type CameraPermissionResponse = PermissionResponse;\n\n// @needsAudit\n/**\n * Extends `PermissionResponse` type exported by `expo-modules-core`, containing additional iOS-specific field.\n */\nexport type MediaLibraryPermissionResponse = PermissionResponse & {\n /**\n * @platform ios\n */\n accessPrivileges?: 'all' | 'limited' | 'none';\n};\n\n// @needsAudit\nexport enum MediaTypeOptions {\n /**\n * Images and videos.\n */\n All = 'All',\n /**\n * Only videos.\n */\n Videos = 'Videos',\n /**\n * Only images.\n */\n Images = 'Images',\n}\n\n// @needsAudit\nexport enum VideoExportPreset {\n /**\n * Resolution: __Unchanged__ •\n * Video compression: __None__ •\n * Audio compression: __None__\n */\n Passthrough = 0,\n /**\n * Resolution: __Depends on the device__ •\n * Video compression: __H.264__ •\n * Audio compression: __AAC__\n */\n LowQuality = 1,\n /**\n * Resolution: __Depends on the device__ •\n * Video compression: __H.264__ •\n * Audio compression: __AAC__\n */\n MediumQuality = 2,\n /**\n * Resolution: __Depends on the device__ •\n * Video compression: __H.264__ •\n * Audio compression: __AAC__\n */\n HighestQuality = 3,\n /**\n * Resolution: __640 × 480__ •\n * Video compression: __H.264__ •\n * Audio compression: __AAC__\n */\n H264_640x480 = 4,\n /**\n * Resolution: __960 × 540__ •\n * Video compression: __H.264__ •\n * Audio compression: __AAC__\n */\n H264_960x540 = 5,\n /**\n * Resolution: __1280 × 720__ •\n * Video compression: __H.264__ •\n * Audio compression: __AAC__\n */\n H264_1280x720 = 6,\n /**\n * Resolution: __1920 × 1080__ •\n * Video compression: __H.264__ •\n * Audio compression: __AAC__\n */\n H264_1920x1080 = 7,\n /**\n * Resolution: __3840 × 2160__ •\n * Video compression: __H.264__ •\n * Audio compression: __AAC__\n */\n H264_3840x2160 = 8,\n /**\n * Resolution: __1920 × 1080__ •\n * Video compression: __HEVC__ •\n * Audio compression: __AAC__\n */\n HEVC_1920x1080 = 9,\n /**\n * Resolution: __3840 × 2160__ •\n * Video compression: __HEVC__ •\n * Audio compression: __AAC__\n */\n HEVC_3840x2160 = 10,\n}\n\n// @needsAudit\nexport enum UIImagePickerControllerQualityType {\n /**\n * Highest available resolution.\n */\n High = 0,\n /**\n * Depends on the device.\n */\n Medium = 1,\n /**\n * Depends on the device.\n */\n Low = 2,\n /**\n * 640 × 480\n */\n VGA640x480 = 3,\n /**\n * 1280 × 720\n */\n IFrame1280x720 = 4,\n /**\n * 960 × 540\n */\n IFrame960x540 = 5,\n}\n\n/**\n * Picker presentation style. Its values are directly mapped to the [`UIModalPresentationStyle`](https://developer.apple.com/documentation/uikit/uiviewcontroller/1621355-modalpresentationstyle).\n *\n * @platform ios\n */\nexport enum UIImagePickerPresentationStyle {\n /**\n * A presentation style in which the presented picker covers the screen.\n */\n FULL_SCREEN = 'fullScreen',\n /**\n * A presentation style that partially covers the underlying content.\n */\n PAGE_SHEET = 'pageSheet',\n /**\n * A presentation style that displays the picker centered in the screen.\n */\n FORM_SHEET = 'formSheet',\n /**\n * A presentation style where the picker is displayed over the app's content.\n */\n CURRENT_CONTEXT = 'currentContext',\n /**\n * A presentation style in which the picker view covers the screen.\n */\n OVER_FULL_SCREEN = 'overFullScreen',\n /**\n * A presentation style where the picker is displayed over the app's content.\n */\n OVER_CURRENT_CONTEXT = 'overCurrentContext',\n /**\n * A presentation style where the picker is displayed in a popover view.\n */\n POPOVER = 'popover',\n /**\n * The default presentation style chosen by the system.\n * On older iOS versions, falls back to `WebBrowserPresentationStyle.FullScreen`.\n *\n * @platform ios 13+\n */\n AUTOMATIC = 'automatic',\n}\n\n/**\n * Picker preferred asset representation mode. Its values are directly mapped to the [`PHPickerConfigurationAssetRepresentationMode`](https://developer.apple.com/documentation/photokit/phpickerconfigurationassetrepresentationmode).\n *\n * @platform ios\n */\nexport enum UIImagePickerPreferredAssetRepresentationMode {\n /**\n * A mode that indicates that the system chooses the appropriate asset representation.\n */\n Automatic = 'automatic',\n /**\n * A mode that uses the most compatible asset representation.\n */\n Compatible = 'compatible',\n /**\n * A mode that uses the current representation to avoid transcoding, if possible.\n */\n Current = 'current',\n}\n\nexport enum CameraType {\n /**\n * Back/rear camera.\n */\n back = 'back',\n /**\n * Front camera\n */\n front = 'front',\n}\n\n/**\n * @hidden\n * @deprecated Use `ImagePickerAsset` instead\n */\nexport type ImageInfo = ImagePickerAsset;\n\n/**\n * Represents an asset (image or video) returned by the image picker or camera.\n */\nexport type ImagePickerAsset = {\n /**\n * URI to the local image or video file (usable as the source of an `Image` element, in the case of\n * an image) and `width` and `height` specify the dimensions of the media.\n */\n uri: string;\n /**\n * The unique ID that represents the picked image or video, if picked from the library. It can be used\n * by [expo-media-library](./media-library) to manage the picked asset.\n *\n * > This might be `null` when the ID is unavailable or the user gave limited permission to access the media library.\n * > On Android, the ID is unavailable when the user selects a photo by directly browsing file system.\n *\n * @platform ios\n * @platform android\n */\n assetId?: string | null;\n /**\n * Width of the image or video.\n */\n width: number;\n /**\n * Height of the image or video.\n */\n height: number;\n /**\n * The type of the asset.\n */\n type?: 'image' | 'video';\n /**\n * Preferred filename to use when saving this item. This might be `null` when the name is unavailable\n * or user gave limited permission to access the media library.\n *\n */\n fileName?: string | null;\n /**\n * File size of the picked image or video, in bytes.\n *\n */\n fileSize?: number;\n /**\n * The `exif` field is included if the `exif` option is truthy, and is an object containing the\n * image's EXIF data. The names of this object's properties are EXIF tags and the values are the\n * respective EXIF values for those tags.\n */\n exif?: Record | null;\n /**\n * When the `base64` option is truthy, it is a Base64-encoded string of the selected image's JPEG data, otherwise `null`.\n * If you prepend this with `'data:image/jpeg;base64,'` to create a data URI,\n * you can use it as the source of an `Image` element; for example:\n * ```ts\n * \n * ```\n */\n base64?: string | null;\n /**\n * Length of the video in milliseconds or `null` if the asset is not a video.\n */\n duration?: number | null;\n /**\n * The MIME type of the selected asset or `null` if could not be determined.\n */\n mimeType?: string;\n};\n\n// @needsAudit\nexport type ImagePickerErrorResult = {\n /**\n * The error code.\n */\n code: string;\n /**\n * The error message.\n */\n message: string;\n /**\n * The exception which caused the error.\n */\n exception?: string;\n};\n\n// @needsAudit\n/**\n * Type representing successful and canceled pick result.\n */\nexport type ImagePickerResult = ImagePickerSuccessResult | ImagePickerCanceledResult;\n\n/**\n * Type representing successful pick result.\n */\nexport type ImagePickerSuccessResult = {\n /**\n * Boolean flag set to `false` showing that the request was successful.\n */\n canceled: false;\n /**\n * An array of picked assets.\n */\n assets: ImagePickerAsset[];\n};\n\n/**\n * Type representing canceled pick result.\n */\nexport type ImagePickerCanceledResult = {\n /**\n * Boolean flag set to `true` showing that the request was canceled.\n */\n canceled: true;\n /**\n * `null` signifying that the request was canceled.\n */\n assets: null;\n};\n\n/**\n * @hidden\n * @deprecated Use `ImagePickerResult` instead.\n */\nexport type ImagePickerCancelledResult = ImagePickerCanceledResult;\n\n/**\n * @hidden\n * @deprecated `ImagePickerMultipleResult` has been deprecated in favor of `ImagePickerResult`.\n */\nexport type ImagePickerMultipleResult = ImagePickerResult;\n\n// @needsAudit\nexport type ImagePickerOptions = {\n /**\n * Whether to show a UI to edit the image after it is picked. On Android the user can crop and\n * rotate the image and on iOS simply crop it.\n *\n * > - Cropping multiple images is not supported - this option is mutually exclusive with `allowsMultipleSelection`.\n * > - On iOS, this option is ignored if `allowsMultipleSelection` is enabled.\n * > - On iOS cropping a `.bmp` image will convert it to `.png`.\n *\n * @default false\n * @platform ios\n * @platform android\n */\n allowsEditing?: boolean;\n /**\n * An array with two entries `[x, y]` specifying the aspect ratio to maintain if the user is\n * allowed to edit the image (by passing `allowsEditing: true`). This is only applicable on\n * Android, since on iOS the crop rectangle is always a square.\n */\n aspect?: [number, number];\n /**\n * Specify the quality of compression, from `0` to `1`. `0` means compress for small size,\n * `1` means compress for maximum quality.\n * > Note: If the selected image has been compressed before, the size of the output file may be\n * > bigger than the size of the original image.\n *\n * > Note: On iOS, if a `.bmp` or `.png` image is selected from the library, this option is ignored.\n *\n * @default 0.2\n * @platform ios\n * @platform android\n */\n quality?: number;\n /**\n * Choose what type of media to pick.\n * @default ImagePicker.MediaTypeOptions.Images\n */\n mediaTypes?: MediaTypeOptions;\n /**\n * Whether to also include the EXIF data for the image. On iOS the EXIF data does not include GPS\n * tags in the camera case.\n */\n exif?: boolean;\n /**\n * Whether to also include the image data in Base64 format.\n */\n base64?: boolean;\n /**\n * Specify preset which will be used to compress selected video.\n * @default ImagePicker.VideoExportPreset.Passthrough\n * @platform ios 11+\n * @deprecated See [`videoExportPreset`](https://developer.apple.com/documentation/uikit/uiimagepickercontroller/2890964-videoexportpreset?language=objc)\n * in Apple documentation.\n */\n videoExportPreset?: VideoExportPreset;\n /**\n * Specify the quality of recorded videos. Defaults to the highest quality available for the device.\n * @default ImagePicker.UIImagePickerControllerQualityType.High\n * @platform ios\n */\n videoQuality?: UIImagePickerControllerQualityType;\n /**\n * Whether or not to allow selecting multiple media files at once.\n *\n * > Cropping multiple images is not supported - this option is mutually exclusive with `allowsEditing`.\n * > If this option is enabled, then `allowsEditing` is ignored.\n *\n * @default false\n * @platform ios 14+\n * @platform android\n * @platform web\n */\n allowsMultipleSelection?: boolean;\n /**\n * The maximum number of items that user can select. Applicable when `allowsMultipleSelection` is enabled.\n * Setting the value to `0` sets the selection limit to the maximum that the system supports.\n *\n * @platform ios 14+\n * @platform android\n * @default 0\n */\n selectionLimit?: number;\n /**\n * Whether to display number badges when assets are selected. The badges are numbered\n * in selection order. Assets are then returned in the exact same order they were selected.\n *\n * > Assets should be returned in the selection order regardless of this option,\n * > but there is no guarantee that it is always true when this option is disabled.\n *\n * @platform ios 15+\n * @default false\n */\n orderedSelection?: boolean;\n /**\n * Maximum duration, in seconds, for video recording. Setting this to `0` disables the limit.\n * Defaults to `0` (no limit).\n * - **On iOS**, when `allowsEditing` is set to `true`, maximum duration is limited to 10 minutes.\n * This limit is applied automatically, if `0` or no value is specified.\n * - **On Android**, effect of this option depends on support of installed camera app.\n * - **On Web** this option has no effect - the limit is browser-dependant.\n */\n videoMaxDuration?: number;\n /**\n * Choose [presentation style](https://developer.apple.com/documentation/uikit/uiviewcontroller/1621355-modalpresentationstyle?language=objc)\n * to customize view during taking photo/video.\n * @default ImagePicker.UIImagePickerPresentationStyle.Automatic\n * @platform ios\n */\n presentationStyle?: UIImagePickerPresentationStyle;\n /**\n * Selects the camera-facing type. The `CameraType` enum provides two options:\n * `front` for the front-facing camera and `back` for the back-facing camera.\n * - **On Android**, the behavior of this option may vary based on the camera app installed on the device.\n * @default CameraType.back\n * @platform ios\n * @platform android\n */\n cameraType?: CameraType;\n /**\n * Choose [preferred asset representation mode](https://developer.apple.com/documentation/photokit/phpickerconfigurationassetrepresentationmode)\n * to use when loading assets.\n * @default ImagePicker.UIImagePickerPreferredAssetRepresentationMode.Automatic\n * @platform ios 14+\n */\n preferredAssetRepresentationMode?: UIImagePickerPreferredAssetRepresentationMode;\n};\n\n// @needsAudit\nexport type OpenFileBrowserOptions = {\n /**\n * Choose what type of media to pick.\n * @default ImagePicker.MediaTypeOptions.Images\n */\n mediaTypes: MediaTypeOptions;\n // @docsMissing\n capture?: boolean;\n /**\n * Whether or not to allow selecting multiple media files at once.\n * @platform web\n */\n allowsMultipleSelection: boolean;\n /**\n * Whether to also include the image data in Base64 format.\n */\n base64: boolean;\n};\n\n/**\n * @hidden\n * @deprecated Use `ImagePickerResult` or `OpenFileBrowserOptions` instead.\n */\nexport type ExpandImagePickerResult =\n T extends {\n allowsMultipleSelection: true;\n }\n ? ImagePickerResult\n : ImagePickerResult;\n","import invariant from 'invariant';\nimport { NativeEventEmitter, NativeModules, Platform } from 'react-native';\n\nconst nativeEmitterSubscriptionKey = '@@nativeEmitterSubscription@@';\n\ntype NativeModule = {\n __expo_module_name__?: string;\n startObserving?: () => void;\n stopObserving?: () => void;\n addListener: (eventName: string) => void;\n removeListeners: (count: number) => void;\n};\n\n// @needsAudit\nexport type Subscription = {\n /**\n * A method to unsubscribe the listener.\n */\n remove: () => void;\n};\n\nexport class EventEmitter {\n _listenerCount = 0;\n _nativeModule: NativeModule;\n _eventEmitter: NativeEventEmitter;\n\n constructor(nativeModule: NativeModule) {\n // Expo modules installed through the JSI don't have `addListener` and `removeListeners` set,\n // so if someone wants to use them with `EventEmitter`, make sure to provide these functions\n // as they are required by `NativeEventEmitter`. This is only temporary — in the future\n // JSI modules will have event emitter built in.\n if (nativeModule.__expo_module_name__ && NativeModules.EXReactNativeEventEmitter) {\n nativeModule.addListener = (...args) =>\n NativeModules.EXReactNativeEventEmitter.addProxiedListener(\n nativeModule.__expo_module_name__,\n ...args\n );\n nativeModule.removeListeners = (...args) =>\n NativeModules.EXReactNativeEventEmitter.removeProxiedListeners(\n nativeModule.__expo_module_name__,\n ...args\n );\n }\n this._nativeModule = nativeModule;\n this._eventEmitter = new NativeEventEmitter(nativeModule as any);\n }\n\n addListener(eventName: string, listener: (event: T) => void): Subscription {\n if (!this._listenerCount && Platform.OS !== 'ios' && this._nativeModule.startObserving) {\n this._nativeModule.startObserving();\n }\n\n this._listenerCount++;\n const nativeEmitterSubscription = this._eventEmitter.addListener(eventName, listener);\n const subscription = {\n [nativeEmitterSubscriptionKey]: nativeEmitterSubscription,\n remove: () => {\n this.removeSubscription(subscription);\n },\n };\n return subscription;\n }\n\n removeAllListeners(eventName: string): void {\n // @ts-ignore: the EventEmitter interface has been changed in react-native@0.64.0\n const removedListenerCount = this._eventEmitter.listenerCount\n ? // @ts-ignore: this is available since 0.64\n this._eventEmitter.listenerCount(eventName)\n : // @ts-ignore: this is available in older versions\n this._eventEmitter.listeners(eventName).length;\n this._eventEmitter.removeAllListeners(eventName);\n this._listenerCount -= removedListenerCount;\n invariant(\n this._listenerCount >= 0,\n `EventEmitter must have a non-negative number of listeners`\n );\n\n if (!this._listenerCount && Platform.OS !== 'ios' && this._nativeModule.stopObserving) {\n this._nativeModule.stopObserving();\n }\n }\n\n removeSubscription(subscription: Subscription): void {\n const nativeEmitterSubscription = subscription[nativeEmitterSubscriptionKey];\n if (!nativeEmitterSubscription) {\n return;\n }\n\n if ('remove' in nativeEmitterSubscription) {\n nativeEmitterSubscription.remove();\n }\n this._listenerCount--;\n\n // Ensure that the emitter's internal state remains correct even if `removeSubscription` is\n // called again with the same subscription\n delete subscription[nativeEmitterSubscriptionKey];\n\n // Release closed-over references to the emitter\n subscription.remove = () => {};\n\n if (!this._listenerCount && Platform.OS !== 'ios' && this._nativeModule.stopObserving) {\n this._nativeModule.stopObserving();\n }\n }\n\n emit(eventName: string, ...params: any[]): void {\n this._eventEmitter.emit(eventName, ...params);\n }\n}\n","import { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { PermissionResponse } from './PermissionsInterface';\n\n// These types are identical, but improves the readability for suggestions in editors\ntype RequestPermissionMethod = () => Promise;\ntype GetPermissionMethod = () => Promise;\n\ninterface PermissionHookMethods {\n /** The permission method that requests the user to grant permission. */\n requestMethod: (options?: Options) => Promise;\n /** The permission method that only fetches the current permission status. */\n getMethod: (options?: Options) => Promise;\n}\n\ninterface PermissionHookBehavior {\n /** If the hook should automatically fetch the current permission status, without asking the user. */\n get?: boolean;\n /** If the hook should automatically request the user to grant permission. */\n request?: boolean;\n}\n\nexport type PermissionHookOptions = PermissionHookBehavior & Options;\n\n/**\n * Get or request permission for protected functionality within the app.\n * It uses separate permission requesters to interact with a single permission.\n * By default, the hook will only retrieve the permission status.\n */\nfunction usePermission(\n methods: PermissionHookMethods,\n options?: PermissionHookOptions\n): [Permission | null, RequestPermissionMethod, GetPermissionMethod] {\n const isMounted = useRef(true);\n const [status, setStatus] = useState(null);\n const { get = true, request = false, ...permissionOptions } = options || {};\n\n const getPermission = useCallback(async () => {\n const response = await methods.getMethod(\n Object.keys(permissionOptions).length > 0 ? (permissionOptions as Options) : undefined\n );\n if (isMounted.current) setStatus(response);\n return response;\n }, [methods.getMethod]);\n\n const requestPermission = useCallback(async () => {\n const response = await methods.requestMethod(\n Object.keys(permissionOptions).length > 0 ? (permissionOptions as Options) : undefined\n );\n if (isMounted.current) setStatus(response);\n return response;\n }, [methods.requestMethod]);\n\n useEffect(\n function runMethods() {\n if (request) requestPermission();\n if (!request && get) getPermission();\n },\n [get, request, requestPermission, getPermission]\n );\n\n // Workaround for unmounting components receiving state updates\n useEffect(function didMount() {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n\n return [status, requestPermission, getPermission];\n}\n\n/**\n * Create a new permission hook with the permission methods built-in.\n * This can be used to quickly create specific permission hooks in every module.\n */\nexport function createPermissionHook(\n methods: PermissionHookMethods\n) {\n return (options?: PermissionHookOptions) =>\n usePermission(methods, options);\n}\n","export enum PermissionStatus {\n /**\n * User has granted the permission.\n */\n GRANTED = 'granted',\n /**\n * User hasn't granted or denied the permission yet.\n */\n UNDETERMINED = 'undetermined',\n /**\n * User has denied the permission.\n */\n DENIED = 'denied',\n}\n\n/**\n * Permission expiration time. Currently, all permissions are granted permanently.\n */\nexport type PermissionExpiration = 'never' | number;\n\n/**\n * An object obtained by permissions get and request functions.\n */\nexport interface PermissionResponse {\n /**\n * Determines the status of the permission.\n */\n status: PermissionStatus;\n /**\n * Determines time when the permission expires.\n */\n expires: PermissionExpiration;\n /**\n * A convenience boolean that indicates if the permission is granted.\n */\n granted: boolean;\n /**\n * Indicates if user can be asked again for specific permission.\n * If not, one should be directed to the Settings app\n * in order to enable/disable the permission.\n */\n canAskAgain: boolean;\n}\n","declare global {\n // Add IE-specific interface to Window\n interface Window {\n attachEvent(event: string, listener: EventListener): boolean;\n }\n}\n\n// Used for delegating node actions when browser APIs aren't available\n// like in SSR websites.\nexport const isDOMAvailable = typeof window !== 'undefined' && !!window.document?.createElement;\nexport const canUseEventListeners =\n isDOMAvailable && !!(window.addEventListener || window.attachEvent);\nexport const canUseViewport = isDOMAvailable && !!window.screen;\nexport const isAsyncDebugging = false;\n","import { Platform as ReactNativePlatform, PlatformOSType } from 'react-native';\n\nimport {\n isDOMAvailable,\n canUseEventListeners,\n canUseViewport,\n isAsyncDebugging,\n} from './environment/browser';\n\nexport type PlatformSelectOSType = PlatformOSType | 'native' | 'electron' | 'default';\n\nexport type PlatformSelect = (specifics: { [platform in PlatformSelectOSType]?: T }) => T;\n\nconst Platform = {\n /**\n * Denotes the currently running platform.\n * Can be one of ios, android, web.\n */\n OS: ReactNativePlatform.OS,\n /**\n * Returns the value with the matching platform.\n * Object keys can be any of ios, android, native, web, default.\n *\n * @ios ios, native, default\n * @android android, native, default\n * @web web, default\n */\n select: ReactNativePlatform.select as PlatformSelect,\n /**\n * Denotes if the DOM API is available in the current environment.\n * The DOM is not available in native React runtimes and Node.js.\n */\n isDOMAvailable,\n /**\n * Denotes if the current environment can attach event listeners\n * to the window. This will return false in native React\n * runtimes and Node.js.\n */\n canUseEventListeners,\n /**\n * Denotes if the current environment can inspect properties of the\n * screen on which the current window is being rendered. This will\n * return false in native React runtimes and Node.js.\n */\n canUseViewport,\n /**\n * If the JavaScript is being executed in a remote JavaScript environment.\n * When `true`, synchronous native invocations cannot be executed.\n */\n isAsyncDebugging,\n};\n\nexport default Platform;\n","function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}\nexport { _isNativeReflectConstruct as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nfunction _wrapNativeSuper(t) {\n var r = \"function\" == typeof Map ? new Map() : void 0;\n return _wrapNativeSuper = function _wrapNativeSuper(t) {\n if (null === t || !isNativeFunction(t)) return t;\n if (\"function\" != typeof t) throw new TypeError(\"Super expression must either be null or a function\");\n if (void 0 !== r) {\n if (r.has(t)) return r.get(t);\n r.set(t, Wrapper);\n }\n function Wrapper() {\n return construct(t, arguments, getPrototypeOf(this).constructor);\n }\n return Wrapper.prototype = Object.create(t.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), setPrototypeOf(Wrapper, t);\n }, _wrapNativeSuper(t);\n}\nexport { _wrapNativeSuper as default };","function _isNativeFunction(t) {\n try {\n return -1 !== Function.toString.call(t).indexOf(\"[native code]\");\n } catch (n) {\n return \"function\" == typeof t;\n }\n}\nexport { _isNativeFunction as default };","import isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _construct(t, e, r) {\n if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && setPrototypeOf(p, r.prototype), p;\n}\nexport { _construct as default };","/**\n * A general error class that should be used for all errors in Expo modules.\n * Guarantees a `code` field that can be used to differentiate between different\n * types of errors without further subclassing Error.\n */\nexport class CodedError extends Error {\n code: string;\n info?: any;\n\n constructor(code: string, message: string) {\n super(message);\n this.code = code;\n }\n}\n","import { CodedError } from './CodedError';\nimport Platform from '../Platform';\n\n/**\n * A class for errors to be thrown when a property is accessed which is\n * unavailable, unsupported, or not currently implemented on the running\n * platform.\n */\nexport class UnavailabilityError extends CodedError {\n constructor(moduleName: string, propertyName: string) {\n super(\n 'ERR_UNAVAILABLE',\n `The method or property ${moduleName}.${propertyName} is not available on ${Platform.OS}, are you sure you've linked all the native dependencies properly?`\n );\n }\n}\n","export function setStatusBarBackgroundColor() {}\nexport function setStatusBarNetworkActivityIndicatorVisible() {}\nexport function setStatusBarHidden() {}\nexport function setStatusBarStyle() {}\nexport function setStatusBarTranslucent() {}\nexport function StatusBar() {\n return null;\n}\n","import { Platform, PixelRatio, Dimensions } from 'react-native';\nimport type { IUseDetectDevice } from './model';\n\nconst { width, height } = Dimensions.get('window');\n\nconst isTablet = () => {\n let pixelDensity = PixelRatio.get();\n const adjustedWidth = width * pixelDensity;\n const adjustedHeight = height * pixelDensity;\n if (pixelDensity < 2 && (adjustedWidth >= 1000 || adjustedHeight >= 1000)) {\n return true;\n } else {\n return (\n pixelDensity === 2 && (adjustedWidth >= 1824 || adjustedHeight >= 1824)\n );\n }\n};\n\nconst useDetectDevice: IUseDetectDevice = {\n isAndroid: Platform.OS === 'android',\n isIOS: Platform.OS === 'ios',\n isTablet: isTablet(),\n};\n\nexport { useDetectDevice };\n","/* eslint-disable @typescript-eslint/no-shadow */\nimport { useEffect, useState } from 'react';\nimport { Dimensions, ScaledSize } from 'react-native';\n\nconst isOrientationPortrait = ({ width, height }: ScaledSize) =>\n height >= width;\nconst isOrientationLandscape = ({ width, height }: ScaledSize) =>\n width >= height;\n\nexport function useDeviceOrientation() {\n const screen = Dimensions.get('screen');\n const initialState = {\n portrait: isOrientationPortrait(screen),\n landscape: isOrientationLandscape(screen),\n };\n\n const [orientation, setOrientation] = useState(initialState);\n\n useEffect(() => {\n const onChange = ({ screen }: { screen: ScaledSize }) => {\n setOrientation({\n portrait: isOrientationPortrait(screen),\n landscape: isOrientationLandscape(screen),\n });\n };\n\n const subscription = Dimensions.addEventListener('change', onChange);\n\n return () => {\n if (typeof subscription?.remove === 'function') {\n subscription.remove();\n }\n };\n }, []);\n\n return orientation.portrait ? 'PORTRAIT' : 'LANDSCAPE';\n}\n","import { I18nManager, StyleSheet } from 'react-native';\n\nexport const styles = StyleSheet.create({\n container: {\n backgroundColor: 'white',\n borderRadius: 8,\n padding: 12,\n justifyContent: 'center',\n },\n textInput: {\n flexDirection: I18nManager.isRTL ? 'row-reverse' : 'row',\n alignItems: 'center',\n flex: 1,\n },\n input: {\n fontSize: 16,\n flex: 1,\n textAlign: I18nManager.isRTL ? 'right' : 'left',\n },\n label: {\n marginBottom: 4,\n fontSize: 16,\n },\n row: {\n flexDirection: I18nManager.isRTL ? 'row-reverse' : 'row',\n },\n icon: {\n width: 20,\n height: 20,\n },\n});\n","/* eslint-disable @typescript-eslint/no-shadow */\nimport React, { useEffect, useState } from 'react';\nimport {\n Image,\n TextInput,\n TouchableOpacity,\n View,\n TouchableWithoutFeedback,\n StyleSheet,\n} from 'react-native';\nimport type { CTextInput } from './model';\nimport { styles } from './styles';\n\nconst ic_close = require('../../assets/close.png');\n\nconst TextInputComponent: CTextInput = (props) => {\n const {\n fontFamily,\n style,\n value,\n placeholderTextColor = '#000',\n placeholder = '',\n showIcon,\n inputStyle,\n iconStyle,\n onChangeText = (_value: string) => {},\n renderLeftIcon,\n renderRightIcon,\n } = props;\n\n const [text, setText] = useState('');\n\n useEffect(() => {\n if (value) {\n setText(value);\n }\n }, [value]);\n\n const onChange = (text: string) => {\n setText(text);\n onChangeText(text);\n };\n\n const _renderRightIcon = () => {\n if (showIcon) {\n if (renderRightIcon) {\n return renderRightIcon();\n }\n if (text.length > 0) {\n return (\n onChange('')}>\n \n \n );\n }\n return null;\n }\n return null;\n };\n\n const font = () => {\n if (fontFamily) {\n return {\n fontFamily: fontFamily,\n };\n } else {\n return {};\n }\n };\n\n return (\n \n \n \n {renderLeftIcon?.()}\n \n {_renderRightIcon()}\n \n \n \n );\n};\n\nexport default TextInputComponent;\n","import { I18nManager, StyleSheet } from 'react-native';\n\nexport const styles = StyleSheet.create({\n mainWrap: {\n justifyContent: 'center',\n },\n container: {\n flexShrink: 1,\n borderWidth: 0.5,\n borderColor: '#EEEEEE',\n backgroundColor: 'white',\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 1,\n },\n shadowOpacity: 0.2,\n shadowRadius: 1.41,\n elevation: 2,\n },\n flex1: {\n flex: 1,\n },\n flexShrink: {\n flexShrink: 1,\n },\n wrapTop: {\n justifyContent: 'flex-end',\n },\n dropdown: {\n flexDirection: I18nManager.isRTL ? 'row-reverse' : 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n title: {\n marginVertical: 5,\n fontSize: 16,\n writingDirection: I18nManager.isRTL ? 'rtl' : 'ltr',\n },\n item: {\n padding: 17,\n flexDirection: I18nManager.isRTL ? 'row-reverse' : 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n textItem: {\n flex: 1,\n fontSize: 16,\n writingDirection: I18nManager.isRTL ? 'rtl' : 'ltr',\n },\n icon: {\n width: 20,\n height: 20,\n },\n input: {\n borderWidth: 0.5,\n borderColor: '#DDDDDD',\n paddingHorizontal: 8,\n marginBottom: 8,\n margin: 6,\n height: 45,\n },\n fullScreen: {\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n","/* eslint-disable @typescript-eslint/no-shadow */\nimport _assign from 'lodash/assign';\nimport _differenceWith from 'lodash/differenceWith';\nimport _findIndex from 'lodash/findIndex';\nimport _get from 'lodash/get';\nimport _isEqual from 'lodash/isEqual';\n\nimport React, {\n JSXElementConstructor,\n ReactElement,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport {\n Dimensions,\n FlatList,\n I18nManager,\n Image,\n Keyboard,\n KeyboardEvent,\n Modal,\n StyleSheet,\n Text,\n TouchableHighlight,\n TouchableWithoutFeedback,\n View,\n ViewStyle,\n StatusBar,\n} from 'react-native';\nimport { useDetectDevice } from '../../toolkits';\nimport { useDeviceOrientation } from '../../useDeviceOrientation';\nimport CInput from '../TextInput';\nimport { DropdownProps } from './model';\nimport { styles } from './styles';\n\nconst { isTablet } = useDetectDevice;\nconst ic_down = require('../../assets/down.png');\n\nconst statusBarHeight: number = StatusBar.currentHeight || 0;\n\nconst DropdownComponent: (\n props: DropdownProps\n) => ReactElement> | null =\n React.forwardRef((props, currentRef) => {\n const orientation = useDeviceOrientation();\n const {\n testID,\n itemTestIDField,\n onChange,\n style = {},\n containerStyle,\n placeholderStyle,\n selectedTextStyle,\n itemContainerStyle,\n itemTextStyle,\n inputSearchStyle,\n iconStyle,\n selectedTextProps = {},\n data = [],\n labelField,\n valueField,\n searchField,\n value,\n activeColor = '#F6F7F8',\n fontFamily,\n iconColor = 'gray',\n searchPlaceholder,\n placeholder = 'Select item',\n search = false,\n maxHeight = 340,\n minHeight = 0,\n disable = false,\n keyboardAvoiding = true,\n inverted = true,\n renderLeftIcon,\n renderRightIcon,\n renderItem,\n renderInputSearch,\n onFocus,\n onBlur,\n autoScroll = true,\n showsVerticalScrollIndicator = true,\n dropdownPosition = 'auto',\n flatListProps,\n searchQuery,\n backgroundColor,\n onChangeText,\n confirmSelectItem,\n onConfirmSelectItem,\n accessibilityLabel,\n itemAccessibilityLabelField,\n mode = 'default',\n closeModalWhenSelectedItem = true,\n excludeItems = [],\n excludeSearchItems = [],\n } = props;\n\n const ref = useRef(null);\n const refList = useRef(null);\n const [visible, setVisible] = useState(false);\n const [currentValue, setCurrentValue] = useState(null);\n const [listData, setListData] = useState(data);\n const [position, setPosition] = useState();\n const [keyboardHeight, setKeyboardHeight] = useState(0);\n const [searchText, setSearchText] = useState('');\n\n const { width: W, height: H } = Dimensions.get('window');\n const styleContainerVertical: ViewStyle = useMemo(() => {\n return {\n backgroundColor: 'rgba(0,0,0,0.1)',\n alignItems: 'center',\n };\n }, []);\n const styleHorizontal: ViewStyle = useMemo(() => {\n return {\n width: orientation === 'LANDSCAPE' ? W / 2 : '100%',\n alignSelf: 'center',\n };\n }, [W, orientation]);\n\n useImperativeHandle(currentRef, () => {\n return { open: eventOpen, close: eventClose };\n });\n\n useEffect(() => {\n return eventClose;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const excludeData = useCallback(\n (data: any[]) => {\n if (excludeItems.length > 0) {\n const getData = _differenceWith(\n data,\n excludeItems,\n (obj1, obj2) => _get(obj1, valueField) === _get(obj2, valueField)\n );\n return getData || [];\n } else {\n return data || [];\n }\n },\n [excludeItems, valueField]\n );\n\n useEffect(() => {\n const filterData = excludeData(data);\n setListData([...filterData]);\n if (searchText) {\n onSearch(searchText);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [data, searchText]);\n\n const eventOpen = () => {\n if (!disable) {\n setVisible(true);\n if (onFocus) {\n onFocus();\n }\n\n if (searchText.length > 0) {\n onSearch(searchText);\n }\n scrollIndex();\n }\n };\n\n const eventClose = useCallback(() => {\n if (!disable) {\n setVisible(false);\n if (onBlur) {\n onBlur();\n }\n }\n }, [disable, onBlur]);\n\n const font = useCallback(() => {\n if (fontFamily) {\n return {\n fontFamily: fontFamily,\n };\n } else {\n return {};\n }\n }, [fontFamily]);\n\n const _measure = useCallback(() => {\n if (ref && ref?.current) {\n ref.current.measureInWindow((pageX, pageY, width, height) => {\n let isFull = isTablet\n ? false\n : mode === 'modal' || orientation === 'LANDSCAPE';\n\n if (mode === 'auto') {\n isFull = false;\n }\n\n const top = isFull ? 20 : height + pageY + 2;\n const bottom = H - top + height;\n const left = I18nManager.isRTL ? W - width - pageX : pageX;\n\n setPosition({\n isFull,\n width: Math.floor(width),\n top: Math.floor(top + statusBarHeight),\n bottom: Math.floor(bottom - statusBarHeight),\n left: Math.floor(left),\n height: Math.floor(height),\n });\n });\n }\n }, [H, W, orientation, mode]);\n\n const onKeyboardDidShow = useCallback(\n (e: KeyboardEvent) => {\n _measure();\n setKeyboardHeight(e.endCoordinates.height);\n },\n [_measure]\n );\n\n const onKeyboardDidHide = useCallback(() => {\n setKeyboardHeight(0);\n _measure();\n }, [_measure]);\n\n useEffect(() => {\n const susbcriptionKeyboardDidShow = Keyboard.addListener(\n 'keyboardDidShow',\n onKeyboardDidShow\n );\n const susbcriptionKeyboardDidHide = Keyboard.addListener(\n 'keyboardDidHide',\n onKeyboardDidHide\n );\n\n return () => {\n if (typeof susbcriptionKeyboardDidShow?.remove === 'function') {\n susbcriptionKeyboardDidShow.remove();\n }\n\n if (typeof susbcriptionKeyboardDidHide?.remove === 'function') {\n susbcriptionKeyboardDidHide.remove();\n }\n };\n }, [onKeyboardDidHide, onKeyboardDidShow]);\n\n const getValue = useCallback(() => {\n const defaultValue =\n typeof value === 'object' ? _get(value, valueField) : value;\n\n const getItem = data.filter((e) =>\n _isEqual(defaultValue, _get(e, valueField))\n );\n\n if (getItem.length > 0) {\n setCurrentValue(getItem[0]);\n } else {\n setCurrentValue(null);\n }\n }, [data, value, valueField]);\n\n useEffect(() => {\n getValue();\n }, [value, data, getValue]);\n\n const scrollIndex = useCallback(() => {\n if (autoScroll && data?.length > 0 && listData?.length === data?.length) {\n setTimeout(() => {\n if (refList && refList?.current) {\n const defaultValue =\n typeof value === 'object' ? _get(value, valueField) : value;\n\n const index = _findIndex(listData, (e) =>\n _isEqual(defaultValue, _get(e, valueField))\n );\n if (\n listData?.length > 0 &&\n index > -1 &&\n index <= listData?.length - 1\n ) {\n try {\n refList.current.scrollToIndex({\n index: index,\n animated: false,\n });\n } catch (error) {\n console.warn(`scrollToIndex error: ${error}`);\n }\n }\n }\n }, 200);\n }\n }, [autoScroll, data.length, listData, value, valueField]);\n\n const showOrClose = useCallback(() => {\n if (!disable) {\n const visibleStatus = !visible;\n\n if (keyboardHeight > 0 && !visibleStatus) {\n return Keyboard.dismiss();\n }\n\n if (!visibleStatus) {\n if (onChangeText) {\n onChangeText('');\n }\n setSearchText('');\n onSearch('');\n }\n\n _measure();\n setVisible(visibleStatus);\n const filterData = excludeData(data);\n setListData(filterData);\n\n if (visibleStatus) {\n if (onFocus) {\n onFocus();\n }\n } else {\n if (onBlur) {\n onBlur();\n }\n }\n\n if (searchText.length > 0) {\n onSearch(searchText);\n }\n scrollIndex();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n disable,\n keyboardHeight,\n visible,\n _measure,\n data,\n searchText,\n scrollIndex,\n onFocus,\n onBlur,\n ]);\n\n const onSearch = useCallback(\n (text: string) => {\n if (text.length > 0) {\n const defaultFilterFunction = (e: any) => {\n const item = _get(e, searchField || labelField)\n ?.toLowerCase()\n .replace(/\\s/g, '')\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '');\n const key = text\n .toLowerCase()\n .replace(/\\s/g, '')\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '');\n\n return item.indexOf(key) >= 0;\n };\n\n const propSearchFunction = (e: any) => {\n const labelText = _get(e, searchField || labelField);\n\n return searchQuery?.(text, labelText);\n };\n\n const dataSearch = data.filter(\n searchQuery ? propSearchFunction : defaultFilterFunction\n );\n\n if (excludeSearchItems.length > 0 || excludeItems.length > 0) {\n const excludeSearchData = _differenceWith(\n dataSearch,\n excludeSearchItems,\n (obj1, obj2) => _get(obj1, valueField) === _get(obj2, valueField)\n );\n\n const filterData = excludeData(excludeSearchData);\n setListData(filterData);\n } else {\n setListData(dataSearch);\n }\n } else {\n const filterData = excludeData(data);\n setListData(filterData);\n }\n },\n [\n data,\n searchQuery,\n excludeSearchItems,\n excludeItems,\n searchField,\n labelField,\n valueField,\n excludeData,\n ]\n );\n\n const onSelect = useCallback(\n (item: any) => {\n if (confirmSelectItem && onConfirmSelectItem) {\n return onConfirmSelectItem(item);\n }\n\n setCurrentValue(item);\n onChange(item);\n\n if (closeModalWhenSelectedItem) {\n if (onChangeText) {\n onChangeText('');\n }\n setSearchText('');\n onSearch('');\n eventClose();\n }\n },\n [\n confirmSelectItem,\n eventClose,\n onChange,\n onChangeText,\n onConfirmSelectItem,\n onSearch,\n closeModalWhenSelectedItem,\n ]\n );\n\n const _renderDropdown = () => {\n const isSelected = currentValue && _get(currentValue, valueField);\n return (\n \n \n {renderLeftIcon?.(visible)}\n \n {isSelected !== null\n ? _get(currentValue, labelField)\n : placeholder}\n \n {renderRightIcon ? (\n renderRightIcon(visible)\n ) : (\n \n )}\n \n \n );\n };\n\n const _renderItem = useCallback(\n ({ item, index }: { item: any; index: number }) => {\n const isSelected = currentValue && _get(currentValue, valueField);\n const selected = _isEqual(_get(item, valueField), isSelected);\n _assign(item, { _index: index });\n return (\n onSelect(item)}\n >\n \n {renderItem ? (\n renderItem(item, selected)\n ) : (\n \n \n {_get(item, labelField)}\n \n \n )}\n \n \n );\n },\n [\n accessibilityLabel,\n activeColor,\n currentValue,\n font,\n itemAccessibilityLabelField,\n itemContainerStyle,\n itemTestIDField,\n itemTextStyle,\n labelField,\n onSelect,\n renderItem,\n valueField,\n ]\n );\n\n const renderSearch = useCallback(() => {\n if (search) {\n if (renderInputSearch) {\n return renderInputSearch((text) => {\n if (onChangeText) {\n setSearchText(text);\n onChangeText(text);\n }\n onSearch(text);\n });\n } else {\n return (\n {\n if (onChangeText) {\n setSearchText(e);\n onChangeText(e);\n }\n onSearch(e);\n }}\n placeholderTextColor=\"gray\"\n iconStyle={[{ tintColor: iconColor }, iconStyle]}\n />\n );\n }\n }\n return null;\n }, [\n accessibilityLabel,\n font,\n iconColor,\n iconStyle,\n inputSearchStyle,\n onChangeText,\n onSearch,\n renderInputSearch,\n search,\n searchPlaceholder,\n testID,\n searchText,\n ]);\n\n const _renderList = useCallback(\n (isTopPosition: boolean) => {\n const isInverted = !inverted ? false : isTopPosition;\n\n const _renderListHelper = () => {\n return (\n index.toString()}\n showsVerticalScrollIndicator={showsVerticalScrollIndicator}\n />\n );\n };\n\n return (\n \n \n {isInverted && _renderListHelper()}\n {renderSearch()}\n {!isInverted && _renderListHelper()}\n \n \n );\n },\n [\n _renderItem,\n accessibilityLabel,\n flatListProps,\n listData,\n inverted,\n renderSearch,\n scrollIndex,\n showsVerticalScrollIndicator,\n testID,\n ]\n );\n\n const _renderModal = useCallback(() => {\n if (visible && position) {\n const { isFull, width, height, top, bottom, left } = position;\n\n const onAutoPosition = () => {\n if (keyboardHeight > 0) {\n return bottom < keyboardHeight + height;\n }\n\n return bottom < (search ? 150 : 100);\n };\n\n if (width && top && bottom) {\n const styleVertical: ViewStyle = {\n left: left,\n maxHeight: maxHeight,\n minHeight: minHeight,\n };\n const isTopPosition =\n dropdownPosition === 'auto'\n ? onAutoPosition()\n : dropdownPosition === 'top';\n\n let keyboardStyle: ViewStyle = {};\n\n let extendHeight = !isTopPosition ? top : bottom;\n if (\n keyboardAvoiding &&\n keyboardHeight > 0 &&\n isTopPosition &&\n dropdownPosition === 'auto'\n ) {\n extendHeight = keyboardHeight;\n }\n\n return (\n \n \n \n \n \n {_renderList(isTopPosition)}\n \n \n \n \n \n );\n }\n return null;\n }\n return null;\n }, [\n visible,\n search,\n position,\n keyboardHeight,\n maxHeight,\n minHeight,\n dropdownPosition,\n keyboardAvoiding,\n showOrClose,\n styleContainerVertical,\n backgroundColor,\n containerStyle,\n styleHorizontal,\n _renderList,\n ]);\n\n return (\n \n {_renderDropdown()}\n {_renderModal()}\n \n );\n });\n\nexport default DropdownComponent;\n","import { I18nManager, StyleSheet } from 'react-native';\n\nexport const styles = StyleSheet.create({\n mainWrap: {\n justifyContent: 'center',\n },\n container: {\n flexShrink: 1,\n backgroundColor: 'white',\n borderWidth: 0.5,\n borderColor: '#EEEEEE',\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 1,\n },\n shadowOpacity: 0.2,\n shadowRadius: 1.41,\n elevation: 2,\n },\n flex1: {\n flex: 1,\n },\n flexShrink: {\n flexShrink: 1,\n },\n wrapTop: {\n justifyContent: 'flex-end',\n },\n dropdown: {\n flexDirection: I18nManager.isRTL ? 'row-reverse' : 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n dropdownInside: {\n flexDirection: I18nManager.isRTL ? 'row-reverse' : 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n minHeight: 35,\n },\n title: {\n marginVertical: 5,\n fontSize: 16,\n writingDirection: I18nManager.isRTL ? 'rtl' : 'ltr',\n },\n wrapItem: {\n marginBottom: 0.5,\n },\n item: {\n padding: 17,\n flexDirection: I18nManager.isRTL ? 'row-reverse' : 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n textItem: {\n flex: 1,\n fontSize: 16,\n writingDirection: I18nManager.isRTL ? 'rtl' : 'ltr',\n },\n icon: {\n width: 20,\n height: 20,\n },\n input: {\n borderWidth: 0.5,\n borderColor: '#DDDDDD',\n paddingHorizontal: 8,\n marginBottom: 8,\n margin: 6,\n height: 45,\n },\n rowSelectedItem: {\n flexDirection: I18nManager.isRTL ? 'row-reverse' : 'row',\n flexWrap: 'wrap',\n },\n selectedItem: {\n padding: 8,\n alignItems: 'center',\n justifyContent: 'center',\n borderWidth: 0.5,\n borderColor: 'gray',\n paddingHorizontal: 8,\n marginVertical: 6,\n marginRight: 8,\n flexDirection: I18nManager.isRTL ? 'row-reverse' : 'row',\n },\n selectedTextItem: {\n marginLeft: 5,\n color: 'gray',\n fontSize: 16,\n writingDirection: I18nManager.isRTL ? 'rtl' : 'ltr',\n },\n selectedTextLeftItem: {\n fontSize: 12,\n color: 'gray',\n writingDirection: I18nManager.isRTL ? 'rtl' : 'ltr',\n },\n fullScreen: {\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n","/* eslint-disable @typescript-eslint/no-shadow */\nimport _assign from 'lodash/assign';\nimport _differenceWith from 'lodash/differenceWith';\nimport _get from 'lodash/get';\nimport React, {\n JSXElementConstructor,\n ReactElement,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport {\n Dimensions,\n FlatList,\n I18nManager,\n Image,\n Keyboard,\n KeyboardEvent,\n Modal,\n StyleSheet,\n Text,\n TouchableHighlight,\n TouchableWithoutFeedback,\n View,\n ViewStyle,\n StatusBar,\n} from 'react-native';\nimport { useDetectDevice } from '../../toolkits';\nimport { useDeviceOrientation } from '../../useDeviceOrientation';\nimport CInput from '../TextInput';\nimport { MultiSelectProps } from './model';\nimport { styles } from './styles';\n\nconst { isTablet } = useDetectDevice;\nconst ic_down = require('../../assets/down.png');\nconst statusBarHeight: number = StatusBar.currentHeight || 0;\n\nconst MultiSelectComponent: (\n props: MultiSelectProps\n) => ReactElement> | null =\n React.forwardRef((props, currentRef) => {\n const orientation = useDeviceOrientation();\n const {\n testID,\n itemTestIDField,\n onChange,\n data = [],\n value,\n style = {},\n labelField,\n valueField,\n searchField,\n selectedStyle,\n selectedTextStyle,\n itemContainerStyle,\n itemTextStyle,\n iconStyle,\n selectedTextProps = {},\n activeColor = '#F6F7F8',\n containerStyle,\n fontFamily,\n placeholderStyle,\n iconColor = 'gray',\n inputSearchStyle,\n searchPlaceholder,\n placeholder = 'Select item',\n search = false,\n maxHeight = 340,\n minHeight = 0,\n maxSelect,\n disable = false,\n keyboardAvoiding = true,\n inside = false,\n inverted = true,\n renderItem,\n renderLeftIcon,\n renderRightIcon,\n renderSelectedItem,\n renderInputSearch,\n onFocus,\n onBlur,\n showsVerticalScrollIndicator = true,\n dropdownPosition = 'auto',\n flatListProps,\n alwaysRenderSelectedItem = false,\n searchQuery,\n backgroundColor,\n onChangeText,\n confirmSelectItem,\n confirmUnSelectItem,\n onConfirmSelectItem,\n accessibilityLabel,\n itemAccessibilityLabelField,\n visibleSelectedItem = true,\n mode = 'default',\n excludeItems = [],\n excludeSearchItems = [],\n } = props;\n\n const ref = useRef(null);\n const [visible, setVisible] = useState(false);\n const [currentValue, setCurrentValue] = useState([]);\n const [listData, setListData] = useState(data);\n const [, setKey] = useState(Math.random());\n const [position, setPosition] = useState();\n const [keyboardHeight, setKeyboardHeight] = useState(0);\n const [searchText, setSearchText] = useState('');\n\n const { width: W, height: H } = Dimensions.get('window');\n const styleContainerVertical: ViewStyle = useMemo(() => {\n return {\n backgroundColor: 'rgba(0,0,0,0.1)',\n alignItems: 'center',\n };\n }, []);\n const styleHorizontal: ViewStyle = useMemo(() => {\n return {\n width: orientation === 'LANDSCAPE' ? W / 2 : '100%',\n alignSelf: 'center',\n };\n }, [W, orientation]);\n\n useImperativeHandle(currentRef, () => {\n return { open: eventOpen, close: eventClose };\n });\n\n useEffect(() => {\n return eventClose;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const excludeData = useCallback(\n (data: any[]) => {\n if (excludeItems.length > 0) {\n const getData = _differenceWith(\n data,\n excludeItems,\n (obj1, obj2) => _get(obj1, valueField) === _get(obj2, valueField)\n );\n return getData || [];\n } else {\n return data || [];\n }\n },\n [excludeItems, valueField]\n );\n\n useEffect(() => {\n const filterData = excludeData(data);\n setListData([...filterData]);\n\n if (searchText) {\n onSearch(searchText);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [data, searchText]);\n\n const eventOpen = () => {\n if (!disable) {\n setVisible(true);\n if (onFocus) {\n onFocus();\n }\n\n if (searchText.length > 0) {\n onSearch(searchText);\n }\n }\n };\n\n const eventClose = () => {\n if (!disable) {\n setVisible(false);\n if (onBlur) {\n onBlur();\n }\n }\n };\n\n const font = useCallback(() => {\n if (fontFamily) {\n return {\n fontFamily: fontFamily,\n };\n } else {\n return {};\n }\n }, [fontFamily]);\n\n const getValue = useCallback(() => {\n setCurrentValue(value ? [...value] : []);\n }, [value]);\n\n const _measure = useCallback(() => {\n if (ref && ref?.current) {\n ref.current.measureInWindow((pageX, pageY, width, height) => {\n let isFull = isTablet\n ? false\n : mode === 'modal' || orientation === 'LANDSCAPE';\n\n if (mode === 'auto') {\n isFull = false;\n }\n\n const top = isFull ? 20 : height + pageY + 2;\n const bottom = H - top + height;\n const left = I18nManager.isRTL ? W - width - pageX : pageX;\n\n setPosition({\n isFull,\n width: Math.floor(width),\n top: Math.floor(top + statusBarHeight),\n bottom: Math.floor(bottom - statusBarHeight),\n left: Math.floor(left),\n height: Math.floor(height),\n });\n });\n }\n }, [H, W, orientation, mode]);\n\n const onKeyboardDidShow = useCallback(\n (e: KeyboardEvent) => {\n _measure();\n setKeyboardHeight(e.endCoordinates.height);\n },\n [_measure]\n );\n\n const onKeyboardDidHide = useCallback(() => {\n setKeyboardHeight(0);\n _measure();\n }, [_measure]);\n\n useEffect(() => {\n const susbcriptionKeyboardDidShow = Keyboard.addListener(\n 'keyboardDidShow',\n onKeyboardDidShow\n );\n const susbcriptionKeyboardDidHide = Keyboard.addListener(\n 'keyboardDidHide',\n onKeyboardDidHide\n );\n\n return () => {\n if (typeof susbcriptionKeyboardDidShow?.remove === 'function') {\n susbcriptionKeyboardDidShow.remove();\n }\n\n if (typeof susbcriptionKeyboardDidHide?.remove === 'function') {\n susbcriptionKeyboardDidHide.remove();\n }\n };\n }, [onKeyboardDidHide, onKeyboardDidShow]);\n\n useEffect(() => {\n getValue();\n }, [getValue, value]);\n\n const showOrClose = useCallback(() => {\n if (!disable) {\n const visibleStatus = !visible;\n\n if (keyboardHeight > 0 && !visibleStatus) {\n return Keyboard.dismiss();\n }\n\n _measure();\n setVisible(visibleStatus);\n const filterData = excludeData(data);\n setListData(filterData);\n\n if (visibleStatus) {\n if (onFocus) {\n onFocus();\n }\n } else {\n if (onBlur) {\n onBlur();\n }\n }\n\n if (searchText.length > 0) {\n onSearch(searchText);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n disable,\n keyboardHeight,\n visible,\n _measure,\n data,\n searchText,\n onFocus,\n onBlur,\n ]);\n\n const onSearch = useCallback(\n (text: string) => {\n if (text.length > 0) {\n const defaultFilterFunction = (e: any) => {\n const item = _get(e, searchField || labelField)\n ?.toLowerCase()\n .replace(/\\s/g, '')\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '');\n const key = text\n .toLowerCase()\n .replace(/\\s/g, '')\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '');\n\n return item.indexOf(key) >= 0;\n };\n\n const propSearchFunction = (e: any) => {\n const labelText = _get(e, searchField || labelField);\n\n return searchQuery?.(text, labelText);\n };\n\n const dataSearch = data.filter(\n searchQuery ? propSearchFunction : defaultFilterFunction\n );\n\n if (excludeSearchItems.length > 0 || excludeItems.length > 0) {\n const excludeSearchData = _differenceWith(\n dataSearch,\n excludeSearchItems,\n (obj1, obj2) => _get(obj1, valueField) === _get(obj2, valueField)\n );\n\n const filterData = excludeData(excludeSearchData);\n setListData(filterData);\n } else {\n setListData(dataSearch);\n }\n } else {\n const filterData = excludeData(data);\n setListData(filterData);\n }\n },\n [\n data,\n searchQuery,\n excludeSearchItems,\n excludeItems,\n searchField,\n labelField,\n valueField,\n excludeData,\n ]\n );\n\n const onSelect = useCallback(\n (item: any) => {\n const newCurrentValue = [...currentValue];\n const index = newCurrentValue.findIndex(\n (e) => e === _get(item, valueField)\n );\n if (index > -1) {\n newCurrentValue.splice(index, 1);\n } else {\n if (maxSelect) {\n if (newCurrentValue.length < maxSelect) {\n newCurrentValue.push(_get(item, valueField));\n }\n } else {\n newCurrentValue.push(_get(item, valueField));\n }\n }\n\n if (onConfirmSelectItem) {\n if (index > -1) {\n if (confirmUnSelectItem) {\n onConfirmSelectItem(newCurrentValue);\n } else {\n onChange(newCurrentValue);\n }\n } else {\n if (confirmSelectItem) {\n onConfirmSelectItem(newCurrentValue);\n } else {\n onChange(newCurrentValue);\n }\n }\n } else {\n onChange(newCurrentValue);\n }\n\n setKey(Math.random());\n },\n [\n confirmSelectItem,\n confirmUnSelectItem,\n currentValue,\n maxSelect,\n onChange,\n onConfirmSelectItem,\n valueField,\n ]\n );\n\n const _renderDropdown = () => {\n return (\n \n \n {renderLeftIcon?.(visible)}\n \n {placeholder}\n \n {renderRightIcon ? (\n renderRightIcon(visible)\n ) : (\n \n )}\n \n \n );\n };\n\n const checkSelected = useCallback(\n (item: any) => {\n const index = currentValue.findIndex(\n (e) => e === _get(item, valueField)\n );\n return index > -1;\n },\n [currentValue, valueField]\n );\n\n const _renderItem = useCallback(\n ({ item, index }: { item: any; index: number }) => {\n const selected = checkSelected(item);\n _assign(item, { _index: index });\n return (\n onSelect(item)}\n >\n \n {renderItem ? (\n renderItem(item, selected)\n ) : (\n \n \n {_get(item, labelField)}\n \n \n )}\n \n \n );\n },\n [\n accessibilityLabel,\n activeColor,\n checkSelected,\n font,\n itemAccessibilityLabelField,\n itemContainerStyle,\n itemTestIDField,\n itemTextStyle,\n labelField,\n onSelect,\n renderItem,\n ]\n );\n\n const renderSearch = useCallback(() => {\n if (search) {\n if (renderInputSearch) {\n return renderInputSearch((text) => {\n if (onChangeText) {\n setSearchText(text);\n onChangeText(text);\n }\n onSearch(text);\n });\n } else {\n return (\n {\n if (onChangeText) {\n setSearchText(e);\n onChangeText(e);\n }\n onSearch(e);\n }}\n placeholderTextColor=\"gray\"\n iconStyle={[{ tintColor: iconColor }, iconStyle]}\n />\n );\n }\n }\n return null;\n }, [\n accessibilityLabel,\n font,\n iconColor,\n iconStyle,\n inputSearchStyle,\n onChangeText,\n onSearch,\n renderInputSearch,\n search,\n searchPlaceholder,\n testID,\n ]);\n\n const _renderList = useCallback(\n (isTopPosition: boolean) => {\n const isInverted = !inverted ? false : isTopPosition;\n\n const _renderListHelper = () => {\n return (\n index.toString()}\n showsVerticalScrollIndicator={showsVerticalScrollIndicator}\n />\n );\n };\n\n return (\n \n \n {isInverted && _renderListHelper()}\n {renderSearch()}\n {!isInverted && _renderListHelper()}\n \n \n );\n },\n [\n _renderItem,\n accessibilityLabel,\n flatListProps,\n listData,\n inverted,\n renderSearch,\n showsVerticalScrollIndicator,\n testID,\n ]\n );\n\n const _renderModal = useCallback(() => {\n if (visible && position) {\n const { isFull, width, height, top, bottom, left } = position;\n\n const onAutoPosition = () => {\n if (keyboardHeight > 0) {\n return bottom < keyboardHeight + height;\n }\n\n return bottom < (search ? 150 : 100);\n };\n\n if (width && top && bottom) {\n const styleVertical: ViewStyle = {\n left: left,\n maxHeight: maxHeight,\n minHeight: minHeight,\n };\n const isTopPosition =\n dropdownPosition === 'auto'\n ? onAutoPosition()\n : dropdownPosition === 'top';\n\n let keyboardStyle: ViewStyle = {};\n\n let extendHeight = !isTopPosition ? top : bottom;\n if (\n keyboardAvoiding &&\n keyboardHeight > 0 &&\n isTopPosition &&\n dropdownPosition === 'auto'\n ) {\n extendHeight = keyboardHeight;\n }\n\n return (\n \n \n \n \n \n {_renderList(isTopPosition)}\n \n \n \n \n \n );\n }\n return null;\n }\n return null;\n }, [\n visible,\n search,\n position,\n keyboardHeight,\n maxHeight,\n minHeight,\n dropdownPosition,\n keyboardAvoiding,\n showOrClose,\n styleContainerVertical,\n backgroundColor,\n containerStyle,\n styleHorizontal,\n _renderList,\n ]);\n\n const unSelect = (item: any) => {\n if (!disable) {\n onSelect(item);\n }\n };\n\n const _renderItemSelected = (inside: boolean) => {\n const list = data.filter((e: any) => {\n const check = value?.indexOf(_get(e, valueField));\n if (check !== -1) {\n return e;\n }\n });\n\n return (\n \n {list.map((e) => {\n if (renderSelectedItem) {\n return (\n unSelect(e)}\n >\n {renderSelectedItem(e, () => {\n unSelect(e);\n })}\n \n );\n } else {\n return (\n unSelect(e)}\n >\n \n \n {_get(e, labelField)}\n \n \n ⓧ\n \n \n \n );\n }\n })}\n \n );\n };\n\n const _renderInside = () => {\n return (\n \n {_renderDropdownInside()}\n {_renderModal()}\n \n );\n };\n\n const _renderDropdownInside = () => {\n return (\n \n \n {renderLeftIcon?.()}\n {value && value?.length > 0 ? (\n _renderItemSelected(true)\n ) : (\n \n {placeholder}\n \n )}\n {renderRightIcon ? (\n renderRightIcon()\n ) : (\n \n )}\n \n \n );\n };\n\n if (inside) {\n return _renderInside();\n }\n\n return (\n <>\n \n {_renderDropdown()}\n {_renderModal()}\n \n {(!visible || alwaysRenderSelectedItem) &&\n visibleSelectedItem &&\n _renderItemSelected(false)}\n \n );\n });\n\nexport default MultiSelectComponent;\n","import { I18nManager, StyleSheet } from 'react-native';\n\nexport const styles = StyleSheet.create({\n dropdown: {\n width: 58,\n paddingHorizontal: 6,\n height: 26,\n },\n container: {\n width: 60,\n },\n item: {\n flexDirection: I18nManager.isRTL ? 'row-reverse' : 'row',\n padding: 6,\n alignItems: 'center',\n },\n image: {\n width: 20,\n height: 20,\n marginRight: 3,\n marginVertical: 4,\n },\n selectedTextStyle: {\n flex: 1,\n fontSize: 12,\n writingDirection: I18nManager.isRTL ? 'rtl' : 'ltr',\n },\n});\n","import React, {\n useImperativeHandle,\n useMemo,\n useRef,\n ReactElement,\n JSXElementConstructor,\n} from 'react';\nimport { Image, View, Text } from 'react-native';\nimport Dropdown from '../Dropdown';\nimport { SelectCountryProps } from './model';\nimport { styles } from './styles';\n\nconst SelectCountryComponent: (\n props: SelectCountryProps\n) => ReactElement> | null =\n React.forwardRef((props, currentRef) => {\n const {\n data,\n value,\n valueField,\n labelField,\n imageField,\n selectedTextStyle,\n imageStyle,\n } = props;\n const ref: any = useRef(null);\n\n useImperativeHandle(currentRef, () => {\n return { open: eventOpen, close: eventClose };\n });\n\n const eventOpen = () => {\n ref.current.open();\n };\n\n const eventClose = () => {\n ref.current.close();\n };\n\n const _renderItem = (item: any) => {\n return (\n \n \n \n {item[labelField]}\n \n \n );\n };\n\n const selectItem: any = useMemo(() => {\n const index = data.findIndex((e: any) => e[valueField] === value);\n return data[index];\n }, [data, valueField, value]);\n\n return (\n {\n if (selectItem?.image) {\n return (\n \n );\n } else {\n return null;\n }\n }}\n />\n );\n });\n\nexport default SelectCountryComponent;\n","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"animating\", \"color\", \"hidesWhenStopped\", \"size\", \"style\"];\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar createSvgCircle = style => /*#__PURE__*/React.createElement(\"circle\", {\n cx: \"16\",\n cy: \"16\",\n fill: \"none\",\n r: \"14\",\n strokeWidth: \"4\",\n style: style\n});\nvar ActivityIndicator = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var _props$animating = props.animating,\n animating = _props$animating === void 0 ? true : _props$animating,\n _props$color = props.color,\n color = _props$color === void 0 ? '#1976D2' : _props$color,\n _props$hidesWhenStopp = props.hidesWhenStopped,\n hidesWhenStopped = _props$hidesWhenStopp === void 0 ? true : _props$hidesWhenStopp,\n _props$size = props.size,\n size = _props$size === void 0 ? 'small' : _props$size,\n style = props.style,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n var svg = /*#__PURE__*/React.createElement(\"svg\", {\n height: \"100%\",\n viewBox: \"0 0 32 32\",\n width: \"100%\"\n }, createSvgCircle({\n stroke: color,\n opacity: 0.2\n }), createSvgCircle({\n stroke: color,\n strokeDasharray: 80,\n strokeDashoffset: 60\n }));\n return /*#__PURE__*/React.createElement(View, _extends({}, other, {\n \"aria-valuemax\": 1,\n \"aria-valuemin\": 0,\n ref: forwardedRef,\n role: \"progressbar\",\n style: [styles.container, style]\n }), /*#__PURE__*/React.createElement(View, {\n children: svg,\n style: [typeof size === 'number' ? {\n height: size,\n width: size\n } : indicatorSizes[size], styles.animation, !animating && styles.animationPause, !animating && hidesWhenStopped && styles.hidesWhenStopped]\n }));\n});\nActivityIndicator.displayName = 'ActivityIndicator';\nvar styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n justifyContent: 'center'\n },\n hidesWhenStopped: {\n visibility: 'hidden'\n },\n animation: {\n animationDuration: '0.75s',\n animationKeyframes: [{\n '0%': {\n transform: 'rotate(0deg)'\n },\n '100%': {\n transform: 'rotate(360deg)'\n }\n }],\n animationTimingFunction: 'linear',\n animationIterationCount: 'infinite'\n },\n animationPause: {\n animationPlayState: 'paused'\n }\n});\nvar indicatorSizes = StyleSheet.create({\n small: {\n width: 20,\n height: 20\n },\n large: {\n width: 36,\n height: 36\n }\n});\nexport default ActivityIndicator;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nvar ReactNativeFeatureFlags = {\n isLayoutAnimationEnabled: () => true,\n shouldEmitW3CPointerEvents: () => false,\n shouldPressibilityUseW3CPointerEventsForHover: () => false,\n animatedShouldDebounceQueueFlush: () => false,\n animatedShouldUseSingleOp: () => false\n};\nexport default ReactNativeFeatureFlags;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\nimport NativeAnimatedNonTurboModule from './NativeAnimatedModule';\nimport NativeAnimatedTurboModule from './NativeAnimatedTurboModule';\nimport NativeEventEmitter from '../EventEmitter/NativeEventEmitter';\nimport Platform from '../Utilities/Platform';\nimport ReactNativeFeatureFlags from '../ReactNative/ReactNativeFeatureFlags';\nimport invariant from 'fbjs/lib/invariant';\nimport RCTDeviceEventEmitter from '../EventEmitter/RCTDeviceEventEmitter';\n// TODO T69437152 @petetheheat - Delete this fork when Fabric ships to 100%.\nvar NativeAnimatedModule = Platform.OS === 'ios' && global.RN$Bridgeless === true ? NativeAnimatedTurboModule : NativeAnimatedNonTurboModule;\nvar __nativeAnimatedNodeTagCount = 1; /* used for animated nodes */\nvar __nativeAnimationIdCount = 1; /* used for started animations */\n\nvar nativeEventEmitter;\nvar waitingForQueuedOperations = new Set();\nvar queueOperations = false;\nvar queue = [];\n// $FlowFixMe\nvar singleOpQueue = [];\nvar useSingleOpBatching = false;\nPlatform.OS === 'android' && !!(NativeAnimatedModule != null && NativeAnimatedModule.queueAndExecuteBatchedOperations) && ReactNativeFeatureFlags.animatedShouldUseSingleOp();\nvar flushQueueTimeout = null;\nvar eventListenerGetValueCallbacks = {};\nvar eventListenerAnimationFinishedCallbacks = {};\nvar globalEventEmitterGetValueListener = null;\nvar globalEventEmitterAnimationFinishedListener = null;\nvar nativeOps = useSingleOpBatching ? function () {\n var apis = ['createAnimatedNode',\n // 1\n 'updateAnimatedNodeConfig',\n // 2\n 'getValue',\n // 3\n 'startListeningToAnimatedNodeValue',\n // 4\n 'stopListeningToAnimatedNodeValue',\n // 5\n 'connectAnimatedNodes',\n // 6\n 'disconnectAnimatedNodes',\n // 7\n 'startAnimatingNode',\n // 8\n 'stopAnimation',\n // 9\n 'setAnimatedNodeValue',\n // 10\n 'setAnimatedNodeOffset',\n // 11\n 'flattenAnimatedNodeOffset',\n // 12\n 'extractAnimatedNodeOffset',\n // 13\n 'connectAnimatedNodeToView',\n // 14\n 'disconnectAnimatedNodeFromView',\n // 15\n 'restoreDefaultValues',\n // 16\n 'dropAnimatedNode',\n // 17\n 'addAnimatedEventToView',\n // 18\n 'removeAnimatedEventFromView',\n // 19\n 'addListener',\n // 20\n 'removeListener' // 21\n ];\n\n return apis.reduce((acc, functionName, i) => {\n // These indices need to be kept in sync with the indices in native (see NativeAnimatedModule in Java, or the equivalent for any other native platform).\n // $FlowFixMe[prop-missing]\n acc[functionName] = i + 1;\n return acc;\n }, {});\n}() : NativeAnimatedModule;\n\n/**\n * Wrappers around NativeAnimatedModule to provide flow and autocomplete support for\n * the native module methods, and automatic queue management on Android\n */\nvar API = {\n getValue: function getValue(tag, saveValueCallback) {\n invariant(nativeOps, 'Native animated module is not available');\n if (useSingleOpBatching) {\n if (saveValueCallback) {\n eventListenerGetValueCallbacks[tag] = saveValueCallback;\n }\n // $FlowFixMe\n API.queueOperation(nativeOps.getValue, tag);\n } else {\n API.queueOperation(nativeOps.getValue, tag, saveValueCallback);\n }\n },\n setWaitingForIdentifier: function setWaitingForIdentifier(id) {\n waitingForQueuedOperations.add(id);\n queueOperations = true;\n if (ReactNativeFeatureFlags.animatedShouldDebounceQueueFlush() && flushQueueTimeout) {\n clearTimeout(flushQueueTimeout);\n }\n },\n unsetWaitingForIdentifier: function unsetWaitingForIdentifier(id) {\n waitingForQueuedOperations.delete(id);\n if (waitingForQueuedOperations.size === 0) {\n queueOperations = false;\n API.disableQueue();\n }\n },\n disableQueue: function disableQueue() {\n invariant(nativeOps, 'Native animated module is not available');\n if (ReactNativeFeatureFlags.animatedShouldDebounceQueueFlush()) {\n var prevTimeout = flushQueueTimeout;\n clearImmediate(prevTimeout);\n flushQueueTimeout = setImmediate(API.flushQueue);\n } else {\n API.flushQueue();\n }\n },\n flushQueue: function flushQueue() {\n /*\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n flushQueueTimeout = null;\n // Early returns before calling any APIs\n if (useSingleOpBatching && singleOpQueue.length === 0) {\n return;\n }\n if (!useSingleOpBatching && queue.length === 0) {\n return;\n }\n if (useSingleOpBatching) {\n // Set up event listener for callbacks if it's not set up\n if (\n !globalEventEmitterGetValueListener ||\n !globalEventEmitterAnimationFinishedListener\n ) {\n setupGlobalEventEmitterListeners();\n }\n // Single op batching doesn't use callback functions, instead we\n // use RCTDeviceEventEmitter. This reduces overhead of sending lots of\n // JSI functions across to native code; but also, TM infrastructure currently\n // does not support packing a function into native arrays.\n NativeAnimatedModule.queueAndExecuteBatchedOperations?.(singleOpQueue);\n singleOpQueue.length = 0;\n } else {\n Platform.OS === 'android' && NativeAnimatedModule.startOperationBatch?.();\n for (let q = 0, l = queue.length; q < l; q++) {\n queue[q]();\n }\n queue.length = 0;\n Platform.OS === 'android' &&\n NativeAnimatedModule.finishOperationBatch?.();\n }\n */\n },\n queueOperation: function queueOperation(fn) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (useSingleOpBatching) {\n // Get the command ID from the queued function, and push that ID and any arguments needed to execute the operation\n // $FlowFixMe: surprise, fn is actually a number\n singleOpQueue.push(fn, ...args);\n return;\n }\n\n // If queueing is explicitly on, *or* the queue has not yet\n // been flushed, use the queue. This is to prevent operations\n // from being executed out of order.\n if (queueOperations || queue.length !== 0) {\n queue.push(() => fn(...args));\n } else {\n fn(...args);\n }\n },\n createAnimatedNode: function createAnimatedNode(tag, config) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.createAnimatedNode, tag, config);\n },\n updateAnimatedNodeConfig: function updateAnimatedNodeConfig(tag, config) {\n invariant(nativeOps, 'Native animated module is not available');\n //if (nativeOps.updateAnimatedNodeConfig) {\n // API.queueOperation(nativeOps.updateAnimatedNodeConfig, tag, config);\n //}\n },\n\n startListeningToAnimatedNodeValue: function startListeningToAnimatedNodeValue(tag) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.startListeningToAnimatedNodeValue, tag);\n },\n stopListeningToAnimatedNodeValue: function stopListeningToAnimatedNodeValue(tag) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.stopListeningToAnimatedNodeValue, tag);\n },\n connectAnimatedNodes: function connectAnimatedNodes(parentTag, childTag) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.connectAnimatedNodes, parentTag, childTag);\n },\n disconnectAnimatedNodes: function disconnectAnimatedNodes(parentTag, childTag) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.disconnectAnimatedNodes, parentTag, childTag);\n },\n startAnimatingNode: function startAnimatingNode(animationId, nodeTag, config, endCallback) {\n invariant(nativeOps, 'Native animated module is not available');\n if (useSingleOpBatching) {\n if (endCallback) {\n eventListenerAnimationFinishedCallbacks[animationId] = endCallback;\n }\n // $FlowFixMe\n API.queueOperation(nativeOps.startAnimatingNode, animationId, nodeTag, config);\n } else {\n API.queueOperation(nativeOps.startAnimatingNode, animationId, nodeTag, config, endCallback);\n }\n },\n stopAnimation: function stopAnimation(animationId) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.stopAnimation, animationId);\n },\n setAnimatedNodeValue: function setAnimatedNodeValue(nodeTag, value) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.setAnimatedNodeValue, nodeTag, value);\n },\n setAnimatedNodeOffset: function setAnimatedNodeOffset(nodeTag, offset) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.setAnimatedNodeOffset, nodeTag, offset);\n },\n flattenAnimatedNodeOffset: function flattenAnimatedNodeOffset(nodeTag) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.flattenAnimatedNodeOffset, nodeTag);\n },\n extractAnimatedNodeOffset: function extractAnimatedNodeOffset(nodeTag) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.extractAnimatedNodeOffset, nodeTag);\n },\n connectAnimatedNodeToView: function connectAnimatedNodeToView(nodeTag, viewTag) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.connectAnimatedNodeToView, nodeTag, viewTag);\n },\n disconnectAnimatedNodeFromView: function disconnectAnimatedNodeFromView(nodeTag, viewTag) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.disconnectAnimatedNodeFromView, nodeTag, viewTag);\n },\n restoreDefaultValues: function restoreDefaultValues(nodeTag) {\n invariant(nativeOps, 'Native animated module is not available');\n // Backwards compat with older native runtimes, can be removed later.\n if (nativeOps.restoreDefaultValues != null) {\n API.queueOperation(nativeOps.restoreDefaultValues, nodeTag);\n }\n },\n dropAnimatedNode: function dropAnimatedNode(tag) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.dropAnimatedNode, tag);\n },\n addAnimatedEventToView: function addAnimatedEventToView(viewTag, eventName, eventMapping) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.addAnimatedEventToView, viewTag, eventName, eventMapping);\n },\n removeAnimatedEventFromView(viewTag, eventName, animatedNodeTag) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.removeAnimatedEventFromView, viewTag, eventName, animatedNodeTag);\n }\n};\nfunction setupGlobalEventEmitterListeners() {\n globalEventEmitterGetValueListener = RCTDeviceEventEmitter.addListener('onNativeAnimatedModuleGetValue', function (params) {\n var tag = params.tag;\n var callback = eventListenerGetValueCallbacks[tag];\n if (!callback) {\n return;\n }\n callback(params.value);\n delete eventListenerGetValueCallbacks[tag];\n });\n globalEventEmitterAnimationFinishedListener = RCTDeviceEventEmitter.addListener('onNativeAnimatedModuleAnimationFinished', function (params) {\n var animationId = params.animationId;\n var callback = eventListenerAnimationFinishedCallbacks[animationId];\n if (!callback) {\n return;\n }\n callback(params);\n delete eventListenerAnimationFinishedCallbacks[animationId];\n });\n}\n\n/**\n * Styles allowed by the native animated implementation.\n *\n * In general native animated implementation should support any numeric or color property that\n * doesn't need to be updated through the shadow view hierarchy (all non-layout properties).\n */\nvar SUPPORTED_COLOR_STYLES = {\n backgroundColor: true,\n borderBottomColor: true,\n borderColor: true,\n borderEndColor: true,\n borderLeftColor: true,\n borderRightColor: true,\n borderStartColor: true,\n borderTopColor: true,\n color: true,\n tintColor: true\n};\nvar SUPPORTED_STYLES = _objectSpread(_objectSpread({}, SUPPORTED_COLOR_STYLES), {}, {\n borderBottomEndRadius: true,\n borderBottomLeftRadius: true,\n borderBottomRightRadius: true,\n borderBottomStartRadius: true,\n borderRadius: true,\n borderTopEndRadius: true,\n borderTopLeftRadius: true,\n borderTopRightRadius: true,\n borderTopStartRadius: true,\n elevation: true,\n opacity: true,\n transform: true,\n zIndex: true,\n /* ios styles */\n shadowOpacity: true,\n shadowRadius: true,\n /* legacy android transform properties */\n scaleX: true,\n scaleY: true,\n translateX: true,\n translateY: true\n});\nvar SUPPORTED_TRANSFORMS = {\n translateX: true,\n translateY: true,\n scale: true,\n scaleX: true,\n scaleY: true,\n rotate: true,\n rotateX: true,\n rotateY: true,\n rotateZ: true,\n perspective: true\n};\nvar SUPPORTED_INTERPOLATION_PARAMS = {\n inputRange: true,\n outputRange: true,\n extrapolate: true,\n extrapolateRight: true,\n extrapolateLeft: true\n};\nfunction addWhitelistedStyleProp(prop) {\n SUPPORTED_STYLES[prop] = true;\n}\nfunction addWhitelistedTransformProp(prop) {\n SUPPORTED_TRANSFORMS[prop] = true;\n}\nfunction addWhitelistedInterpolationParam(param) {\n SUPPORTED_INTERPOLATION_PARAMS[param] = true;\n}\nfunction isSupportedColorStyleProp(prop) {\n return SUPPORTED_COLOR_STYLES.hasOwnProperty(prop);\n}\nfunction isSupportedStyleProp(prop) {\n return SUPPORTED_STYLES.hasOwnProperty(prop);\n}\nfunction isSupportedTransformProp(prop) {\n return SUPPORTED_TRANSFORMS.hasOwnProperty(prop);\n}\nfunction isSupportedInterpolationParam(param) {\n return SUPPORTED_INTERPOLATION_PARAMS.hasOwnProperty(param);\n}\nfunction validateTransform(configs) {\n configs.forEach(config => {\n if (!isSupportedTransformProp(config.property)) {\n throw new Error(\"Property '\" + config.property + \"' is not supported by native animated module\");\n }\n });\n}\nfunction validateStyles(styles) {\n for (var _key2 in styles) {\n if (!isSupportedStyleProp(_key2)) {\n throw new Error(\"Style property '\" + _key2 + \"' is not supported by native animated module\");\n }\n }\n}\nfunction validateInterpolation(config) {\n for (var _key3 in config) {\n if (!isSupportedInterpolationParam(_key3)) {\n throw new Error(\"Interpolation property '\" + _key3 + \"' is not supported by native animated module\");\n }\n }\n}\nfunction generateNewNodeTag() {\n return __nativeAnimatedNodeTagCount++;\n}\nfunction generateNewAnimationId() {\n return __nativeAnimationIdCount++;\n}\nfunction assertNativeAnimatedModule() {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n}\nvar _warnedMissingNativeAnimated = false;\nfunction shouldUseNativeDriver(config) {\n if (config.useNativeDriver == null) {\n console.warn('Animated: `useNativeDriver` was not specified. This is a required ' + 'option and must be explicitly set to `true` or `false`');\n }\n if (config.useNativeDriver === true && !NativeAnimatedModule) {\n if (!_warnedMissingNativeAnimated) {\n console.warn('Animated: `useNativeDriver` is not supported because the native ' + 'animated module is missing. Falling back to JS-based animation. To ' + 'resolve this, add `RCTAnimation` module to this app, or remove ' + '`useNativeDriver`. ' + 'Make sure to run `bundle exec pod install` first. Read more about autolinking: https://github.com/react-native-community/cli/blob/master/docs/autolinking.md');\n _warnedMissingNativeAnimated = true;\n }\n return false;\n }\n return config.useNativeDriver || false;\n}\nfunction transformDataType(value) {\n // Change the string type to number type so we can reuse the same logic in\n // iOS and Android platform\n if (typeof value !== 'string') {\n return value;\n }\n if (/deg$/.test(value)) {\n var degrees = parseFloat(value) || 0;\n var radians = degrees * Math.PI / 180.0;\n return radians;\n } else {\n return value;\n }\n}\nexport { API, isSupportedColorStyleProp, isSupportedStyleProp, isSupportedTransformProp, isSupportedInterpolationParam, addWhitelistedStyleProp, addWhitelistedTransformProp, addWhitelistedInterpolationParam, validateStyles, validateTransform, validateInterpolation, generateNewNodeTag, generateNewAnimationId, assertNativeAnimatedModule, shouldUseNativeDriver, transformDataType };\nexport default {\n API,\n isSupportedColorStyleProp,\n isSupportedStyleProp,\n isSupportedTransformProp,\n isSupportedInterpolationParam,\n addWhitelistedStyleProp,\n addWhitelistedTransformProp,\n addWhitelistedInterpolationParam,\n validateStyles,\n validateTransform,\n validateInterpolation,\n generateNewNodeTag,\n generateNewAnimationId,\n assertNativeAnimatedModule,\n shouldUseNativeDriver,\n transformDataType,\n // $FlowExpectedError[unsafe-getters-setters] - unsafe getter lint suppresion\n // $FlowExpectedError[missing-type-arg] - unsafe getter lint suppresion\n get nativeEventEmitter() {\n if (!nativeEventEmitter) {\n nativeEventEmitter = new NativeEventEmitter(\n // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior\n // If you want to use the native module on other platforms, please remove this condition and test its behavior\n Platform.OS !== 'ios' ? null : NativeAnimatedModule);\n }\n return nativeEventEmitter;\n }\n};","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport invariant from 'fbjs/lib/invariant';\nexport function get(name) {\n return null;\n}\nexport function getEnforcing(name) {\n var module = get(name);\n invariant(module != null, \"TurboModuleRegistry.getEnforcing(...): '\" + name + \"' could not be found. \" + 'Verify that a module by this name is registered in the native binary.');\n return module;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nvar NativeAnimatedAPI = NativeAnimatedHelper.API;\nimport invariant from 'fbjs/lib/invariant';\nvar _uniqueId = 1;\n\n// Note(vjeux): this would be better as an interface but flow doesn't\n// support them yet\nclass AnimatedNode {\n __attach() {}\n __detach() {\n if (this.__isNative && this.__nativeTag != null) {\n NativeAnimatedHelper.API.dropAnimatedNode(this.__nativeTag);\n this.__nativeTag = undefined;\n }\n }\n __getValue() {}\n __getAnimatedValue() {\n return this.__getValue();\n }\n __addChild(child) {}\n __removeChild(child) {}\n __getChildren() {\n return [];\n }\n\n /* Methods and props used by native Animated impl */\n\n constructor() {\n this._listeners = {};\n }\n __makeNative(platformConfig) {\n if (!this.__isNative) {\n throw new Error('This node cannot be made a \"native\" animated node');\n }\n this._platformConfig = platformConfig;\n if (this.hasListeners()) {\n this._startListeningToNativeValueUpdates();\n }\n }\n\n /**\n * Adds an asynchronous listener to the value so you can observe updates from\n * animations. This is useful because there is no way to\n * synchronously read the value because it might be driven natively.\n *\n * See https://reactnative.dev/docs/animatedvalue#addlistener\n */\n addListener(callback) {\n var id = String(_uniqueId++);\n this._listeners[id] = callback;\n if (this.__isNative) {\n this._startListeningToNativeValueUpdates();\n }\n return id;\n }\n\n /**\n * Unregister a listener. The `id` param shall match the identifier\n * previously returned by `addListener()`.\n *\n * See https://reactnative.dev/docs/animatedvalue#removelistener\n */\n removeListener(id) {\n delete this._listeners[id];\n if (this.__isNative && !this.hasListeners()) {\n this._stopListeningForNativeValueUpdates();\n }\n }\n\n /**\n * Remove all registered listeners.\n *\n * See https://reactnative.dev/docs/animatedvalue#removealllisteners\n */\n removeAllListeners() {\n this._listeners = {};\n if (this.__isNative) {\n this._stopListeningForNativeValueUpdates();\n }\n }\n hasListeners() {\n return !!Object.keys(this._listeners).length;\n }\n _startListeningToNativeValueUpdates() {\n if (this.__nativeAnimatedValueListener && !this.__shouldUpdateListenersForNewNativeTag) {\n return;\n }\n if (this.__shouldUpdateListenersForNewNativeTag) {\n this.__shouldUpdateListenersForNewNativeTag = false;\n this._stopListeningForNativeValueUpdates();\n }\n NativeAnimatedAPI.startListeningToAnimatedNodeValue(this.__getNativeTag());\n this.__nativeAnimatedValueListener = NativeAnimatedHelper.nativeEventEmitter.addListener('onAnimatedValueUpdate', data => {\n if (data.tag !== this.__getNativeTag()) {\n return;\n }\n this.__onAnimatedValueUpdateReceived(data.value);\n });\n }\n __onAnimatedValueUpdateReceived(value) {\n this.__callListeners(value);\n }\n __callListeners(value) {\n for (var _key in this._listeners) {\n this._listeners[_key]({\n value\n });\n }\n }\n _stopListeningForNativeValueUpdates() {\n if (!this.__nativeAnimatedValueListener) {\n return;\n }\n this.__nativeAnimatedValueListener.remove();\n this.__nativeAnimatedValueListener = null;\n NativeAnimatedAPI.stopListeningToAnimatedNodeValue(this.__getNativeTag());\n }\n __getNativeTag() {\n var _this$__nativeTag;\n NativeAnimatedHelper.assertNativeAnimatedModule();\n invariant(this.__isNative, 'Attempt to get native tag from node not marked as \"native\"');\n var nativeTag = (_this$__nativeTag = this.__nativeTag) !== null && _this$__nativeTag !== void 0 ? _this$__nativeTag : NativeAnimatedHelper.generateNewNodeTag();\n if (this.__nativeTag == null) {\n this.__nativeTag = nativeTag;\n var config = this.__getNativeConfig();\n if (this._platformConfig) {\n config.platformConfig = this._platformConfig;\n }\n NativeAnimatedHelper.API.createAnimatedNode(nativeTag, config);\n this.__shouldUpdateListenersForNewNativeTag = true;\n }\n return nativeTag;\n }\n __getNativeConfig() {\n throw new Error('This JS animated node type cannot be used as native animated node');\n }\n toJSON() {\n return this.__getValue();\n }\n __getPlatformConfig() {\n return this._platformConfig;\n }\n __setPlatformConfig(platformConfig) {\n this._platformConfig = platformConfig;\n }\n}\nexport default AnimatedNode;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport _createForOfIteratorHelperLoose from \"@babel/runtime/helpers/createForOfIteratorHelperLoose\";\nimport AnimatedNode from './AnimatedNode';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nclass AnimatedWithChildren extends AnimatedNode {\n constructor() {\n super();\n this._children = [];\n }\n __makeNative(platformConfig) {\n if (!this.__isNative) {\n this.__isNative = true;\n for (var _iterator = _createForOfIteratorHelperLoose(this._children), _step; !(_step = _iterator()).done;) {\n var child = _step.value;\n child.__makeNative(platformConfig);\n NativeAnimatedHelper.API.connectAnimatedNodes(this.__getNativeTag(), child.__getNativeTag());\n }\n }\n super.__makeNative(platformConfig);\n }\n __addChild(child) {\n if (this._children.length === 0) {\n this.__attach();\n }\n this._children.push(child);\n if (this.__isNative) {\n // Only accept \"native\" animated nodes as children\n child.__makeNative(this.__getPlatformConfig());\n NativeAnimatedHelper.API.connectAnimatedNodes(this.__getNativeTag(), child.__getNativeTag());\n }\n }\n __removeChild(child) {\n var index = this._children.indexOf(child);\n if (index === -1) {\n console.warn(\"Trying to remove a child that doesn't exist\");\n return;\n }\n if (this.__isNative && child.__isNative) {\n NativeAnimatedHelper.API.disconnectAnimatedNodes(this.__getNativeTag(), child.__getNativeTag());\n }\n this._children.splice(index, 1);\n if (this._children.length === 0) {\n this.__detach();\n }\n }\n __getChildren() {\n return this._children;\n }\n __callListeners(value) {\n super.__callListeners(value);\n if (!this.__isNative) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(this._children), _step2; !(_step2 = _iterator2()).done;) {\n var child = _step2.value;\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n if (child.__getValue) {\n child.__callListeners(child.__getValue());\n }\n }\n }\n }\n}\nexport default AnimatedWithChildren;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n/* eslint no-bitwise: 0 */\n\n'use strict';\n\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport invariant from 'fbjs/lib/invariant';\nimport normalizeColor from '@react-native/normalize-colors';\nvar __DEV__ = process.env.NODE_ENV !== 'production';\nvar linear = t => t;\n\n/**\n * Very handy helper to map input ranges to output ranges with an easing\n * function and custom behavior outside of the ranges.\n */\nfunction createInterpolation(config) {\n if (config.outputRange && typeof config.outputRange[0] === 'string') {\n return createInterpolationFromStringOutputRange(config);\n }\n var outputRange = config.outputRange;\n var inputRange = config.inputRange;\n if (__DEV__) {\n checkInfiniteRange('outputRange', outputRange);\n checkInfiniteRange('inputRange', inputRange);\n checkValidInputRange(inputRange);\n invariant(inputRange.length === outputRange.length, 'inputRange (' + inputRange.length + ') and outputRange (' + outputRange.length + ') must have the same length');\n }\n var easing = config.easing || linear;\n var extrapolateLeft = 'extend';\n if (config.extrapolateLeft !== undefined) {\n extrapolateLeft = config.extrapolateLeft;\n } else if (config.extrapolate !== undefined) {\n extrapolateLeft = config.extrapolate;\n }\n var extrapolateRight = 'extend';\n if (config.extrapolateRight !== undefined) {\n extrapolateRight = config.extrapolateRight;\n } else if (config.extrapolate !== undefined) {\n extrapolateRight = config.extrapolate;\n }\n return input => {\n invariant(typeof input === 'number', 'Cannot interpolation an input which is not a number');\n var range = findRange(input, inputRange);\n return interpolate(input, inputRange[range], inputRange[range + 1], outputRange[range], outputRange[range + 1], easing, extrapolateLeft, extrapolateRight);\n };\n}\nfunction interpolate(input, inputMin, inputMax, outputMin, outputMax, easing, extrapolateLeft, extrapolateRight) {\n var result = input;\n\n // Extrapolate\n if (result < inputMin) {\n if (extrapolateLeft === 'identity') {\n return result;\n } else if (extrapolateLeft === 'clamp') {\n result = inputMin;\n } else if (extrapolateLeft === 'extend') {\n // noop\n }\n }\n if (result > inputMax) {\n if (extrapolateRight === 'identity') {\n return result;\n } else if (extrapolateRight === 'clamp') {\n result = inputMax;\n } else if (extrapolateRight === 'extend') {\n // noop\n }\n }\n if (outputMin === outputMax) {\n return outputMin;\n }\n if (inputMin === inputMax) {\n if (input <= inputMin) {\n return outputMin;\n }\n return outputMax;\n }\n\n // Input Range\n if (inputMin === -Infinity) {\n result = -result;\n } else if (inputMax === Infinity) {\n result = result - inputMin;\n } else {\n result = (result - inputMin) / (inputMax - inputMin);\n }\n\n // Easing\n result = easing(result);\n\n // Output Range\n if (outputMin === -Infinity) {\n result = -result;\n } else if (outputMax === Infinity) {\n result = result + outputMin;\n } else {\n result = result * (outputMax - outputMin) + outputMin;\n }\n return result;\n}\nfunction colorToRgba(input) {\n var normalizedColor = normalizeColor(input);\n if (normalizedColor === null || typeof normalizedColor !== 'number') {\n return input;\n }\n normalizedColor = normalizedColor || 0;\n var r = (normalizedColor & 0xff000000) >>> 24;\n var g = (normalizedColor & 0x00ff0000) >>> 16;\n var b = (normalizedColor & 0x0000ff00) >>> 8;\n var a = (normalizedColor & 0x000000ff) / 255;\n return \"rgba(\" + r + \", \" + g + \", \" + b + \", \" + a + \")\";\n}\nvar stringShapeRegex = /[+-]?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][+-]?\\d+)?/g;\n\n/**\n * Supports string shapes by extracting numbers so new values can be computed,\n * and recombines those values into new strings of the same shape. Supports\n * things like:\n *\n * rgba(123, 42, 99, 0.36) // colors\n * -45deg // values with units\n */\nfunction createInterpolationFromStringOutputRange(config) {\n var outputRange = config.outputRange;\n invariant(outputRange.length >= 2, 'Bad output range');\n outputRange = outputRange.map(colorToRgba);\n checkPattern(outputRange);\n\n // ['rgba(0, 100, 200, 0)', 'rgba(50, 150, 250, 0.5)']\n // ->\n // [\n // [0, 50],\n // [100, 150],\n // [200, 250],\n // [0, 0.5],\n // ]\n /* $FlowFixMe[incompatible-use] (>=0.18.0): `outputRange[0].match()` can\n * return `null`. Need to guard against this possibility. */\n var outputRanges = outputRange[0].match(stringShapeRegex).map(() => []);\n outputRange.forEach(value => {\n /* $FlowFixMe[incompatible-use] (>=0.18.0): `value.match()` can return\n * `null`. Need to guard against this possibility. */\n value.match(stringShapeRegex).forEach((number, i) => {\n outputRanges[i].push(+number);\n });\n });\n var interpolations = outputRange[0].match(stringShapeRegex)\n /* $FlowFixMe[incompatible-use] (>=0.18.0): `outputRange[0].match()` can\n * return `null`. Need to guard against this possibility. */\n /* $FlowFixMe[incompatible-call] (>=0.18.0): `outputRange[0].match()` can\n * return `null`. Need to guard against this possibility. */.map((value, i) => {\n return createInterpolation(_objectSpread(_objectSpread({}, config), {}, {\n outputRange: outputRanges[i]\n }));\n });\n\n // rgba requires that the r,g,b are integers.... so we want to round them, but we *dont* want to\n // round the opacity (4th column).\n var shouldRound = isRgbOrRgba(outputRange[0]);\n return input => {\n var i = 0;\n // 'rgba(0, 100, 200, 0)'\n // ->\n // 'rgba(${interpolations[0](input)}, ${interpolations[1](input)}, ...'\n return outputRange[0].replace(stringShapeRegex, () => {\n var val = +interpolations[i++](input);\n if (shouldRound) {\n val = i < 4 ? Math.round(val) : Math.round(val * 1000) / 1000;\n }\n return String(val);\n });\n };\n}\nfunction isRgbOrRgba(range) {\n return typeof range === 'string' && range.startsWith('rgb');\n}\nfunction checkPattern(arr) {\n var pattern = arr[0].replace(stringShapeRegex, '');\n for (var i = 1; i < arr.length; ++i) {\n invariant(pattern === arr[i].replace(stringShapeRegex, ''), 'invalid pattern ' + arr[0] + ' and ' + arr[i]);\n }\n}\nfunction findRange(input, inputRange) {\n var i;\n for (i = 1; i < inputRange.length - 1; ++i) {\n if (inputRange[i] >= input) {\n break;\n }\n }\n return i - 1;\n}\nfunction checkValidInputRange(arr) {\n invariant(arr.length >= 2, 'inputRange must have at least 2 elements');\n var message = 'inputRange must be monotonically non-decreasing ' + String(arr);\n for (var i = 1; i < arr.length; ++i) {\n invariant(arr[i] >= arr[i - 1], message);\n }\n}\nfunction checkInfiniteRange(name, arr) {\n invariant(arr.length >= 2, name + ' must have at least 2 elements');\n invariant(arr.length !== 2 || arr[0] !== -Infinity || arr[1] !== Infinity,\n /* $FlowFixMe[incompatible-type] (>=0.13.0) - In the addition expression\n * below this comment, one or both of the operands may be something that\n * doesn't cleanly convert to a string, like undefined, null, and object,\n * etc. If you really mean this implicit string conversion, you can do\n * something like String(myThing) */\n name + 'cannot be ]-infinity;+infinity[ ' + arr);\n}\nclass AnimatedInterpolation extends AnimatedWithChildren {\n // Export for testing.\n\n constructor(parent, config) {\n super();\n this._parent = parent;\n this._config = config;\n this._interpolation = createInterpolation(config);\n }\n __makeNative(platformConfig) {\n this._parent.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n __getValue() {\n var parentValue = this._parent.__getValue();\n invariant(typeof parentValue === 'number', 'Cannot interpolate an input which is not a number.');\n return this._interpolation(parentValue);\n }\n interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n __attach() {\n this._parent.__addChild(this);\n }\n __detach() {\n this._parent.__removeChild(this);\n super.__detach();\n }\n __transformDataType(range) {\n return range.map(NativeAnimatedHelper.transformDataType);\n }\n __getNativeConfig() {\n if (__DEV__) {\n NativeAnimatedHelper.validateInterpolation(this._config);\n }\n return {\n inputRange: this._config.inputRange,\n // Only the `outputRange` can contain strings so we don't need to transform `inputRange` here\n outputRange: this.__transformDataType(this._config.outputRange),\n extrapolateLeft: this._config.extrapolateLeft || this._config.extrapolate || 'extend',\n extrapolateRight: this._config.extrapolateRight || this._config.extrapolate || 'extend',\n type: 'interpolation'\n };\n }\n}\nAnimatedInterpolation.__createInterpolation = createInterpolation;\nexport default AnimatedInterpolation;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport InteractionManager from '../../../../exports/InteractionManager';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nvar NativeAnimatedAPI = NativeAnimatedHelper.API;\n\n/**\n * Animated works by building a directed acyclic graph of dependencies\n * transparently when you render your Animated components.\n *\n * new Animated.Value(0)\n * .interpolate() .interpolate() new Animated.Value(1)\n * opacity translateY scale\n * style transform\n * View#234 style\n * View#123\n *\n * A) Top Down phase\n * When an Animated.Value is updated, we recursively go down through this\n * graph in order to find leaf nodes: the views that we flag as needing\n * an update.\n *\n * B) Bottom Up phase\n * When a view is flagged as needing an update, we recursively go back up\n * in order to build the new value that it needs. The reason why we need\n * this two-phases process is to deal with composite props such as\n * transform which can receive values from multiple parents.\n */\nfunction _flush(rootNode) {\n var animatedStyles = new Set();\n function findAnimatedStyles(node) {\n /* $FlowFixMe[prop-missing] (>=0.68.0 site=react_native_fb) This comment\n * suppresses an error found when Flow v0.68 was deployed. To see the error\n * delete this comment and run Flow. */\n if (typeof node.update === 'function') {\n animatedStyles.add(node);\n } else {\n node.__getChildren().forEach(findAnimatedStyles);\n }\n }\n findAnimatedStyles(rootNode);\n // $FlowFixMe[prop-missing]\n animatedStyles.forEach(animatedStyle => animatedStyle.update());\n}\n\n/**\n * Some operations are executed only on batch end, which is _mostly_ scheduled when\n * Animated component props change. For some of the changes which require immediate execution\n * (e.g. setValue), we create a separate batch in case none is scheduled.\n */\nfunction _executeAsAnimatedBatch(id, operation) {\n NativeAnimatedAPI.setWaitingForIdentifier(id);\n operation();\n NativeAnimatedAPI.unsetWaitingForIdentifier(id);\n}\n\n/**\n * Standard value for driving animations. One `Animated.Value` can drive\n * multiple properties in a synchronized fashion, but can only be driven by one\n * mechanism at a time. Using a new mechanism (e.g. starting a new animation,\n * or calling `setValue`) will stop any previous ones.\n *\n * See https://reactnative.dev/docs/animatedvalue\n */\nclass AnimatedValue extends AnimatedWithChildren {\n constructor(value, config) {\n super();\n if (typeof value !== 'number') {\n throw new Error('AnimatedValue: Attempting to set value to undefined');\n }\n this._startingValue = this._value = value;\n this._offset = 0;\n this._animation = null;\n if (config && config.useNativeDriver) {\n this.__makeNative();\n }\n }\n __detach() {\n if (this.__isNative) {\n NativeAnimatedAPI.getValue(this.__getNativeTag(), value => {\n this._value = value - this._offset;\n });\n }\n this.stopAnimation();\n super.__detach();\n }\n __getValue() {\n return this._value + this._offset;\n }\n\n /**\n * Directly set the value. This will stop any animations running on the value\n * and update all the bound properties.\n *\n * See https://reactnative.dev/docs/animatedvalue#setvalue\n */\n setValue(value) {\n if (this._animation) {\n this._animation.stop();\n this._animation = null;\n }\n this._updateValue(value, !this.__isNative /* don't perform a flush for natively driven values */);\n\n if (this.__isNative) {\n _executeAsAnimatedBatch(this.__getNativeTag().toString(), () => NativeAnimatedAPI.setAnimatedNodeValue(this.__getNativeTag(), value));\n }\n }\n\n /**\n * Sets an offset that is applied on top of whatever value is set, whether via\n * `setValue`, an animation, or `Animated.event`. Useful for compensating\n * things like the start of a pan gesture.\n *\n * See https://reactnative.dev/docs/animatedvalue#setoffset\n */\n setOffset(offset) {\n this._offset = offset;\n if (this.__isNative) {\n NativeAnimatedAPI.setAnimatedNodeOffset(this.__getNativeTag(), offset);\n }\n }\n\n /**\n * Merges the offset value into the base value and resets the offset to zero.\n * The final output of the value is unchanged.\n *\n * See https://reactnative.dev/docs/animatedvalue#flattenoffset\n */\n flattenOffset() {\n this._value += this._offset;\n this._offset = 0;\n if (this.__isNative) {\n NativeAnimatedAPI.flattenAnimatedNodeOffset(this.__getNativeTag());\n }\n }\n\n /**\n * Sets the offset value to the base value, and resets the base value to zero.\n * The final output of the value is unchanged.\n *\n * See https://reactnative.dev/docs/animatedvalue#extractoffset\n */\n extractOffset() {\n this._offset += this._value;\n this._value = 0;\n if (this.__isNative) {\n NativeAnimatedAPI.extractAnimatedNodeOffset(this.__getNativeTag());\n }\n }\n\n /**\n * Stops any running animation or tracking. `callback` is invoked with the\n * final value after stopping the animation, which is useful for updating\n * state to match the animation position with layout.\n *\n * See https://reactnative.dev/docs/animatedvalue#stopanimation\n */\n stopAnimation(callback) {\n this.stopTracking();\n this._animation && this._animation.stop();\n this._animation = null;\n if (callback) {\n if (this.__isNative) {\n NativeAnimatedAPI.getValue(this.__getNativeTag(), callback);\n } else {\n callback(this.__getValue());\n }\n }\n }\n\n /**\n * Stops any animation and resets the value to its original.\n *\n * See https://reactnative.dev/docs/animatedvalue#resetanimation\n */\n resetAnimation(callback) {\n this.stopAnimation(callback);\n this._value = this._startingValue;\n if (this.__isNative) {\n NativeAnimatedAPI.setAnimatedNodeValue(this.__getNativeTag(), this._startingValue);\n }\n }\n __onAnimatedValueUpdateReceived(value) {\n this._updateValue(value, false /*flush*/);\n }\n\n /**\n * Interpolates the value before updating the property, e.g. mapping 0-1 to\n * 0-10.\n */\n interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n\n /**\n * Typically only used internally, but could be used by a custom Animation\n * class.\n *\n * See https://reactnative.dev/docs/animatedvalue#animate\n */\n animate(animation, callback) {\n var handle = null;\n if (animation.__isInteraction) {\n handle = InteractionManager.createInteractionHandle();\n }\n var previousAnimation = this._animation;\n this._animation && this._animation.stop();\n this._animation = animation;\n animation.start(this._value, value => {\n // Natively driven animations will never call into that callback\n this._updateValue(value, true /* flush */);\n }, result => {\n this._animation = null;\n if (handle !== null) {\n InteractionManager.clearInteractionHandle(handle);\n }\n callback && callback(result);\n }, previousAnimation, this);\n }\n\n /**\n * Typically only used internally.\n */\n stopTracking() {\n this._tracking && this._tracking.__detach();\n this._tracking = null;\n }\n\n /**\n * Typically only used internally.\n */\n track(tracking) {\n this.stopTracking();\n this._tracking = tracking;\n // Make sure that the tracking animation starts executing\n this._tracking && this._tracking.update();\n }\n _updateValue(value, flush) {\n if (value === undefined) {\n throw new Error('AnimatedValue: Attempting to set value to undefined');\n }\n this._value = value;\n if (flush) {\n _flush(this);\n }\n super.__callListeners(this.__getValue());\n }\n __getNativeConfig() {\n return {\n type: 'value',\n value: this._value,\n offset: this._offset\n };\n }\n}\nexport default AnimatedValue;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport AnimatedValue from './nodes/AnimatedValue';\nimport NativeAnimatedHelper from './NativeAnimatedHelper';\nimport invariant from 'fbjs/lib/invariant';\nimport { shouldUseNativeDriver } from './NativeAnimatedHelper';\nvar __DEV__ = process.env.NODE_ENV !== 'production';\nexport function attachNativeEvent(viewRef, eventName, argMapping) {\n // Find animated values in `argMapping` and create an array representing their\n // key path inside the `nativeEvent` object. Ex.: ['contentOffset', 'x'].\n var eventMappings = [];\n var traverse = (value, path) => {\n if (value instanceof AnimatedValue) {\n value.__makeNative();\n eventMappings.push({\n nativeEventPath: path,\n animatedValueTag: value.__getNativeTag()\n });\n } else if (typeof value === 'object') {\n for (var _key in value) {\n traverse(value[_key], path.concat(_key));\n }\n }\n };\n invariant(argMapping[0] && argMapping[0].nativeEvent, 'Native driven events only support animated values contained inside `nativeEvent`.');\n\n // Assume that the event containing `nativeEvent` is always the first argument.\n traverse(argMapping[0].nativeEvent, []);\n if (viewRef != null) {\n eventMappings.forEach(mapping => {\n NativeAnimatedHelper.API.addAnimatedEventToView(viewRef, eventName, mapping);\n });\n }\n return {\n detach() {\n if (viewRef != null) {\n eventMappings.forEach(mapping => {\n NativeAnimatedHelper.API.removeAnimatedEventFromView(viewRef, eventName,\n // $FlowFixMe[incompatible-call]\n mapping.animatedValueTag);\n });\n }\n }\n };\n}\nfunction validateMapping(argMapping, args) {\n var validate = (recMapping, recEvt, key) => {\n if (recMapping instanceof AnimatedValue) {\n invariant(typeof recEvt === 'number', 'Bad mapping of event key ' + key + ', should be number but got ' + typeof recEvt);\n return;\n }\n if (typeof recEvt === 'number') {\n invariant(recMapping instanceof AnimatedValue, 'Bad mapping of type ' + typeof recMapping + ' for key ' + key + ', event value must map to AnimatedValue');\n return;\n }\n invariant(typeof recMapping === 'object', 'Bad mapping of type ' + typeof recMapping + ' for key ' + key);\n invariant(typeof recEvt === 'object', 'Bad event of type ' + typeof recEvt + ' for key ' + key);\n for (var mappingKey in recMapping) {\n validate(recMapping[mappingKey], recEvt[mappingKey], mappingKey);\n }\n };\n invariant(args.length >= argMapping.length, 'Event has less arguments than mapping');\n argMapping.forEach((mapping, idx) => {\n validate(mapping, args[idx], 'arg' + idx);\n });\n}\nexport class AnimatedEvent {\n constructor(argMapping, config) {\n this._listeners = [];\n this._argMapping = argMapping;\n if (config == null) {\n console.warn('Animated.event now requires a second argument for options');\n config = {\n useNativeDriver: false\n };\n }\n if (config.listener) {\n this.__addListener(config.listener);\n }\n this._callListeners = this._callListeners.bind(this);\n this._attachedEvent = null;\n this.__isNative = shouldUseNativeDriver(config);\n }\n __addListener(callback) {\n this._listeners.push(callback);\n }\n __removeListener(callback) {\n this._listeners = this._listeners.filter(listener => listener !== callback);\n }\n __attach(viewRef, eventName) {\n invariant(this.__isNative, 'Only native driven events need to be attached.');\n this._attachedEvent = attachNativeEvent(viewRef, eventName, this._argMapping);\n }\n __detach(viewTag, eventName) {\n invariant(this.__isNative, 'Only native driven events need to be detached.');\n this._attachedEvent && this._attachedEvent.detach();\n }\n __getHandler() {\n var _this = this;\n if (this.__isNative) {\n if (__DEV__) {\n var _validatedMapping = false;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key2 = 0; _key2 < _len; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (!_validatedMapping) {\n validateMapping(_this._argMapping, args);\n _validatedMapping = true;\n }\n _this._callListeners(...args);\n };\n } else {\n return this._callListeners;\n }\n }\n var validatedMapping = false;\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key3 = 0; _key3 < _len2; _key3++) {\n args[_key3] = arguments[_key3];\n }\n if (__DEV__ && !validatedMapping) {\n validateMapping(_this._argMapping, args);\n validatedMapping = true;\n }\n var traverse = (recMapping, recEvt, key) => {\n if (recMapping instanceof AnimatedValue) {\n if (typeof recEvt === 'number') {\n recMapping.setValue(recEvt);\n }\n } else if (typeof recMapping === 'object') {\n for (var mappingKey in recMapping) {\n /* $FlowFixMe(>=0.120.0) This comment suppresses an error found\n * when Flow v0.120 was deployed. To see the error, delete this\n * comment and run Flow. */\n traverse(recMapping[mappingKey], recEvt[mappingKey], mappingKey);\n }\n }\n };\n _this._argMapping.forEach((mapping, idx) => {\n traverse(mapping, args[idx], 'arg' + idx);\n });\n _this._callListeners(...args);\n };\n }\n _callListeners() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key4 = 0; _key4 < _len3; _key4++) {\n args[_key4] = arguments[_key4];\n }\n this._listeners.forEach(listener => listener(...args));\n }\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nclass AnimatedTransform extends AnimatedWithChildren {\n constructor(transforms) {\n super();\n this._transforms = transforms;\n }\n __makeNative() {\n this._transforms.forEach(transform => {\n for (var key in transform) {\n var value = transform[key];\n if (value instanceof AnimatedNode) {\n value.__makeNative();\n }\n }\n });\n super.__makeNative();\n }\n __getValue() {\n return this._transforms.map(transform => {\n var result = {};\n for (var key in transform) {\n var value = transform[key];\n if (value instanceof AnimatedNode) {\n result[key] = value.__getValue();\n } else {\n result[key] = value;\n }\n }\n return result;\n });\n }\n __getAnimatedValue() {\n return this._transforms.map(transform => {\n var result = {};\n for (var key in transform) {\n var value = transform[key];\n if (value instanceof AnimatedNode) {\n result[key] = value.__getAnimatedValue();\n } else {\n // All transform components needed to recompose matrix\n result[key] = value;\n }\n }\n return result;\n });\n }\n __attach() {\n this._transforms.forEach(transform => {\n for (var key in transform) {\n var value = transform[key];\n if (value instanceof AnimatedNode) {\n value.__addChild(this);\n }\n }\n });\n }\n __detach() {\n this._transforms.forEach(transform => {\n for (var key in transform) {\n var value = transform[key];\n if (value instanceof AnimatedNode) {\n value.__removeChild(this);\n }\n }\n });\n super.__detach();\n }\n __getNativeConfig() {\n var transConfigs = [];\n this._transforms.forEach(transform => {\n for (var key in transform) {\n var value = transform[key];\n if (value instanceof AnimatedNode) {\n transConfigs.push({\n type: 'animated',\n property: key,\n nodeTag: value.__getNativeTag()\n });\n } else {\n transConfigs.push({\n type: 'static',\n property: key,\n value: NativeAnimatedHelper.transformDataType(value)\n });\n }\n }\n });\n NativeAnimatedHelper.validateTransform(transConfigs);\n return {\n type: 'transform',\n transforms: transConfigs\n };\n }\n}\nexport default AnimatedTransform;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedTransform from './AnimatedTransform';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport StyleSheet from '../../../../exports/StyleSheet';\nvar flattenStyle = StyleSheet.flatten;\nfunction createAnimatedStyle(inputStyle) {\n var style = flattenStyle(inputStyle);\n var animatedStyles = {};\n for (var key in style) {\n var value = style[key];\n if (key === 'transform' && Array.isArray(value)) {\n animatedStyles[key] = new AnimatedTransform(value);\n } else if (value instanceof AnimatedNode) {\n animatedStyles[key] = value;\n } else if (value && !Array.isArray(value) && typeof value === 'object') {\n animatedStyles[key] = createAnimatedStyle(value);\n }\n }\n return animatedStyles;\n}\nclass AnimatedStyle extends AnimatedWithChildren {\n constructor(style) {\n super();\n this._inputStyle = style;\n this._style = createAnimatedStyle(style);\n }\n\n // Recursively get values for nested styles (like iOS's shadowOffset)\n _walkStyleAndGetValues(style) {\n var updatedStyle = {};\n for (var key in style) {\n var value = style[key];\n if (value instanceof AnimatedNode) {\n if (!value.__isNative) {\n // We cannot use value of natively driven nodes this way as the value we have access from\n // JS may not be up to date.\n updatedStyle[key] = value.__getValue();\n }\n } else if (value && !Array.isArray(value) && typeof value === 'object') {\n // Support animating nested values (for example: shadowOffset.height)\n updatedStyle[key] = this._walkStyleAndGetValues(value);\n } else {\n updatedStyle[key] = value;\n }\n }\n return updatedStyle;\n }\n __getValue() {\n return [this._inputStyle, this._walkStyleAndGetValues(this._style)];\n }\n\n // Recursively get animated values for nested styles (like iOS's shadowOffset)\n _walkStyleAndGetAnimatedValues(style) {\n var updatedStyle = {};\n for (var key in style) {\n var value = style[key];\n if (value instanceof AnimatedNode) {\n updatedStyle[key] = value.__getAnimatedValue();\n } else if (value && !Array.isArray(value) && typeof value === 'object') {\n // Support animating nested values (for example: shadowOffset.height)\n updatedStyle[key] = this._walkStyleAndGetAnimatedValues(value);\n }\n }\n return updatedStyle;\n }\n __getAnimatedValue() {\n return this._walkStyleAndGetAnimatedValues(this._style);\n }\n __attach() {\n for (var key in this._style) {\n var value = this._style[key];\n if (value instanceof AnimatedNode) {\n value.__addChild(this);\n }\n }\n }\n __detach() {\n for (var key in this._style) {\n var value = this._style[key];\n if (value instanceof AnimatedNode) {\n value.__removeChild(this);\n }\n }\n super.__detach();\n }\n __makeNative() {\n for (var key in this._style) {\n var value = this._style[key];\n if (value instanceof AnimatedNode) {\n value.__makeNative();\n }\n }\n super.__makeNative();\n }\n __getNativeConfig() {\n var styleConfig = {};\n for (var styleKey in this._style) {\n if (this._style[styleKey] instanceof AnimatedNode) {\n var style = this._style[styleKey];\n style.__makeNative();\n styleConfig[styleKey] = style.__getNativeTag();\n }\n }\n NativeAnimatedHelper.validateStyles(styleConfig);\n return {\n type: 'style',\n style: styleConfig\n };\n }\n}\nexport default AnimatedStyle;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport { AnimatedEvent } from '../AnimatedEvent';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedStyle from './AnimatedStyle';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport invariant from 'fbjs/lib/invariant';\nclass AnimatedProps extends AnimatedNode {\n constructor(props, callback) {\n super();\n if (props.style) {\n props = _objectSpread(_objectSpread({}, props), {}, {\n style: new AnimatedStyle(props.style)\n });\n }\n this._props = props;\n this._callback = callback;\n this.__attach();\n }\n __getValue() {\n var props = {};\n for (var key in this._props) {\n var value = this._props[key];\n if (value instanceof AnimatedNode) {\n if (!value.__isNative || value instanceof AnimatedStyle) {\n // We cannot use value of natively driven nodes this way as the value we have access from\n // JS may not be up to date.\n props[key] = value.__getValue();\n }\n } else if (value instanceof AnimatedEvent) {\n props[key] = value.__getHandler();\n } else {\n props[key] = value;\n }\n }\n return props;\n }\n __getAnimatedValue() {\n var props = {};\n for (var key in this._props) {\n var value = this._props[key];\n if (value instanceof AnimatedNode) {\n props[key] = value.__getAnimatedValue();\n }\n }\n return props;\n }\n __attach() {\n for (var key in this._props) {\n var value = this._props[key];\n if (value instanceof AnimatedNode) {\n value.__addChild(this);\n }\n }\n }\n __detach() {\n if (this.__isNative && this._animatedView) {\n this.__disconnectAnimatedView();\n }\n for (var key in this._props) {\n var value = this._props[key];\n if (value instanceof AnimatedNode) {\n value.__removeChild(this);\n }\n }\n super.__detach();\n }\n update() {\n this._callback();\n }\n __makeNative() {\n if (!this.__isNative) {\n this.__isNative = true;\n for (var key in this._props) {\n var value = this._props[key];\n if (value instanceof AnimatedNode) {\n value.__makeNative();\n }\n }\n if (this._animatedView) {\n this.__connectAnimatedView();\n }\n }\n }\n setNativeView(animatedView) {\n if (this._animatedView === animatedView) {\n return;\n }\n this._animatedView = animatedView;\n if (this.__isNative) {\n this.__connectAnimatedView();\n }\n }\n __connectAnimatedView() {\n invariant(this.__isNative, 'Expected node to be marked as \"native\"');\n var nativeViewTag = this._animatedView;\n invariant(nativeViewTag != null, 'Unable to locate attached view in the native tree');\n NativeAnimatedHelper.API.connectAnimatedNodeToView(this.__getNativeTag(), nativeViewTag);\n }\n __disconnectAnimatedView() {\n invariant(this.__isNative, 'Expected node to be marked as \"native\"');\n var nativeViewTag = this._animatedView;\n invariant(nativeViewTag != null, 'Unable to locate attached view in the native tree');\n NativeAnimatedHelper.API.disconnectAnimatedNodeFromView(this.__getNativeTag(), nativeViewTag);\n }\n __restoreDefaultValues() {\n // When using the native driver, view properties need to be restored to\n // their default values manually since react no longer tracks them. This\n // is needed to handle cases where a prop driven by native animated is removed\n // after having been changed natively by an animation.\n if (this.__isNative) {\n NativeAnimatedHelper.API.restoreDefaultValues(this.__getNativeTag());\n }\n }\n __getNativeConfig() {\n var propsConfig = {};\n for (var propKey in this._props) {\n var value = this._props[propKey];\n if (value instanceof AnimatedNode) {\n value.__makeNative();\n propsConfig[propKey] = value.__getNativeTag();\n }\n }\n return {\n type: 'props',\n props: propsConfig\n };\n }\n}\nexport default AnimatedProps;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport AnimatedProps from './nodes/AnimatedProps';\nimport { AnimatedEvent } from './AnimatedEvent';\nimport useRefEffect from '../Utilities/useRefEffect';\nimport NativeAnimatedHelper from './NativeAnimatedHelper';\nimport { useCallback, useEffect, useMemo, useReducer, useRef } from 'react';\nimport useLayoutEffect from '../../../modules/useLayoutEffect';\nexport default function useAnimatedProps(props) {\n var _useReducer = useReducer(count => count + 1, 0),\n scheduleUpdate = _useReducer[1];\n var onUpdateRef = useRef(null);\n\n // TODO: Only invalidate `node` if animated props or `style` change. In the\n // previous implementation, we permitted `style` to override props with the\n // same name property name as styles, so we can probably continue doing that.\n // The ordering of other props *should* not matter.\n var node = useMemo(() => new AnimatedProps(props, () => onUpdateRef.current == null ? void 0 : onUpdateRef.current()), [props]);\n useAnimatedPropsLifecycle(node);\n\n // TODO: This \"effect\" does three things:\n //\n // 1) Call `setNativeView`.\n // 2) Update `onUpdateRef`.\n // 3) Update listeners for `AnimatedEvent` props.\n //\n // Ideally, each of these would be separat \"effects\" so that they are not\n // unnecessarily re-run when irrelevant dependencies change. For example, we\n // should be able to hoist all `AnimatedEvent` props and only do #3 if either\n // the `AnimatedEvent` props change or `instance` changes.\n //\n // But there is no way to transparently compose three separate callback refs,\n // so we just combine them all into one for now.\n var refEffect = useCallback(instance => {\n // NOTE: This may be called more often than necessary (e.g. when `props`\n // changes), but `setNativeView` already optimizes for that.\n node.setNativeView(instance);\n\n // NOTE: This callback is only used by the JavaScript animation driver.\n onUpdateRef.current = () => {\n // Schedule an update for this component to update `reducedProps`,\n // but do not compute it immediately. If a parent also updated, we\n // need to merge those new props in before updating.\n scheduleUpdate();\n };\n var target = getEventTarget(instance);\n var events = [];\n for (var propName in props) {\n var propValue = props[propName];\n if (propValue instanceof AnimatedEvent && propValue.__isNative) {\n propValue.__attach(target, propName);\n events.push([propName, propValue]);\n }\n }\n return () => {\n onUpdateRef.current = null;\n for (var _i = 0, _events = events; _i < _events.length; _i++) {\n var _events$_i = _events[_i],\n _propName = _events$_i[0],\n _propValue = _events$_i[1];\n _propValue.__detach(target, _propName);\n }\n };\n }, [props, node]);\n var callbackRef = useRefEffect(refEffect);\n return [reduceAnimatedProps(node), callbackRef];\n}\nfunction reduceAnimatedProps(node) {\n // Force `collapsable` to be false so that the native view is not flattened.\n // Flattened views cannot be accurately referenced by the native driver.\n return _objectSpread(_objectSpread({}, node.__getValue()), {}, {\n collapsable: false\n });\n}\n\n/**\n * Manages the lifecycle of the supplied `AnimatedProps` by invoking `__attach`\n * and `__detach`. However, this is more complicated because `AnimatedProps`\n * uses reference counting to determine when to recursively detach its children\n * nodes. So in order to optimize this, we avoid detaching until the next attach\n * unless we are unmounting.\n */\nfunction useAnimatedPropsLifecycle(node) {\n var prevNodeRef = useRef(null);\n var isUnmountingRef = useRef(false);\n useEffect(() => {\n // It is ok for multiple components to call `flushQueue` because it noops\n // if the queue is empty. When multiple animated components are mounted at\n // the same time. Only first component flushes the queue and the others will noop.\n NativeAnimatedHelper.API.flushQueue();\n });\n useLayoutEffect(() => {\n isUnmountingRef.current = false;\n return () => {\n isUnmountingRef.current = true;\n };\n }, []);\n useLayoutEffect(() => {\n node.__attach();\n if (prevNodeRef.current != null) {\n var prevNode = prevNodeRef.current;\n // TODO: Stop restoring default values (unless `reset` is called).\n prevNode.__restoreDefaultValues();\n prevNode.__detach();\n prevNodeRef.current = null;\n }\n return () => {\n if (isUnmountingRef.current) {\n // NOTE: Do not restore default values on unmount, see D18197735.\n node.__detach();\n } else {\n prevNodeRef.current = node;\n }\n };\n }, [node]);\n}\nfunction getEventTarget(instance) {\n return typeof instance === 'object' && typeof (instance == null ? void 0 : instance.getScrollableNode) === 'function' ?\n // $FlowFixMe[incompatible-use] - Legacy instance assumptions.\n instance.getScrollableNode() : instance;\n}\n\n// $FlowFixMe[unclear-type] - Legacy instance assumptions.\nfunction isFabricInstance(instance) {\n var _instance$getScrollRe;\n return hasFabricHandle(instance) ||\n // Some components have a setNativeProps function but aren't a host component\n // such as lists like FlatList and SectionList. These should also use\n // forceUpdate in Fabric since setNativeProps doesn't exist on the underlying\n // host component. This crazy hack is essentially special casing those lists and\n // ScrollView itself to use forceUpdate in Fabric.\n // If these components end up using forwardRef then these hacks can go away\n // as instance would actually be the underlying host component and the above check\n // would be sufficient.\n hasFabricHandle(instance == null ? void 0 : instance.getNativeScrollRef == null ? void 0 : instance.getNativeScrollRef()) || hasFabricHandle(instance == null ? void 0 : instance.getScrollResponder == null ? void 0 : (_instance$getScrollRe = instance.getScrollResponder()) == null ? void 0 : _instance$getScrollRe.getNativeScrollRef == null ? void 0 : _instance$getScrollRe.getNativeScrollRef());\n}\n\n// $FlowFixMe[unclear-type] - Legacy instance assumptions.\nfunction hasFabricHandle(instance) {\n var _instance$_internalIn, _instance$_internalIn2;\n // eslint-disable-next-line dot-notation\n return (instance == null ? void 0 : (_instance$_internalIn = instance['_internalInstanceHandle']) == null ? void 0 : (_instance$_internalIn2 = _instance$_internalIn.stateNode) == null ? void 0 : _instance$_internalIn2.canonical) != null;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\nimport { useCallback, useRef } from 'react';\n/**\n * Constructs a callback ref that provides similar semantics as `useEffect`. The\n * supplied `effect` callback will be called with non-null component instances.\n * The `effect` callback can also optionally return a cleanup function.\n *\n * When a component is updated or unmounted, the cleanup function is called. The\n * `effect` callback will then be called again, if applicable.\n *\n * When a new `effect` callback is supplied, the previously returned cleanup\n * function will be called before the new `effect` callback is called with the\n * same instance.\n *\n * WARNING: The `effect` callback should be stable (e.g. using `useCallback`).\n */\nexport default function useRefEffect(effect) {\n var cleanupRef = useRef(undefined);\n return useCallback(instance => {\n if (cleanupRef.current) {\n cleanupRef.current();\n cleanupRef.current = undefined;\n }\n if (instance != null) {\n cleanupRef.current = effect(instance);\n }\n }, [effect]);\n}","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"style\"];\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\nimport useAnimatedProps from './useAnimatedProps';\nimport useMergeRefs from '../Utilities/useMergeRefs';\nimport StyleSheet from '../../../exports/StyleSheet';\nimport View from '../../../exports/View';\nimport * as React from 'react';\n/**\n * Experimental implementation of `createAnimatedComponent` that is intended to\n * be compatible with concurrent rendering.\n */\nexport default function createAnimatedComponent(Component) {\n return /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var _useAnimatedProps = useAnimatedProps(props),\n reducedProps = _useAnimatedProps[0],\n callbackRef = _useAnimatedProps[1];\n var ref = useMergeRefs(callbackRef, forwardedRef);\n\n // Some components require explicit passthrough values for animation\n // to work properly. For example, if an animated component is\n // transformed and Pressable, onPress will not work after transform\n // without these passthrough values.\n // $FlowFixMe[prop-missing]\n var passthroughAnimatedPropExplicitValues = reducedProps.passthroughAnimatedPropExplicitValues,\n style = reducedProps.style;\n var _ref = passthroughAnimatedPropExplicitValues !== null && passthroughAnimatedPropExplicitValues !== void 0 ? passthroughAnimatedPropExplicitValues : {},\n passthroughStyle = _ref.style,\n passthroughProps = _objectWithoutPropertiesLoose(_ref, _excluded);\n var mergedStyle = [style, passthroughStyle];\n return /*#__PURE__*/React.createElement(Component, _extends({}, reducedProps, passthroughProps, {\n style: mergedStyle,\n ref: ref\n }));\n });\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\nimport { useCallback } from 'react';\n/**\n * Constructs a new ref that forwards new values to each of the given refs. The\n * given refs will always be invoked in the order that they are supplied.\n *\n * WARNING: A known problem of merging refs using this approach is that if any\n * of the given refs change, the returned callback ref will also be changed. If\n * the returned callback ref is supplied as a `ref` to a React element, this may\n * lead to problems with the given refs being invoked more times than desired.\n */\nexport default function useMergeRefs() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n return useCallback(current => {\n for (var _i = 0, _refs = refs; _i < _refs.length; _i++) {\n var ref = _refs[_i];\n if (ref != null) {\n if (typeof ref === 'function') {\n ref(current);\n } else {\n ref.current = current;\n }\n }\n }\n }, [...refs] // eslint-disable-line react-hooks/exhaustive-deps\n );\n}","import _extends from \"@babel/runtime/helpers/extends\";\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\nimport * as React from 'react';\nimport FlatList from '../../../../exports/FlatList';\nimport createAnimatedComponent from '../createAnimatedComponent';\n/**\n * @see https://github.com/facebook/react-native/commit/b8c8562\n */\nvar FlatListWithEventThrottle = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(FlatList, _extends({\n scrollEventThrottle: 0.0001\n}, props, {\n ref: ref\n})));\nexport default createAnimatedComponent(FlatListWithEventThrottle);","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\nimport * as React from 'react';\nimport Image from '../../../../exports/Image';\nimport createAnimatedComponent from '../createAnimatedComponent';\nexport default createAnimatedComponent(Image);","import _extends from \"@babel/runtime/helpers/extends\";\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\nimport * as React from 'react';\nimport ScrollView from '../../../../exports/ScrollView';\nimport createAnimatedComponent from '../createAnimatedComponent';\n/**\n * @see https://github.com/facebook/react-native/commit/b8c8562\n */\nvar ScrollViewWithEventThrottle = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(ScrollView, _extends({\n scrollEventThrottle: 0.0001\n}, props, {\n ref: ref\n})));\nexport default createAnimatedComponent(ScrollViewWithEventThrottle);","import _extends from \"@babel/runtime/helpers/extends\";\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\nimport * as React from 'react';\nimport SectionList from '../../../../exports/SectionList';\nimport createAnimatedComponent from '../createAnimatedComponent';\n/**\n * @see https://github.com/facebook/react-native/commit/b8c8562\n */\nvar SectionListWithEventThrottle = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SectionList, _extends({\n scrollEventThrottle: 0.0001\n}, props, {\n ref: ref\n})));\nexport default createAnimatedComponent(SectionListWithEventThrottle);","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\nimport * as React from 'react';\nimport Text from '../../../../exports/Text';\nimport createAnimatedComponent from '../createAnimatedComponent';\nexport default createAnimatedComponent(Text);","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\nimport * as React from 'react';\nimport View from '../../../../exports/View';\nimport createAnimatedComponent from '../createAnimatedComponent';\nexport default createAnimatedComponent(View);","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nclass AnimatedAddition extends AnimatedWithChildren {\n constructor(a, b) {\n super();\n this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n }\n __makeNative(platformConfig) {\n this._a.__makeNative(platformConfig);\n this._b.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n __getValue() {\n return this._a.__getValue() + this._b.__getValue();\n }\n interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n __attach() {\n this._a.__addChild(this);\n this._b.__addChild(this);\n }\n __detach() {\n this._a.__removeChild(this);\n this._b.__removeChild(this);\n super.__detach();\n }\n __getNativeConfig() {\n return {\n type: 'addition',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()]\n };\n }\n}\nexport default AnimatedAddition;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nclass AnimatedDiffClamp extends AnimatedWithChildren {\n constructor(a, min, max) {\n super();\n this._a = a;\n this._min = min;\n this._max = max;\n this._value = this._lastValue = this._a.__getValue();\n }\n __makeNative(platformConfig) {\n this._a.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n __getValue() {\n var value = this._a.__getValue();\n var diff = value - this._lastValue;\n this._lastValue = value;\n this._value = Math.min(Math.max(this._value + diff, this._min), this._max);\n return this._value;\n }\n __attach() {\n this._a.__addChild(this);\n }\n __detach() {\n this._a.__removeChild(this);\n super.__detach();\n }\n __getNativeConfig() {\n return {\n type: 'diffclamp',\n input: this._a.__getNativeTag(),\n min: this._min,\n max: this._max\n };\n }\n}\nexport default AnimatedDiffClamp;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nclass AnimatedDivision extends AnimatedWithChildren {\n constructor(a, b) {\n super();\n this._warnedAboutDivideByZero = false;\n if (b === 0 || b instanceof AnimatedNode && b.__getValue() === 0) {\n console.error('Detected potential division by zero in AnimatedDivision');\n }\n this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n }\n __makeNative(platformConfig) {\n this._a.__makeNative(platformConfig);\n this._b.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n __getValue() {\n var a = this._a.__getValue();\n var b = this._b.__getValue();\n if (b === 0) {\n // Prevent spamming the console/LogBox\n if (!this._warnedAboutDivideByZero) {\n console.error('Detected division by zero in AnimatedDivision');\n this._warnedAboutDivideByZero = true;\n }\n // Passing infinity/NaN to Fabric will cause a native crash\n return 0;\n }\n this._warnedAboutDivideByZero = false;\n return a / b;\n }\n interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n __attach() {\n this._a.__addChild(this);\n this._b.__addChild(this);\n }\n __detach() {\n this._a.__removeChild(this);\n this._b.__removeChild(this);\n super.__detach();\n }\n __getNativeConfig() {\n return {\n type: 'division',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()]\n };\n }\n}\nexport default AnimatedDivision;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nclass AnimatedModulo extends AnimatedWithChildren {\n constructor(a, modulus) {\n super();\n this._a = a;\n this._modulus = modulus;\n }\n __makeNative(platformConfig) {\n this._a.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n __getValue() {\n return (this._a.__getValue() % this._modulus + this._modulus) % this._modulus;\n }\n interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n __attach() {\n this._a.__addChild(this);\n }\n __detach() {\n this._a.__removeChild(this);\n super.__detach();\n }\n __getNativeConfig() {\n return {\n type: 'modulus',\n input: this._a.__getNativeTag(),\n modulus: this._modulus\n };\n }\n}\nexport default AnimatedModulo;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nclass AnimatedMultiplication extends AnimatedWithChildren {\n constructor(a, b) {\n super();\n this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n }\n __makeNative(platformConfig) {\n this._a.__makeNative(platformConfig);\n this._b.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n __getValue() {\n return this._a.__getValue() * this._b.__getValue();\n }\n interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n __attach() {\n this._a.__addChild(this);\n this._b.__addChild(this);\n }\n __detach() {\n this._a.__removeChild(this);\n this._b.__removeChild(this);\n super.__detach();\n }\n __getNativeConfig() {\n return {\n type: 'multiplication',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()]\n };\n }\n}\nexport default AnimatedMultiplication;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nclass AnimatedSubtraction extends AnimatedWithChildren {\n constructor(a, b) {\n super();\n this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n }\n __makeNative(platformConfig) {\n this._a.__makeNative(platformConfig);\n this._b.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n __getValue() {\n return this._a.__getValue() - this._b.__getValue();\n }\n interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n __attach() {\n this._a.__addChild(this);\n this._b.__addChild(this);\n }\n __detach() {\n this._a.__removeChild(this);\n this._b.__removeChild(this);\n super.__detach();\n }\n __getNativeConfig() {\n return {\n type: 'subtraction',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()]\n };\n }\n}\nexport default AnimatedSubtraction;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedNode from './AnimatedNode';\nimport { generateNewAnimationId, shouldUseNativeDriver } from '../NativeAnimatedHelper';\nclass AnimatedTracking extends AnimatedNode {\n constructor(value, parent, animationClass, animationConfig, callback) {\n super();\n this._value = value;\n this._parent = parent;\n this._animationClass = animationClass;\n this._animationConfig = animationConfig;\n this._useNativeDriver = shouldUseNativeDriver(animationConfig);\n this._callback = callback;\n this.__attach();\n }\n __makeNative() {\n this.__isNative = true;\n this._parent.__makeNative();\n super.__makeNative();\n this._value.__makeNative();\n }\n __getValue() {\n return this._parent.__getValue();\n }\n __attach() {\n this._parent.__addChild(this);\n if (this._useNativeDriver) {\n // when the tracking starts we need to convert this node to a \"native node\"\n // so that the parent node will be made \"native\" too. This is necessary as\n // if we don't do this `update` method will get called. At that point it\n // may be too late as it would mean the JS driver has already started\n // updating node values\n this.__makeNative();\n }\n }\n __detach() {\n this._parent.__removeChild(this);\n super.__detach();\n }\n update() {\n this._value.animate(new this._animationClass(_objectSpread(_objectSpread({}, this._animationConfig), {}, {\n toValue: this._animationConfig.toValue.__getValue()\n })), this._callback);\n }\n __getNativeConfig() {\n var animation = new this._animationClass(_objectSpread(_objectSpread({}, this._animationConfig), {}, {\n // remove toValue from the config as it's a ref to Animated.Value\n toValue: undefined\n }));\n var animationConfig = animation.__getNativeAnimationConfig();\n return {\n type: 'tracking',\n animationId: generateNewAnimationId(),\n animationConfig,\n toValue: this._parent.__getNativeTag(),\n value: this._value.__getNativeTag()\n };\n }\n}\nexport default AnimatedTracking;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport invariant from 'fbjs/lib/invariant';\nvar _uniqueId = 1;\n\n/**\n * 2D Value for driving 2D animations, such as pan gestures. Almost identical\n * API to normal `Animated.Value`, but multiplexed.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html\n */\nclass AnimatedValueXY extends AnimatedWithChildren {\n constructor(valueIn) {\n super();\n var value = valueIn || {\n x: 0,\n y: 0\n }; // fixme: shouldn't need `: any`\n if (typeof value.x === 'number' && typeof value.y === 'number') {\n this.x = new AnimatedValue(value.x);\n this.y = new AnimatedValue(value.y);\n } else {\n invariant(value.x instanceof AnimatedValue && value.y instanceof AnimatedValue, 'AnimatedValueXY must be initialized with an object of numbers or ' + 'AnimatedValues.');\n this.x = value.x;\n this.y = value.y;\n }\n this._listeners = {};\n }\n\n /**\n * Directly set the value. This will stop any animations running on the value\n * and update all the bound properties.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#setvalue\n */\n setValue(value) {\n this.x.setValue(value.x);\n this.y.setValue(value.y);\n }\n\n /**\n * Sets an offset that is applied on top of whatever value is set, whether\n * via `setValue`, an animation, or `Animated.event`. Useful for compensating\n * things like the start of a pan gesture.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#setoffset\n */\n setOffset(offset) {\n this.x.setOffset(offset.x);\n this.y.setOffset(offset.y);\n }\n\n /**\n * Merges the offset value into the base value and resets the offset to zero.\n * The final output of the value is unchanged.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#flattenoffset\n */\n flattenOffset() {\n this.x.flattenOffset();\n this.y.flattenOffset();\n }\n\n /**\n * Sets the offset value to the base value, and resets the base value to\n * zero. The final output of the value is unchanged.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#extractoffset\n */\n extractOffset() {\n this.x.extractOffset();\n this.y.extractOffset();\n }\n __getValue() {\n return {\n x: this.x.__getValue(),\n y: this.y.__getValue()\n };\n }\n\n /**\n * Stops any animation and resets the value to its original.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#resetanimation\n */\n resetAnimation(callback) {\n this.x.resetAnimation();\n this.y.resetAnimation();\n callback && callback(this.__getValue());\n }\n\n /**\n * Stops any running animation or tracking. `callback` is invoked with the\n * final value after stopping the animation, which is useful for updating\n * state to match the animation position with layout.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#stopanimation\n */\n stopAnimation(callback) {\n this.x.stopAnimation();\n this.y.stopAnimation();\n callback && callback(this.__getValue());\n }\n\n /**\n * Adds an asynchronous listener to the value so you can observe updates from\n * animations. This is useful because there is no way to synchronously read\n * the value because it might be driven natively.\n *\n * Returns a string that serves as an identifier for the listener.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#addlistener\n */\n addListener(callback) {\n var id = String(_uniqueId++);\n var jointCallback = _ref => {\n var number = _ref.value;\n callback(this.__getValue());\n };\n this._listeners[id] = {\n x: this.x.addListener(jointCallback),\n y: this.y.addListener(jointCallback)\n };\n return id;\n }\n\n /**\n * Unregister a listener. The `id` param shall match the identifier\n * previously returned by `addListener()`.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#removelistener\n */\n removeListener(id) {\n this.x.removeListener(this._listeners[id].x);\n this.y.removeListener(this._listeners[id].y);\n delete this._listeners[id];\n }\n\n /**\n * Remove all registered listeners.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#removealllisteners\n */\n removeAllListeners() {\n this.x.removeAllListeners();\n this.y.removeAllListeners();\n this._listeners = {};\n }\n\n /**\n * Converts `{x, y}` into `{left, top}` for use in style.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#getlayout\n */\n getLayout() {\n return {\n left: this.x,\n top: this.y\n };\n }\n\n /**\n * Converts `{x, y}` into a useable translation transform.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#gettranslatetransform\n */\n getTranslateTransform() {\n return [{\n translateX: this.x\n }, {\n translateY: this.y\n }];\n }\n}\nexport default AnimatedValueXY;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nvar startNativeAnimationNextId = 1;\n\n// Important note: start() and stop() will only be called at most once.\n// Once an animation has been stopped or finished its course, it will\n// not be reused.\nclass Animation {\n start(fromValue, onUpdate, onEnd, previousAnimation, animatedValue) {}\n stop() {\n if (this.__nativeId) {\n NativeAnimatedHelper.API.stopAnimation(this.__nativeId);\n }\n }\n __getNativeAnimationConfig() {\n // Subclasses that have corresponding animation implementation done in native\n // should override this method\n throw new Error('This animation type cannot be offloaded to native');\n }\n // Helper function for subclasses to make sure onEnd is only called once.\n __debouncedOnEnd(result) {\n var onEnd = this.__onEnd;\n this.__onEnd = null;\n onEnd && onEnd(result);\n }\n __startNativeAnimation(animatedValue) {\n var startNativeAnimationWaitId = startNativeAnimationNextId + \":startAnimation\";\n startNativeAnimationNextId += 1;\n NativeAnimatedHelper.API.setWaitingForIdentifier(startNativeAnimationWaitId);\n try {\n var config = this.__getNativeAnimationConfig();\n animatedValue.__makeNative(config.platformConfig);\n this.__nativeId = NativeAnimatedHelper.generateNewAnimationId();\n NativeAnimatedHelper.API.startAnimatingNode(this.__nativeId, animatedValue.__getNativeTag(), config,\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this.__debouncedOnEnd.bind(this));\n } catch (e) {\n throw e;\n } finally {\n NativeAnimatedHelper.API.unsetWaitingForIdentifier(startNativeAnimationWaitId);\n }\n }\n}\nexport default Animation;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport Animation from './Animation';\nimport { shouldUseNativeDriver } from '../NativeAnimatedHelper';\nclass DecayAnimation extends Animation {\n constructor(config) {\n var _config$deceleration, _config$isInteraction, _config$iterations;\n super();\n this._deceleration = (_config$deceleration = config.deceleration) !== null && _config$deceleration !== void 0 ? _config$deceleration : 0.998;\n this._velocity = config.velocity;\n this._useNativeDriver = shouldUseNativeDriver(config);\n this.__isInteraction = (_config$isInteraction = config.isInteraction) !== null && _config$isInteraction !== void 0 ? _config$isInteraction : !this._useNativeDriver;\n this.__iterations = (_config$iterations = config.iterations) !== null && _config$iterations !== void 0 ? _config$iterations : 1;\n }\n __getNativeAnimationConfig() {\n return {\n type: 'decay',\n deceleration: this._deceleration,\n velocity: this._velocity,\n iterations: this.__iterations\n };\n }\n start(fromValue, onUpdate, onEnd, previousAnimation, animatedValue) {\n this.__active = true;\n this._lastValue = fromValue;\n this._fromValue = fromValue;\n this._onUpdate = onUpdate;\n this.__onEnd = onEnd;\n this._startTime = Date.now();\n if (this._useNativeDriver) {\n this.__startNativeAnimation(animatedValue);\n } else {\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n }\n }\n onUpdate() {\n var now = Date.now();\n var value = this._fromValue + this._velocity / (1 - this._deceleration) * (1 - Math.exp(-(1 - this._deceleration) * (now - this._startTime)));\n this._onUpdate(value);\n if (Math.abs(this._lastValue - value) < 0.1) {\n this.__debouncedOnEnd({\n finished: true\n });\n return;\n }\n this._lastValue = value;\n if (this.__active) {\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n }\n }\n stop() {\n super.stop();\n this.__active = false;\n global.cancelAnimationFrame(this._animationFrame);\n this.__debouncedOnEnd({\n finished: false\n });\n }\n}\nexport default DecayAnimation;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n\n'use strict';\n\nfunction stiffnessFromOrigamiValue(oValue) {\n return (oValue - 30) * 3.62 + 194;\n}\nfunction dampingFromOrigamiValue(oValue) {\n return (oValue - 8) * 3 + 25;\n}\nfunction fromOrigamiTensionAndFriction(tension, friction) {\n return {\n stiffness: stiffnessFromOrigamiValue(tension),\n damping: dampingFromOrigamiValue(friction)\n };\n}\nfunction fromBouncinessAndSpeed(bounciness, speed) {\n function normalize(value, startValue, endValue) {\n return (value - startValue) / (endValue - startValue);\n }\n function projectNormal(n, start, end) {\n return start + n * (end - start);\n }\n function linearInterpolation(t, start, end) {\n return t * end + (1 - t) * start;\n }\n function quadraticOutInterpolation(t, start, end) {\n return linearInterpolation(2 * t - t * t, start, end);\n }\n function b3Friction1(x) {\n return 0.0007 * Math.pow(x, 3) - 0.031 * Math.pow(x, 2) + 0.64 * x + 1.28;\n }\n function b3Friction2(x) {\n return 0.000044 * Math.pow(x, 3) - 0.006 * Math.pow(x, 2) + 0.36 * x + 2;\n }\n function b3Friction3(x) {\n return 0.00000045 * Math.pow(x, 3) - 0.000332 * Math.pow(x, 2) + 0.1078 * x + 5.84;\n }\n function b3Nobounce(tension) {\n if (tension <= 18) {\n return b3Friction1(tension);\n } else if (tension > 18 && tension <= 44) {\n return b3Friction2(tension);\n } else {\n return b3Friction3(tension);\n }\n }\n var b = normalize(bounciness / 1.7, 0, 20);\n b = projectNormal(b, 0, 0.8);\n var s = normalize(speed / 1.7, 0, 20);\n var bouncyTension = projectNormal(s, 0.5, 200);\n var bouncyFriction = quadraticOutInterpolation(b, b3Nobounce(bouncyTension), 0.01);\n return {\n stiffness: stiffnessFromOrigamiValue(bouncyTension),\n damping: dampingFromOrigamiValue(bouncyFriction)\n };\n}\nexport default {\n fromOrigamiTensionAndFriction,\n fromBouncinessAndSpeed\n};","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport Animation from './Animation';\nimport SpringConfig from '../SpringConfig';\nimport invariant from 'fbjs/lib/invariant';\nimport { shouldUseNativeDriver } from '../NativeAnimatedHelper';\nimport AnimatedColor from '../nodes/AnimatedColor';\nclass SpringAnimation extends Animation {\n constructor(config) {\n var _config$overshootClam, _config$restDisplacem, _config$restSpeedThre, _config$velocity, _config$velocity2, _config$delay, _config$isInteraction, _config$iterations;\n super();\n this._overshootClamping = (_config$overshootClam = config.overshootClamping) !== null && _config$overshootClam !== void 0 ? _config$overshootClam : false;\n this._restDisplacementThreshold = (_config$restDisplacem = config.restDisplacementThreshold) !== null && _config$restDisplacem !== void 0 ? _config$restDisplacem : 0.001;\n this._restSpeedThreshold = (_config$restSpeedThre = config.restSpeedThreshold) !== null && _config$restSpeedThre !== void 0 ? _config$restSpeedThre : 0.001;\n this._initialVelocity = (_config$velocity = config.velocity) !== null && _config$velocity !== void 0 ? _config$velocity : 0;\n this._lastVelocity = (_config$velocity2 = config.velocity) !== null && _config$velocity2 !== void 0 ? _config$velocity2 : 0;\n this._toValue = config.toValue;\n this._delay = (_config$delay = config.delay) !== null && _config$delay !== void 0 ? _config$delay : 0;\n this._useNativeDriver = shouldUseNativeDriver(config);\n this._platformConfig = config.platformConfig;\n this.__isInteraction = (_config$isInteraction = config.isInteraction) !== null && _config$isInteraction !== void 0 ? _config$isInteraction : !this._useNativeDriver;\n this.__iterations = (_config$iterations = config.iterations) !== null && _config$iterations !== void 0 ? _config$iterations : 1;\n if (config.stiffness !== undefined || config.damping !== undefined || config.mass !== undefined) {\n var _config$stiffness, _config$damping, _config$mass;\n invariant(config.bounciness === undefined && config.speed === undefined && config.tension === undefined && config.friction === undefined, 'You can define one of bounciness/speed, tension/friction, or stiffness/damping/mass, but not more than one');\n this._stiffness = (_config$stiffness = config.stiffness) !== null && _config$stiffness !== void 0 ? _config$stiffness : 100;\n this._damping = (_config$damping = config.damping) !== null && _config$damping !== void 0 ? _config$damping : 10;\n this._mass = (_config$mass = config.mass) !== null && _config$mass !== void 0 ? _config$mass : 1;\n } else if (config.bounciness !== undefined || config.speed !== undefined) {\n var _config$bounciness, _config$speed;\n // Convert the origami bounciness/speed values to stiffness/damping\n // We assume mass is 1.\n invariant(config.tension === undefined && config.friction === undefined && config.stiffness === undefined && config.damping === undefined && config.mass === undefined, 'You can define one of bounciness/speed, tension/friction, or stiffness/damping/mass, but not more than one');\n var springConfig = SpringConfig.fromBouncinessAndSpeed((_config$bounciness = config.bounciness) !== null && _config$bounciness !== void 0 ? _config$bounciness : 8, (_config$speed = config.speed) !== null && _config$speed !== void 0 ? _config$speed : 12);\n this._stiffness = springConfig.stiffness;\n this._damping = springConfig.damping;\n this._mass = 1;\n } else {\n var _config$tension, _config$friction;\n // Convert the origami tension/friction values to stiffness/damping\n // We assume mass is 1.\n var _springConfig = SpringConfig.fromOrigamiTensionAndFriction((_config$tension = config.tension) !== null && _config$tension !== void 0 ? _config$tension : 40, (_config$friction = config.friction) !== null && _config$friction !== void 0 ? _config$friction : 7);\n this._stiffness = _springConfig.stiffness;\n this._damping = _springConfig.damping;\n this._mass = 1;\n }\n invariant(this._stiffness > 0, 'Stiffness value must be greater than 0');\n invariant(this._damping > 0, 'Damping value must be greater than 0');\n invariant(this._mass > 0, 'Mass value must be greater than 0');\n }\n __getNativeAnimationConfig() {\n var _this$_initialVelocit;\n return {\n type: 'spring',\n overshootClamping: this._overshootClamping,\n restDisplacementThreshold: this._restDisplacementThreshold,\n restSpeedThreshold: this._restSpeedThreshold,\n stiffness: this._stiffness,\n damping: this._damping,\n mass: this._mass,\n initialVelocity: (_this$_initialVelocit = this._initialVelocity) !== null && _this$_initialVelocit !== void 0 ? _this$_initialVelocit : this._lastVelocity,\n toValue: this._toValue,\n iterations: this.__iterations,\n platformConfig: this._platformConfig\n };\n }\n start(fromValue, onUpdate, onEnd, previousAnimation, animatedValue) {\n this.__active = true;\n this._startPosition = fromValue;\n this._lastPosition = this._startPosition;\n this._onUpdate = onUpdate;\n this.__onEnd = onEnd;\n this._lastTime = Date.now();\n this._frameTime = 0.0;\n if (previousAnimation instanceof SpringAnimation) {\n var internalState = previousAnimation.getInternalState();\n this._lastPosition = internalState.lastPosition;\n this._lastVelocity = internalState.lastVelocity;\n // Set the initial velocity to the last velocity\n this._initialVelocity = this._lastVelocity;\n this._lastTime = internalState.lastTime;\n }\n var start = () => {\n if (this._useNativeDriver) {\n this.__startNativeAnimation(animatedValue);\n } else {\n this.onUpdate();\n }\n };\n\n // If this._delay is more than 0, we start after the timeout.\n if (this._delay) {\n this._timeout = setTimeout(start, this._delay);\n } else {\n start();\n }\n }\n getInternalState() {\n return {\n lastPosition: this._lastPosition,\n lastVelocity: this._lastVelocity,\n lastTime: this._lastTime\n };\n }\n\n /**\n * This spring model is based off of a damped harmonic oscillator\n * (https://en.wikipedia.org/wiki/Harmonic_oscillator#Damped_harmonic_oscillator).\n *\n * We use the closed form of the second order differential equation:\n *\n * x'' + (2ζ⍵_0)x' + ⍵^2x = 0\n *\n * where\n * ⍵_0 = √(k / m) (undamped angular frequency of the oscillator),\n * ζ = c / 2√mk (damping ratio),\n * c = damping constant\n * k = stiffness\n * m = mass\n *\n * The derivation of the closed form is described in detail here:\n * http://planetmath.org/sites/default/files/texpdf/39745.pdf\n *\n * This algorithm happens to match the algorithm used by CASpringAnimation,\n * a QuartzCore (iOS) API that creates spring animations.\n */\n onUpdate() {\n // If for some reason we lost a lot of frames (e.g. process large payload or\n // stopped in the debugger), we only advance by 4 frames worth of\n // computation and will continue on the next frame. It's better to have it\n // running at faster speed than jumping to the end.\n var MAX_STEPS = 64;\n var now = Date.now();\n if (now > this._lastTime + MAX_STEPS) {\n now = this._lastTime + MAX_STEPS;\n }\n var deltaTime = (now - this._lastTime) / 1000;\n this._frameTime += deltaTime;\n var c = this._damping;\n var m = this._mass;\n var k = this._stiffness;\n var v0 = -this._initialVelocity;\n var zeta = c / (2 * Math.sqrt(k * m)); // damping ratio\n var omega0 = Math.sqrt(k / m); // undamped angular frequency of the oscillator (rad/ms)\n var omega1 = omega0 * Math.sqrt(1.0 - zeta * zeta); // exponential decay\n var x0 = this._toValue - this._startPosition; // calculate the oscillation from x0 = 1 to x = 0\n\n var position = 0.0;\n var velocity = 0.0;\n var t = this._frameTime;\n if (zeta < 1) {\n // Under damped\n var envelope = Math.exp(-zeta * omega0 * t);\n position = this._toValue - envelope * ((v0 + zeta * omega0 * x0) / omega1 * Math.sin(omega1 * t) + x0 * Math.cos(omega1 * t));\n // This looks crazy -- it's actually just the derivative of the\n // oscillation function\n velocity = zeta * omega0 * envelope * (Math.sin(omega1 * t) * (v0 + zeta * omega0 * x0) / omega1 + x0 * Math.cos(omega1 * t)) - envelope * (Math.cos(omega1 * t) * (v0 + zeta * omega0 * x0) - omega1 * x0 * Math.sin(omega1 * t));\n } else {\n // Critically damped\n var _envelope = Math.exp(-omega0 * t);\n position = this._toValue - _envelope * (x0 + (v0 + omega0 * x0) * t);\n velocity = _envelope * (v0 * (t * omega0 - 1) + t * x0 * (omega0 * omega0));\n }\n this._lastTime = now;\n this._lastPosition = position;\n this._lastVelocity = velocity;\n this._onUpdate(position);\n if (!this.__active) {\n // a listener might have stopped us in _onUpdate\n return;\n }\n\n // Conditions for stopping the spring animation\n var isOvershooting = false;\n if (this._overshootClamping && this._stiffness !== 0) {\n if (this._startPosition < this._toValue) {\n isOvershooting = position > this._toValue;\n } else {\n isOvershooting = position < this._toValue;\n }\n }\n var isVelocity = Math.abs(velocity) <= this._restSpeedThreshold;\n var isDisplacement = true;\n if (this._stiffness !== 0) {\n isDisplacement = Math.abs(this._toValue - position) <= this._restDisplacementThreshold;\n }\n if (isOvershooting || isVelocity && isDisplacement) {\n if (this._stiffness !== 0) {\n // Ensure that we end up with a round value\n this._lastPosition = this._toValue;\n this._lastVelocity = 0;\n this._onUpdate(this._toValue);\n }\n this.__debouncedOnEnd({\n finished: true\n });\n return;\n }\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n }\n stop() {\n super.stop();\n this.__active = false;\n clearTimeout(this._timeout);\n global.cancelAnimationFrame(this._animationFrame);\n this.__debouncedOnEnd({\n finished: false\n });\n }\n}\nexport default SpringAnimation;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport AnimatedValue from '../nodes/AnimatedValue';\nimport AnimatedValueXY from '../nodes/AnimatedValueXY';\nimport AnimatedInterpolation from '../nodes/AnimatedInterpolation';\nimport Easing from '../../../../exports/Easing';\nimport Animation from './Animation';\nimport { shouldUseNativeDriver } from '../NativeAnimatedHelper';\nimport AnimatedColor from '../nodes/AnimatedColor';\nvar _easeInOut;\nfunction easeInOut() {\n if (!_easeInOut) {\n _easeInOut = Easing.inOut(Easing.ease);\n }\n return _easeInOut;\n}\nclass TimingAnimation extends Animation {\n constructor(config) {\n var _config$easing, _config$duration, _config$delay, _config$iterations, _config$isInteraction;\n super();\n this._toValue = config.toValue;\n this._easing = (_config$easing = config.easing) !== null && _config$easing !== void 0 ? _config$easing : easeInOut();\n this._duration = (_config$duration = config.duration) !== null && _config$duration !== void 0 ? _config$duration : 500;\n this._delay = (_config$delay = config.delay) !== null && _config$delay !== void 0 ? _config$delay : 0;\n this.__iterations = (_config$iterations = config.iterations) !== null && _config$iterations !== void 0 ? _config$iterations : 1;\n this._useNativeDriver = shouldUseNativeDriver(config);\n this._platformConfig = config.platformConfig;\n this.__isInteraction = (_config$isInteraction = config.isInteraction) !== null && _config$isInteraction !== void 0 ? _config$isInteraction : !this._useNativeDriver;\n }\n __getNativeAnimationConfig() {\n var frameDuration = 1000.0 / 60.0;\n var frames = [];\n var numFrames = Math.round(this._duration / frameDuration);\n for (var frame = 0; frame < numFrames; frame++) {\n frames.push(this._easing(frame / numFrames));\n }\n frames.push(this._easing(1));\n return {\n type: 'frames',\n frames,\n toValue: this._toValue,\n iterations: this.__iterations,\n platformConfig: this._platformConfig\n };\n }\n start(fromValue, onUpdate, onEnd, previousAnimation, animatedValue) {\n this.__active = true;\n this._fromValue = fromValue;\n this._onUpdate = onUpdate;\n this.__onEnd = onEnd;\n var start = () => {\n // Animations that sometimes have 0 duration and sometimes do not\n // still need to use the native driver when duration is 0 so as to\n // not cause intermixed JS and native animations.\n if (this._duration === 0 && !this._useNativeDriver) {\n this._onUpdate(this._toValue);\n this.__debouncedOnEnd({\n finished: true\n });\n } else {\n this._startTime = Date.now();\n if (this._useNativeDriver) {\n this.__startNativeAnimation(animatedValue);\n } else {\n this._animationFrame = requestAnimationFrame(\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this.onUpdate.bind(this));\n }\n }\n };\n if (this._delay) {\n this._timeout = setTimeout(start, this._delay);\n } else {\n start();\n }\n }\n onUpdate() {\n var now = Date.now();\n if (now >= this._startTime + this._duration) {\n if (this._duration === 0) {\n this._onUpdate(this._toValue);\n } else {\n this._onUpdate(this._fromValue + this._easing(1) * (this._toValue - this._fromValue));\n }\n this.__debouncedOnEnd({\n finished: true\n });\n return;\n }\n this._onUpdate(this._fromValue + this._easing((now - this._startTime) / this._duration) * (this._toValue - this._fromValue));\n if (this.__active) {\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n }\n }\n stop() {\n super.stop();\n this.__active = false;\n clearTimeout(this._timeout);\n global.cancelAnimationFrame(this._animationFrame);\n this.__debouncedOnEnd({\n finished: false\n });\n }\n}\nexport default TimingAnimation;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport normalizeColor from '@react-native/normalize-colors';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nvar NativeAnimatedAPI = NativeAnimatedHelper.API;\nvar defaultColor = {\n r: 0,\n g: 0,\n b: 0,\n a: 1.0\n};\nvar _uniqueId = 1;\nvar processColorObject = color => {\n return color;\n};\n\n/* eslint no-bitwise: 0 */\nfunction processColor(color) {\n if (color === undefined || color === null) {\n return null;\n }\n if (isRgbaValue(color)) {\n // $FlowIgnore[incompatible-cast] - Type is verified above\n return color;\n }\n var normalizedColor = normalizeColor(\n // $FlowIgnore[incompatible-cast] - Type is verified above\n color);\n if (normalizedColor === undefined || normalizedColor === null) {\n return null;\n }\n if (typeof normalizedColor === 'object') {\n var processedColorObj = processColorObject(normalizedColor);\n if (processedColorObj != null) {\n return processedColorObj;\n }\n } else if (typeof normalizedColor === 'number') {\n var r = (normalizedColor & 0xff000000) >>> 24;\n var g = (normalizedColor & 0x00ff0000) >>> 16;\n var b = (normalizedColor & 0x0000ff00) >>> 8;\n var a = (normalizedColor & 0x000000ff) / 255;\n return {\n r,\n g,\n b,\n a\n };\n }\n return null;\n}\nfunction isRgbaValue(value) {\n return value && typeof value.r === 'number' && typeof value.g === 'number' && typeof value.b === 'number' && typeof value.a === 'number';\n}\nfunction isRgbaAnimatedValue(value) {\n return value && value.r instanceof AnimatedValue && value.g instanceof AnimatedValue && value.b instanceof AnimatedValue && value.a instanceof AnimatedValue;\n}\nexport default class AnimatedColor extends AnimatedWithChildren {\n constructor(valueIn, config) {\n super();\n this._listeners = {};\n var value = valueIn !== null && valueIn !== void 0 ? valueIn : defaultColor;\n if (isRgbaAnimatedValue(value)) {\n // $FlowIgnore[incompatible-cast] - Type is verified above\n var rgbaAnimatedValue = value;\n this.r = rgbaAnimatedValue.r;\n this.g = rgbaAnimatedValue.g;\n this.b = rgbaAnimatedValue.b;\n this.a = rgbaAnimatedValue.a;\n } else {\n var _processColor;\n var processedColor = // $FlowIgnore[incompatible-cast] - Type is verified above\n (_processColor = processColor(value)) !== null && _processColor !== void 0 ? _processColor : defaultColor;\n var initColor = defaultColor;\n if (isRgbaValue(processedColor)) {\n // $FlowIgnore[incompatible-cast] - Type is verified above\n initColor = processedColor;\n } else {\n // $FlowIgnore[incompatible-cast] - Type is verified above\n this.nativeColor = processedColor;\n }\n this.r = new AnimatedValue(initColor.r);\n this.g = new AnimatedValue(initColor.g);\n this.b = new AnimatedValue(initColor.b);\n this.a = new AnimatedValue(initColor.a);\n }\n if (this.nativeColor || config && config.useNativeDriver) {\n this.__makeNative();\n }\n }\n\n /**\n * Directly set the value. This will stop any animations running on the value\n * and update all the bound properties.\n */\n setValue(value) {\n var _processColor2;\n var shouldUpdateNodeConfig = false;\n if (this.__isNative) {\n var nativeTag = this.__getNativeTag();\n NativeAnimatedAPI.setWaitingForIdentifier(nativeTag.toString());\n }\n var processedColor = (_processColor2 = processColor(value)) !== null && _processColor2 !== void 0 ? _processColor2 : defaultColor;\n if (isRgbaValue(processedColor)) {\n // $FlowIgnore[incompatible-type] - Type is verified above\n var rgbaValue = processedColor;\n this.r.setValue(rgbaValue.r);\n this.g.setValue(rgbaValue.g);\n this.b.setValue(rgbaValue.b);\n this.a.setValue(rgbaValue.a);\n if (this.nativeColor != null) {\n this.nativeColor = null;\n shouldUpdateNodeConfig = true;\n }\n } else {\n // $FlowIgnore[incompatible-type] - Type is verified above\n var nativeColor = processedColor;\n if (this.nativeColor !== nativeColor) {\n this.nativeColor = nativeColor;\n shouldUpdateNodeConfig = true;\n }\n }\n if (this.__isNative) {\n var _nativeTag = this.__getNativeTag();\n if (shouldUpdateNodeConfig) {\n NativeAnimatedAPI.updateAnimatedNodeConfig(_nativeTag, this.__getNativeConfig());\n }\n NativeAnimatedAPI.unsetWaitingForIdentifier(_nativeTag.toString());\n }\n }\n\n /**\n * Sets an offset that is applied on top of whatever value is set, whether\n * via `setValue`, an animation, or `Animated.event`. Useful for compensating\n * things like the start of a pan gesture.\n */\n setOffset(offset) {\n this.r.setOffset(offset.r);\n this.g.setOffset(offset.g);\n this.b.setOffset(offset.b);\n this.a.setOffset(offset.a);\n }\n\n /**\n * Merges the offset value into the base value and resets the offset to zero.\n * The final output of the value is unchanged.\n */\n flattenOffset() {\n this.r.flattenOffset();\n this.g.flattenOffset();\n this.b.flattenOffset();\n this.a.flattenOffset();\n }\n\n /**\n * Sets the offset value to the base value, and resets the base value to\n * zero. The final output of the value is unchanged.\n */\n extractOffset() {\n this.r.extractOffset();\n this.g.extractOffset();\n this.b.extractOffset();\n this.a.extractOffset();\n }\n\n /**\n * Adds an asynchronous listener to the value so you can observe updates from\n * animations. This is useful because there is no way to synchronously read\n * the value because it might be driven natively.\n *\n * Returns a string that serves as an identifier for the listener.\n */\n addListener(callback) {\n var id = String(_uniqueId++);\n var jointCallback = _ref => {\n var number = _ref.value;\n callback(this.__getValue());\n };\n this._listeners[id] = {\n r: this.r.addListener(jointCallback),\n g: this.g.addListener(jointCallback),\n b: this.b.addListener(jointCallback),\n a: this.a.addListener(jointCallback)\n };\n return id;\n }\n\n /**\n * Unregister a listener. The `id` param shall match the identifier\n * previously returned by `addListener()`.\n */\n removeListener(id) {\n this.r.removeListener(this._listeners[id].r);\n this.g.removeListener(this._listeners[id].g);\n this.b.removeListener(this._listeners[id].b);\n this.a.removeListener(this._listeners[id].a);\n delete this._listeners[id];\n }\n\n /**\n * Remove all registered listeners.\n */\n removeAllListeners() {\n this.r.removeAllListeners();\n this.g.removeAllListeners();\n this.b.removeAllListeners();\n this.a.removeAllListeners();\n this._listeners = {};\n }\n\n /**\n * Stops any running animation or tracking. `callback` is invoked with the\n * final value after stopping the animation, which is useful for updating\n * state to match the animation position with layout.\n */\n stopAnimation(callback) {\n this.r.stopAnimation();\n this.g.stopAnimation();\n this.b.stopAnimation();\n this.a.stopAnimation();\n callback && callback(this.__getValue());\n }\n\n /**\n * Stops any animation and resets the value to its original.\n */\n resetAnimation(callback) {\n this.r.resetAnimation();\n this.g.resetAnimation();\n this.b.resetAnimation();\n this.a.resetAnimation();\n callback && callback(this.__getValue());\n }\n __getValue() {\n if (this.nativeColor != null) {\n return this.nativeColor;\n } else {\n return \"rgba(\" + this.r.__getValue() + \", \" + this.g.__getValue() + \", \" + this.b.__getValue() + \", \" + this.a.__getValue() + \")\";\n }\n }\n __attach() {\n this.r.__addChild(this);\n this.g.__addChild(this);\n this.b.__addChild(this);\n this.a.__addChild(this);\n super.__attach();\n }\n __detach() {\n this.r.__removeChild(this);\n this.g.__removeChild(this);\n this.b.__removeChild(this);\n this.a.__removeChild(this);\n super.__detach();\n }\n __makeNative(platformConfig) {\n this.r.__makeNative(platformConfig);\n this.g.__makeNative(platformConfig);\n this.b.__makeNative(platformConfig);\n this.a.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n __getNativeConfig() {\n return {\n type: 'color',\n r: this.r.__getNativeTag(),\n g: this.g.__getNativeTag(),\n b: this.b.__getNativeTag(),\n a: this.a.__getNativeTag(),\n nativeColor: this.nativeColor\n };\n }\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport { AnimatedEvent, attachNativeEvent } from './AnimatedEvent';\nimport AnimatedAddition from './nodes/AnimatedAddition';\nimport AnimatedDiffClamp from './nodes/AnimatedDiffClamp';\nimport AnimatedDivision from './nodes/AnimatedDivision';\nimport AnimatedInterpolation from './nodes/AnimatedInterpolation';\nimport AnimatedModulo from './nodes/AnimatedModulo';\nimport AnimatedMultiplication from './nodes/AnimatedMultiplication';\nimport AnimatedNode from './nodes/AnimatedNode';\nimport AnimatedProps from './nodes/AnimatedProps';\nimport AnimatedSubtraction from './nodes/AnimatedSubtraction';\nimport AnimatedTracking from './nodes/AnimatedTracking';\nimport AnimatedValue from './nodes/AnimatedValue';\nimport AnimatedValueXY from './nodes/AnimatedValueXY';\nimport DecayAnimation from './animations/DecayAnimation';\nimport SpringAnimation from './animations/SpringAnimation';\nimport TimingAnimation from './animations/TimingAnimation';\nimport createAnimatedComponent from './createAnimatedComponent';\nimport AnimatedColor from './nodes/AnimatedColor';\nvar add = function add(a, b) {\n return new AnimatedAddition(a, b);\n};\nvar subtract = function subtract(a, b) {\n return new AnimatedSubtraction(a, b);\n};\nvar divide = function divide(a, b) {\n return new AnimatedDivision(a, b);\n};\nvar multiply = function multiply(a, b) {\n return new AnimatedMultiplication(a, b);\n};\nvar modulo = function modulo(a, modulus) {\n return new AnimatedModulo(a, modulus);\n};\nvar diffClamp = function diffClamp(a, min, max) {\n return new AnimatedDiffClamp(a, min, max);\n};\nvar _combineCallbacks = function _combineCallbacks(callback, config) {\n if (callback && config.onComplete) {\n return function () {\n config.onComplete && config.onComplete(...arguments);\n callback && callback(...arguments);\n };\n } else {\n return callback || config.onComplete;\n }\n};\nvar maybeVectorAnim = function maybeVectorAnim(value, config, anim) {\n if (value instanceof AnimatedValueXY) {\n var configX = _objectSpread({}, config);\n var configY = _objectSpread({}, config);\n for (var key in config) {\n var _config$key = config[key],\n x = _config$key.x,\n y = _config$key.y;\n if (x !== undefined && y !== undefined) {\n configX[key] = x;\n configY[key] = y;\n }\n }\n var aX = anim(value.x, configX);\n var aY = anim(value.y, configY);\n // We use `stopTogether: false` here because otherwise tracking will break\n // because the second animation will get stopped before it can update.\n return parallel([aX, aY], {\n stopTogether: false\n });\n } else if (value instanceof AnimatedColor) {\n var configR = _objectSpread({}, config);\n var configG = _objectSpread({}, config);\n var configB = _objectSpread({}, config);\n var configA = _objectSpread({}, config);\n for (var _key in config) {\n var _config$_key = config[_key],\n r = _config$_key.r,\n g = _config$_key.g,\n b = _config$_key.b,\n a = _config$_key.a;\n if (r !== undefined && g !== undefined && b !== undefined && a !== undefined) {\n configR[_key] = r;\n configG[_key] = g;\n configB[_key] = b;\n configA[_key] = a;\n }\n }\n var aR = anim(value.r, configR);\n var aG = anim(value.g, configG);\n var aB = anim(value.b, configB);\n var aA = anim(value.a, configA);\n // We use `stopTogether: false` here because otherwise tracking will break\n // because the second animation will get stopped before it can update.\n return parallel([aR, aG, aB, aA], {\n stopTogether: false\n });\n }\n return null;\n};\nvar spring = function spring(value, config) {\n var _start = function start(animatedValue, configuration, callback) {\n callback = _combineCallbacks(callback, configuration);\n var singleValue = animatedValue;\n var singleConfig = configuration;\n singleValue.stopTracking();\n if (configuration.toValue instanceof AnimatedNode) {\n singleValue.track(new AnimatedTracking(singleValue, configuration.toValue, SpringAnimation, singleConfig, callback));\n } else {\n singleValue.animate(new SpringAnimation(singleConfig), callback);\n }\n };\n return maybeVectorAnim(value, config, spring) || {\n start: function start(callback) {\n _start(value, config, callback);\n },\n stop: function stop() {\n value.stopAnimation();\n },\n reset: function reset() {\n value.resetAnimation();\n },\n _startNativeLoop: function _startNativeLoop(iterations) {\n var singleConfig = _objectSpread(_objectSpread({}, config), {}, {\n iterations\n });\n _start(value, singleConfig);\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return config.useNativeDriver || false;\n }\n };\n};\nvar timing = function timing(value, config) {\n var _start2 = function start(animatedValue, configuration, callback) {\n callback = _combineCallbacks(callback, configuration);\n var singleValue = animatedValue;\n var singleConfig = configuration;\n singleValue.stopTracking();\n if (configuration.toValue instanceof AnimatedNode) {\n singleValue.track(new AnimatedTracking(singleValue, configuration.toValue, TimingAnimation, singleConfig, callback));\n } else {\n singleValue.animate(new TimingAnimation(singleConfig), callback);\n }\n };\n return maybeVectorAnim(value, config, timing) || {\n start: function start(callback) {\n _start2(value, config, callback);\n },\n stop: function stop() {\n value.stopAnimation();\n },\n reset: function reset() {\n value.resetAnimation();\n },\n _startNativeLoop: function _startNativeLoop(iterations) {\n var singleConfig = _objectSpread(_objectSpread({}, config), {}, {\n iterations\n });\n _start2(value, singleConfig);\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return config.useNativeDriver || false;\n }\n };\n};\nvar decay = function decay(value, config) {\n var _start3 = function start(animatedValue, configuration, callback) {\n callback = _combineCallbacks(callback, configuration);\n var singleValue = animatedValue;\n var singleConfig = configuration;\n singleValue.stopTracking();\n singleValue.animate(new DecayAnimation(singleConfig), callback);\n };\n return maybeVectorAnim(value, config, decay) || {\n start: function start(callback) {\n _start3(value, config, callback);\n },\n stop: function stop() {\n value.stopAnimation();\n },\n reset: function reset() {\n value.resetAnimation();\n },\n _startNativeLoop: function _startNativeLoop(iterations) {\n var singleConfig = _objectSpread(_objectSpread({}, config), {}, {\n iterations\n });\n _start3(value, singleConfig);\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return config.useNativeDriver || false;\n }\n };\n};\nvar sequence = function sequence(animations) {\n var current = 0;\n return {\n start: function start(callback) {\n var onComplete = function onComplete(result) {\n if (!result.finished) {\n callback && callback(result);\n return;\n }\n current++;\n if (current === animations.length) {\n callback && callback(result);\n return;\n }\n animations[current].start(onComplete);\n };\n if (animations.length === 0) {\n callback && callback({\n finished: true\n });\n } else {\n animations[current].start(onComplete);\n }\n },\n stop: function stop() {\n if (current < animations.length) {\n animations[current].stop();\n }\n },\n reset: function reset() {\n animations.forEach((animation, idx) => {\n if (idx <= current) {\n animation.reset();\n }\n });\n current = 0;\n },\n _startNativeLoop: function _startNativeLoop() {\n throw new Error('Loops run using the native driver cannot contain Animated.sequence animations');\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return false;\n }\n };\n};\nvar parallel = function parallel(animations, config) {\n var doneCount = 0;\n // Make sure we only call stop() at most once for each animation\n var hasEnded = {};\n var stopTogether = !(config && config.stopTogether === false);\n var result = {\n start: function start(callback) {\n if (doneCount === animations.length) {\n callback && callback({\n finished: true\n });\n return;\n }\n animations.forEach((animation, idx) => {\n var cb = function cb(endResult) {\n hasEnded[idx] = true;\n doneCount++;\n if (doneCount === animations.length) {\n doneCount = 0;\n callback && callback(endResult);\n return;\n }\n if (!endResult.finished && stopTogether) {\n result.stop();\n }\n };\n if (!animation) {\n cb({\n finished: true\n });\n } else {\n animation.start(cb);\n }\n });\n },\n stop: function stop() {\n animations.forEach((animation, idx) => {\n !hasEnded[idx] && animation.stop();\n hasEnded[idx] = true;\n });\n },\n reset: function reset() {\n animations.forEach((animation, idx) => {\n animation.reset();\n hasEnded[idx] = false;\n doneCount = 0;\n });\n },\n _startNativeLoop: function _startNativeLoop() {\n throw new Error('Loops run using the native driver cannot contain Animated.parallel animations');\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return false;\n }\n };\n return result;\n};\nvar delay = function delay(time) {\n // Would be nice to make a specialized implementation\n return timing(new AnimatedValue(0), {\n toValue: 0,\n delay: time,\n duration: 0,\n useNativeDriver: false\n });\n};\nvar stagger = function stagger(time, animations) {\n return parallel(animations.map((animation, i) => {\n return sequence([delay(time * i), animation]);\n }));\n};\nvar loop = function loop(animation, // $FlowFixMe[prop-missing]\n_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$iterations = _ref.iterations,\n iterations = _ref$iterations === void 0 ? -1 : _ref$iterations,\n _ref$resetBeforeItera = _ref.resetBeforeIteration,\n resetBeforeIteration = _ref$resetBeforeItera === void 0 ? true : _ref$resetBeforeItera;\n var isFinished = false;\n var iterationsSoFar = 0;\n return {\n start: function start(callback) {\n var restart = function restart(result) {\n if (result === void 0) {\n result = {\n finished: true\n };\n }\n if (isFinished || iterationsSoFar === iterations || result.finished === false) {\n callback && callback(result);\n } else {\n iterationsSoFar++;\n resetBeforeIteration && animation.reset();\n animation.start(restart);\n }\n };\n if (!animation || iterations === 0) {\n callback && callback({\n finished: true\n });\n } else {\n if (animation._isUsingNativeDriver()) {\n animation._startNativeLoop(iterations);\n } else {\n restart(); // Start looping recursively on the js thread\n }\n }\n },\n\n stop: function stop() {\n isFinished = true;\n animation.stop();\n },\n reset: function reset() {\n iterationsSoFar = 0;\n isFinished = false;\n animation.reset();\n },\n _startNativeLoop: function _startNativeLoop() {\n throw new Error('Loops run using the native driver cannot contain Animated.loop animations');\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return animation._isUsingNativeDriver();\n }\n };\n};\nfunction forkEvent(event, listener) {\n if (!event) {\n return listener;\n } else if (event instanceof AnimatedEvent) {\n event.__addListener(listener);\n return event;\n } else {\n return function () {\n typeof event === 'function' && event(...arguments);\n listener(...arguments);\n };\n }\n}\nfunction unforkEvent(event, listener) {\n if (event && event instanceof AnimatedEvent) {\n event.__removeListener(listener);\n }\n}\nvar event = function event(argMapping, config) {\n var animatedEvent = new AnimatedEvent(argMapping, config);\n if (animatedEvent.__isNative) {\n return animatedEvent;\n } else {\n return animatedEvent.__getHandler();\n }\n};\n\n// All types of animated nodes that represent scalar numbers and can be interpolated (etc)\n\n/**\n * The `Animated` library is designed to make animations fluid, powerful, and\n * easy to build and maintain. `Animated` focuses on declarative relationships\n * between inputs and outputs, with configurable transforms in between, and\n * simple `start`/`stop` methods to control time-based animation execution.\n * If additional transforms are added, be sure to include them in\n * AnimatedMock.js as well.\n *\n * See https://reactnative.dev/docs/animated\n */\nexport default {\n /**\n * Standard value class for driving animations. Typically initialized with\n * `new Animated.Value(0);`\n *\n * See https://reactnative.dev/docs/animated#value\n */\n Value: AnimatedValue,\n /**\n * 2D value class for driving 2D animations, such as pan gestures.\n *\n * See https://reactnative.dev/docs/animatedvaluexy\n */\n ValueXY: AnimatedValueXY,\n /**\n * Value class for driving color animations.\n */\n Color: AnimatedColor,\n /**\n * Exported to use the Interpolation type in flow.\n *\n * See https://reactnative.dev/docs/animated#interpolation\n */\n Interpolation: AnimatedInterpolation,\n /**\n * Exported for ease of type checking. All animated values derive from this\n * class.\n *\n * See https://reactnative.dev/docs/animated#node\n */\n Node: AnimatedNode,\n /**\n * Animates a value from an initial velocity to zero based on a decay\n * coefficient.\n *\n * See https://reactnative.dev/docs/animated#decay\n */\n decay,\n /**\n * Animates a value along a timed easing curve. The Easing module has tons of\n * predefined curves, or you can use your own function.\n *\n * See https://reactnative.dev/docs/animated#timing\n */\n timing,\n /**\n * Animates a value according to an analytical spring model based on\n * damped harmonic oscillation.\n *\n * See https://reactnative.dev/docs/animated#spring\n */\n spring,\n /**\n * Creates a new Animated value composed from two Animated values added\n * together.\n *\n * See https://reactnative.dev/docs/animated#add\n */\n add,\n /**\n * Creates a new Animated value composed by subtracting the second Animated\n * value from the first Animated value.\n *\n * See https://reactnative.dev/docs/animated#subtract\n */\n subtract,\n /**\n * Creates a new Animated value composed by dividing the first Animated value\n * by the second Animated value.\n *\n * See https://reactnative.dev/docs/animated#divide\n */\n divide,\n /**\n * Creates a new Animated value composed from two Animated values multiplied\n * together.\n *\n * See https://reactnative.dev/docs/animated#multiply\n */\n multiply,\n /**\n * Creates a new Animated value that is the (non-negative) modulo of the\n * provided Animated value.\n *\n * See https://reactnative.dev/docs/animated#modulo\n */\n modulo,\n /**\n * Create a new Animated value that is limited between 2 values. It uses the\n * difference between the last value so even if the value is far from the\n * bounds it will start changing when the value starts getting closer again.\n *\n * See https://reactnative.dev/docs/animated#diffclamp\n */\n diffClamp,\n /**\n * Starts an animation after the given delay.\n *\n * See https://reactnative.dev/docs/animated#delay\n */\n delay,\n /**\n * Starts an array of animations in order, waiting for each to complete\n * before starting the next. If the current running animation is stopped, no\n * following animations will be started.\n *\n * See https://reactnative.dev/docs/animated#sequence\n */\n sequence,\n /**\n * Starts an array of animations all at the same time. By default, if one\n * of the animations is stopped, they will all be stopped. You can override\n * this with the `stopTogether` flag.\n *\n * See https://reactnative.dev/docs/animated#parallel\n */\n parallel,\n /**\n * Array of animations may run in parallel (overlap), but are started in\n * sequence with successive delays. Nice for doing trailing effects.\n *\n * See https://reactnative.dev/docs/animated#stagger\n */\n stagger,\n /**\n * Loops a given animation continuously, so that each time it reaches the\n * end, it resets and begins again from the start.\n *\n * See https://reactnative.dev/docs/animated#loop\n */\n loop,\n /**\n * Takes an array of mappings and extracts values from each arg accordingly,\n * then calls `setValue` on the mapped outputs.\n *\n * See https://reactnative.dev/docs/animated#event\n */\n event,\n /**\n * Make any React component Animatable. Used to create `Animated.View`, etc.\n *\n * See https://reactnative.dev/docs/animated#createanimatedcomponent\n */\n createAnimatedComponent,\n /**\n * Imperative API to attach an animated value to an event on a view. Prefer\n * using `Animated.event` with `useNativeDrive: true` if possible.\n *\n * See https://reactnative.dev/docs/animated#attachnativeevent\n */\n attachNativeEvent,\n /**\n * Advanced imperative API for snooping on animated events that are passed in\n * through props. Use values directly where possible.\n *\n * See https://reactnative.dev/docs/animated#forkevent\n */\n forkEvent,\n unforkEvent,\n /**\n * Expose Event class, so it can be used as a type for type checkers.\n */\n Event: AnimatedEvent\n};","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport { AnimatedEvent, attachNativeEvent } from './AnimatedEvent';\nimport AnimatedImplementation from './AnimatedImplementation';\nimport AnimatedInterpolation from './nodes/AnimatedInterpolation';\nimport AnimatedNode from './nodes/AnimatedNode';\nimport AnimatedValue from './nodes/AnimatedValue';\nimport AnimatedValueXY from './nodes/AnimatedValueXY';\nimport createAnimatedComponent from './createAnimatedComponent';\nimport AnimatedColor from './nodes/AnimatedColor';\n\n/**\n * Animations are a source of flakiness in snapshot testing. This mock replaces\n * animation functions from AnimatedImplementation with empty animations for\n * predictability in tests. When possible the animation will run immediately\n * to the final state.\n */\n\n// Prevent any callback invocation from recursively triggering another\n// callback, which may trigger another animation\nvar inAnimationCallback = false;\nfunction mockAnimationStart(start) {\n return callback => {\n var guardedCallback = callback == null ? callback : function () {\n if (inAnimationCallback) {\n console.warn('Ignoring recursive animation callback when running mock animations');\n return;\n }\n inAnimationCallback = true;\n try {\n callback(...arguments);\n } finally {\n inAnimationCallback = false;\n }\n };\n start(guardedCallback);\n };\n}\nvar emptyAnimation = {\n start: () => {},\n stop: () => {},\n reset: () => {},\n _startNativeLoop: () => {},\n _isUsingNativeDriver: () => {\n return false;\n }\n};\nvar mockCompositeAnimation = animations => _objectSpread(_objectSpread({}, emptyAnimation), {}, {\n start: mockAnimationStart(callback => {\n animations.forEach(animation => animation.start());\n callback == null ? void 0 : callback({\n finished: true\n });\n })\n});\nvar spring = function spring(value, config) {\n var anyValue = value;\n return _objectSpread(_objectSpread({}, emptyAnimation), {}, {\n start: mockAnimationStart(callback => {\n anyValue.setValue(config.toValue);\n callback == null ? void 0 : callback({\n finished: true\n });\n })\n });\n};\nvar timing = function timing(value, config) {\n var anyValue = value;\n return _objectSpread(_objectSpread({}, emptyAnimation), {}, {\n start: mockAnimationStart(callback => {\n anyValue.setValue(config.toValue);\n callback == null ? void 0 : callback({\n finished: true\n });\n })\n });\n};\nvar decay = function decay(value, config) {\n return emptyAnimation;\n};\nvar sequence = function sequence(animations) {\n return mockCompositeAnimation(animations);\n};\nvar parallel = function parallel(animations, config) {\n return mockCompositeAnimation(animations);\n};\nvar delay = function delay(time) {\n return emptyAnimation;\n};\nvar stagger = function stagger(time, animations) {\n return mockCompositeAnimation(animations);\n};\nvar loop = function loop(animation, // $FlowFixMe[prop-missing]\n_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$iterations = _ref.iterations,\n iterations = _ref$iterations === void 0 ? -1 : _ref$iterations;\n return emptyAnimation;\n};\nexport default {\n Value: AnimatedValue,\n ValueXY: AnimatedValueXY,\n Color: AnimatedColor,\n Interpolation: AnimatedInterpolation,\n Node: AnimatedNode,\n decay,\n timing,\n spring,\n add: AnimatedImplementation.add,\n subtract: AnimatedImplementation.subtract,\n divide: AnimatedImplementation.divide,\n multiply: AnimatedImplementation.multiply,\n modulo: AnimatedImplementation.modulo,\n diffClamp: AnimatedImplementation.diffClamp,\n delay,\n sequence,\n parallel,\n stagger,\n loop,\n event: AnimatedImplementation.event,\n createAnimatedComponent,\n attachNativeEvent,\n forkEvent: AnimatedImplementation.forkEvent,\n unforkEvent: AnimatedImplementation.unforkEvent,\n Event: AnimatedEvent\n};","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\nimport Platform from '../../../exports/Platform';\nimport FlatList from './components/AnimatedFlatList';\nimport Image from './components/AnimatedImage';\nimport ScrollView from './components/AnimatedScrollView';\nimport SectionList from './components/AnimatedSectionList';\nimport Text from './components/AnimatedText';\nimport View from './components/AnimatedView';\nimport AnimatedMock from './AnimatedMock';\nimport AnimatedImplementation from './AnimatedImplementation';\nvar Animated = Platform.isTesting ? AnimatedMock : AnimatedImplementation;\nexport default _objectSpread({\n FlatList,\n Image,\n ScrollView,\n SectionList,\n Text,\n View\n}, Animated);","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport Animated from '../../vendor/react-native/Animated/Animated';\nexport default Animated;","import RCTDeviceEventEmitter from '../../vendor/react-native/EventEmitter/RCTDeviceEventEmitter';\nexport default RCTDeviceEventEmitter;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport invariant from 'fbjs/lib/invariant';\nimport canUseDOM from '../../modules/canUseDom';\nvar dimensions = {\n window: {\n fontScale: 1,\n height: 0,\n scale: 1,\n width: 0\n },\n screen: {\n fontScale: 1,\n height: 0,\n scale: 1,\n width: 0\n }\n};\nvar listeners = {};\nvar shouldInit = canUseDOM;\nfunction update() {\n if (!canUseDOM) {\n return;\n }\n var win = window;\n var height;\n var width;\n\n /**\n * iOS does not update viewport dimensions on keyboard open/close.\n * window.visualViewport(https://developer.mozilla.org/en-US/docs/Web/API/VisualViewport)\n * is used instead of document.documentElement.clientHeight (which remains as a fallback)\n */\n if (win.visualViewport) {\n var visualViewport = win.visualViewport;\n /**\n * We are multiplying by scale because height and width from visual viewport\n * also react to pinch zoom, and become smaller when zoomed. But it is not desired\n * behaviour, since originally documentElement client height and width were used,\n * and they do not react to pinch zoom.\n */\n height = Math.round(visualViewport.height * visualViewport.scale);\n width = Math.round(visualViewport.width * visualViewport.scale);\n } else {\n var docEl = win.document.documentElement;\n height = docEl.clientHeight;\n width = docEl.clientWidth;\n }\n dimensions.window = {\n fontScale: 1,\n height,\n scale: win.devicePixelRatio || 1,\n width\n };\n dimensions.screen = {\n fontScale: 1,\n height: win.screen.height,\n scale: win.devicePixelRatio || 1,\n width: win.screen.width\n };\n}\nfunction handleResize() {\n update();\n if (Array.isArray(listeners['change'])) {\n listeners['change'].forEach(handler => handler(dimensions));\n }\n}\nexport default class Dimensions {\n static get(dimension) {\n if (shouldInit) {\n shouldInit = false;\n update();\n }\n invariant(dimensions[dimension], \"No dimension set for key \" + dimension);\n return dimensions[dimension];\n }\n static set(initialDimensions) {\n if (initialDimensions) {\n if (canUseDOM) {\n invariant(false, 'Dimensions cannot be set in the browser');\n } else {\n if (initialDimensions.screen != null) {\n dimensions.screen = initialDimensions.screen;\n }\n if (initialDimensions.window != null) {\n dimensions.window = initialDimensions.window;\n }\n }\n }\n }\n static addEventListener(type, handler) {\n listeners[type] = listeners[type] || [];\n listeners[type].push(handler);\n return {\n remove: () => {\n this.removeEventListener(type, handler);\n }\n };\n }\n static removeEventListener(type, handler) {\n if (Array.isArray(listeners[type])) {\n listeners[type] = listeners[type].filter(_handler => _handler !== handler);\n }\n }\n}\nif (canUseDOM) {\n if (window.visualViewport) {\n window.visualViewport.addEventListener('resize', handleResize, false);\n } else {\n window.addEventListener('resize', handleResize, false);\n }\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n\n'use strict';\n\nimport _bezier from './bezier';\nvar ease;\n\n/**\n * The `Easing` module implements common easing functions. This module is used\n * by [Animate.timing()](docs/animate.html#timing) to convey physically\n * believable motion in animations.\n *\n * You can find a visualization of some common easing functions at\n * http://easings.net/\n *\n * ### Predefined animations\n *\n * The `Easing` module provides several predefined animations through the\n * following methods:\n *\n * - [`back`](docs/easing.html#back) provides a simple animation where the\n * object goes slightly back before moving forward\n * - [`bounce`](docs/easing.html#bounce) provides a bouncing animation\n * - [`ease`](docs/easing.html#ease) provides a simple inertial animation\n * - [`elastic`](docs/easing.html#elastic) provides a simple spring interaction\n *\n * ### Standard functions\n *\n * Three standard easing functions are provided:\n *\n * - [`linear`](docs/easing.html#linear)\n * - [`quad`](docs/easing.html#quad)\n * - [`cubic`](docs/easing.html#cubic)\n *\n * The [`poly`](docs/easing.html#poly) function can be used to implement\n * quartic, quintic, and other higher power functions.\n *\n * ### Additional functions\n *\n * Additional mathematical functions are provided by the following methods:\n *\n * - [`bezier`](docs/easing.html#bezier) provides a cubic bezier curve\n * - [`circle`](docs/easing.html#circle) provides a circular function\n * - [`sin`](docs/easing.html#sin) provides a sinusoidal function\n * - [`exp`](docs/easing.html#exp) provides an exponential function\n *\n * The following helpers are used to modify other easing functions.\n *\n * - [`in`](docs/easing.html#in) runs an easing function forwards\n * - [`inOut`](docs/easing.html#inout) makes any easing function symmetrical\n * - [`out`](docs/easing.html#out) runs an easing function backwards\n */\nclass Easing {\n /**\n * A stepping function, returns 1 for any positive value of `n`.\n */\n static step0(n) {\n return n > 0 ? 1 : 0;\n }\n\n /**\n * A stepping function, returns 1 if `n` is greater than or equal to 1.\n */\n static step1(n) {\n return n >= 1 ? 1 : 0;\n }\n\n /**\n * A linear function, `f(t) = t`. Position correlates to elapsed time one to\n * one.\n *\n * http://cubic-bezier.com/#0,0,1,1\n */\n static linear(t) {\n return t;\n }\n\n /**\n * A simple inertial interaction, similar to an object slowly accelerating to\n * speed.\n *\n * http://cubic-bezier.com/#.42,0,1,1\n */\n static ease(t) {\n if (!ease) {\n ease = Easing.bezier(0.42, 0, 1, 1);\n }\n return ease(t);\n }\n\n /**\n * A quadratic function, `f(t) = t * t`. Position equals the square of elapsed\n * time.\n *\n * http://easings.net/#easeInQuad\n */\n static quad(t) {\n return t * t;\n }\n\n /**\n * A cubic function, `f(t) = t * t * t`. Position equals the cube of elapsed\n * time.\n *\n * http://easings.net/#easeInCubic\n */\n static cubic(t) {\n return t * t * t;\n }\n\n /**\n * A power function. Position is equal to the Nth power of elapsed time.\n *\n * n = 4: http://easings.net/#easeInQuart\n * n = 5: http://easings.net/#easeInQuint\n */\n static poly(n) {\n return t => Math.pow(t, n);\n }\n\n /**\n * A sinusoidal function.\n *\n * http://easings.net/#easeInSine\n */\n static sin(t) {\n return 1 - Math.cos(t * Math.PI / 2);\n }\n\n /**\n * A circular function.\n *\n * http://easings.net/#easeInCirc\n */\n static circle(t) {\n return 1 - Math.sqrt(1 - t * t);\n }\n\n /**\n * An exponential function.\n *\n * http://easings.net/#easeInExpo\n */\n static exp(t) {\n return Math.pow(2, 10 * (t - 1));\n }\n\n /**\n * A simple elastic interaction, similar to a spring oscillating back and\n * forth.\n *\n * Default bounciness is 1, which overshoots a little bit once. 0 bounciness\n * doesn't overshoot at all, and bounciness of N > 1 will overshoot about N\n * times.\n *\n * http://easings.net/#easeInElastic\n */\n static elastic(bounciness) {\n if (bounciness === void 0) {\n bounciness = 1;\n }\n var p = bounciness * Math.PI;\n return t => 1 - Math.pow(Math.cos(t * Math.PI / 2), 3) * Math.cos(t * p);\n }\n\n /**\n * Use with `Animated.parallel()` to create a simple effect where the object\n * animates back slightly as the animation starts.\n *\n * Wolfram Plot:\n *\n * - http://tiny.cc/back_default (s = 1.70158, default)\n */\n static back(s) {\n if (s === void 0) {\n s = 1.70158;\n }\n return t => t * t * ((s + 1) * t - s);\n }\n\n /**\n * Provides a simple bouncing effect.\n *\n * http://easings.net/#easeInBounce\n */\n static bounce(t) {\n if (t < 1 / 2.75) {\n return 7.5625 * t * t;\n }\n if (t < 2 / 2.75) {\n var _t = t - 1.5 / 2.75;\n return 7.5625 * _t * _t + 0.75;\n }\n if (t < 2.5 / 2.75) {\n var _t2 = t - 2.25 / 2.75;\n return 7.5625 * _t2 * _t2 + 0.9375;\n }\n var t2 = t - 2.625 / 2.75;\n return 7.5625 * t2 * t2 + 0.984375;\n }\n\n /**\n * Provides a cubic bezier curve, equivalent to CSS Transitions'\n * `transition-timing-function`.\n *\n * A useful tool to visualize cubic bezier curves can be found at\n * http://cubic-bezier.com/\n */\n static bezier(x1, y1, x2, y2) {\n return _bezier(x1, y1, x2, y2);\n }\n\n /**\n * Runs an easing function forwards.\n */\n static in(easing) {\n return easing;\n }\n\n /**\n * Runs an easing function backwards.\n */\n static out(easing) {\n return t => 1 - easing(1 - t);\n }\n\n /**\n * Makes any easing function symmetrical. The easing function will run\n * forwards for half of the duration, then backwards for the rest of the\n * duration.\n */\n static inOut(easing) {\n return t => {\n if (t < 0.5) {\n return easing(t * 2) / 2;\n }\n return 1 - easing((1 - t) * 2) / 2;\n };\n }\n}\nexport default Easing;","/**\n * Portions Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n/**\n * BezierEasing - use bezier curve for transition easing function\n * https://github.com/gre/bezier-easing\n * @copyright 2014-2015 Gaëtan Renaudeau. MIT License.\n */\n\n'use strict';\n\n// These values are established by empiricism with tests (tradeoff: performance VS precision)\nvar NEWTON_ITERATIONS = 4;\nvar NEWTON_MIN_SLOPE = 0.001;\nvar SUBDIVISION_PRECISION = 0.0000001;\nvar SUBDIVISION_MAX_ITERATIONS = 10;\nvar kSplineTableSize = 11;\nvar kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\nvar float32ArraySupported = typeof Float32Array === 'function';\nfunction A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n}\nfunction B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n}\nfunction C(aA1) {\n return 3.0 * aA1;\n}\n\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\nfunction calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n}\n\n// Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\nfunction getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n}\nfunction binarySubdivide(aX, _aA, _aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0,\n aA = _aA,\n aB = _aB;\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n return currentT;\n}\nfunction newtonRaphsonIterate(aX, _aGuessT, mX1, mX2) {\n var aGuessT = _aGuessT;\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) {\n return aGuessT;\n }\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n}\nexport default function bezier(mX1, mY1, mX2, mY2) {\n if (!(mX1 >= 0 && mX1 <= 1 && mX2 >= 0 && mX2 <= 1)) {\n throw new Error('bezier x values must be in [0, 1] range');\n }\n\n // Precompute samples table\n var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n if (mX1 !== mY1 || mX2 !== mY2) {\n for (var i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n }\n function getTForX(aX) {\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n --currentSample;\n\n // Interpolate to provide an initial guess for t\n var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n } else if (initialSlope === 0.0) {\n return guessForT;\n } else {\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n }\n return function BezierEasing(x) {\n if (mX1 === mY1 && mX2 === mY2) {\n return x; // linear\n }\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n if (x === 0) {\n return 0;\n }\n if (x === 1) {\n return 1;\n }\n return calcBezier(getTForX(x), mY1, mY2);\n };\n}\n;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport Easing from '../../vendor/react-native/Animated/Easing';\nexport default Easing;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n\n'use strict';\n\n/*\n * @returns {bool} true if different, false if equal\n */\nvar deepDiffer = function deepDiffer(one, two, maxDepth) {\n if (maxDepth === void 0) {\n maxDepth = -1;\n }\n if (maxDepth === 0) {\n return true;\n }\n if (one === two) {\n // Short circuit on identical object references instead of traversing them.\n return false;\n }\n if (typeof one === 'function' && typeof two === 'function') {\n // We consider all functions equal\n return false;\n }\n if (typeof one !== 'object' || one === null) {\n // Primitives can be directly compared\n return one !== two;\n }\n if (typeof two !== 'object' || two === null) {\n // We know they are different because the previous case would have triggered\n // otherwise.\n return true;\n }\n if (one.constructor !== two.constructor) {\n return true;\n }\n if (Array.isArray(one)) {\n // We know two is also an array because the constructors are equal\n var len = one.length;\n if (two.length !== len) {\n return true;\n }\n for (var ii = 0; ii < len; ii++) {\n if (deepDiffer(one[ii], two[ii], maxDepth - 1)) {\n return true;\n }\n }\n } else {\n for (var key in one) {\n if (deepDiffer(one[key], two[key], maxDepth - 1)) {\n return true;\n }\n }\n for (var twoKey in two) {\n // The only case we haven't checked yet is keys that are in two but aren't\n // in one, which means they are different.\n if (one[twoKey] === undefined && two[twoKey] !== undefined) {\n return true;\n }\n }\n }\n return false;\n};\nexport default deepDiffer;","var safeIsNaN = Number.isNaN ||\n function ponyfill(value) {\n return typeof value === 'number' && value !== value;\n };\nfunction isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (safeIsNaN(first) && safeIsNaN(second)) {\n return true;\n }\n return false;\n}\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (!isEqual(newInputs[i], lastInputs[i])) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) { isEqual = areInputsEqual; }\n var cache = null;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (cache && cache.lastThis === this && isEqual(newArgs, cache.lastArgs)) {\n return cache.lastResult;\n }\n var lastResult = resultFn.apply(this, newArgs);\n cache = {\n lastResult: lastResult,\n lastArgs: newArgs,\n lastThis: this,\n };\n return lastResult;\n }\n memoized.clear = function clear() {\n cache = null;\n };\n return memoized;\n}\n\nexport { memoizeOne as default };\n","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nvar _excluded = [\"numColumns\", \"columnWrapperStyle\", \"removeClippedSubviews\", \"strictMode\"];\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\nimport View from '../../../exports/View';\nimport StyleSheet from '../../../exports/StyleSheet';\nimport deepDiffer from '../deepDiffer';\nimport Platform from '../../../exports/Platform';\nimport invariant from 'fbjs/lib/invariant';\nimport * as React from 'react';\nimport VirtualizedList from '../VirtualizedList';\nimport { keyExtractor as defaultKeyExtractor } from '../VirtualizeUtils';\nimport memoizeOne from 'memoize-one';\n/**\n * Default Props Helper Functions\n * Use the following helper functions for default values\n */ // removeClippedSubviewsOrDefault(this.props.removeClippedSubviews)\nfunction removeClippedSubviewsOrDefault(removeClippedSubviews) {\n return removeClippedSubviews !== null && removeClippedSubviews !== void 0 ? removeClippedSubviews : Platform.OS === 'android';\n}\n\n// numColumnsOrDefault(this.props.numColumns)\nfunction numColumnsOrDefault(numColumns) {\n return numColumns !== null && numColumns !== void 0 ? numColumns : 1;\n}\nfunction isArrayLike(data) {\n // $FlowExpectedError[incompatible-use]\n return typeof Object(data).length === 'number';\n}\n/**\n * A performant interface for rendering simple, flat lists, supporting the most handy features:\n *\n * - Fully cross-platform.\n * - Optional horizontal mode.\n * - Configurable viewability callbacks.\n * - Header support.\n * - Footer support.\n * - Separator support.\n * - Pull to Refresh.\n * - Scroll loading.\n * - ScrollToIndex support.\n *\n * If you need section support, use [``](docs/sectionlist.html).\n *\n * Minimal Example:\n *\n * {item.key}}\n * />\n *\n * More complex, multi-select example demonstrating `PureComponent` usage for perf optimization and avoiding bugs.\n *\n * - By binding the `onPressItem` handler, the props will remain `===` and `PureComponent` will\n * prevent wasteful re-renders unless the actual `id`, `selected`, or `title` props change, even\n * if the components rendered in `MyListItem` did not have such optimizations.\n * - By passing `extraData={this.state}` to `FlatList` we make sure `FlatList` itself will re-render\n * when the `state.selected` changes. Without setting this prop, `FlatList` would not know it\n * needs to re-render any items because it is also a `PureComponent` and the prop comparison will\n * not show any changes.\n * - `keyExtractor` tells the list to use the `id`s for the react keys instead of the default `key` property.\n *\n *\n * class MyListItem extends React.PureComponent {\n * _onPress = () => {\n * this.props.onPressItem(this.props.id);\n * };\n *\n * render() {\n * const textColor = this.props.selected ? \"red\" : \"black\";\n * return (\n * \n * \n * \n * {this.props.title}\n * \n * \n * \n * );\n * }\n * }\n *\n * class MultiSelectList extends React.PureComponent {\n * state = {selected: (new Map(): Map)};\n *\n * _keyExtractor = (item, index) => item.id;\n *\n * _onPressItem = (id: string) => {\n * // updater functions are preferred for transactional updates\n * this.setState((state) => {\n * // copy the map rather than modifying state.\n * const selected = new Map(state.selected);\n * selected.set(id, !selected.get(id)); // toggle\n * return {selected};\n * });\n * };\n *\n * _renderItem = ({item}) => (\n * \n * );\n *\n * render() {\n * return (\n * \n * );\n * }\n * }\n *\n * This is a convenience wrapper around [``](docs/virtualizedlist.html),\n * and thus inherits its props (as well as those of `ScrollView`) that aren't explicitly listed\n * here, along with the following caveats:\n *\n * - Internal state is not preserved when content scrolls out of the render window. Make sure all\n * your data is captured in the item data or external stores like Flux, Redux, or Relay.\n * - This is a `PureComponent` which means that it will not re-render if `props` remain shallow-\n * equal. Make sure that everything your `renderItem` function depends on is passed as a prop\n * (e.g. `extraData`) that is not `===` after updates, otherwise your UI may not update on\n * changes. This includes the `data` prop and parent component state.\n * - In order to constrain memory and enable smooth scrolling, content is rendered asynchronously\n * offscreen. This means it's possible to scroll faster than the fill rate ands momentarily see\n * blank content. This is a tradeoff that can be adjusted to suit the needs of each application,\n * and we are working on improving it behind the scenes.\n * - By default, the list looks for a `key` prop on each item and uses that for the React key.\n * Alternatively, you can provide a custom `keyExtractor` prop.\n *\n * Also inherits [ScrollView Props](docs/scrollview.html#props), unless it is nested in another FlatList of same orientation.\n */\nclass FlatList extends React.PureComponent {\n /**\n * Scrolls to the end of the content. May be janky without `getItemLayout` prop.\n */\n scrollToEnd(params) {\n if (this._listRef) {\n this._listRef.scrollToEnd(params);\n }\n }\n\n /**\n * Scrolls to the item at the specified index such that it is positioned in the viewable area\n * such that `viewPosition` 0 places it at the top, 1 at the bottom, and 0.5 centered in the\n * middle. `viewOffset` is a fixed number of pixels to offset the final target position.\n *\n * Note: cannot scroll to locations outside the render window without specifying the\n * `getItemLayout` prop.\n */\n scrollToIndex(params) {\n if (this._listRef) {\n this._listRef.scrollToIndex(params);\n }\n }\n\n /**\n * Requires linear scan through data - use `scrollToIndex` instead if possible.\n *\n * Note: cannot scroll to locations outside the render window without specifying the\n * `getItemLayout` prop.\n */\n scrollToItem(params) {\n if (this._listRef) {\n this._listRef.scrollToItem(params);\n }\n }\n\n /**\n * Scroll to a specific content pixel offset in the list.\n *\n * Check out [scrollToOffset](docs/virtualizedlist.html#scrolltooffset) of VirtualizedList\n */\n scrollToOffset(params) {\n if (this._listRef) {\n this._listRef.scrollToOffset(params);\n }\n }\n\n /**\n * Tells the list an interaction has occurred, which should trigger viewability calculations, e.g.\n * if `waitForInteractions` is true and the user has not scrolled. This is typically called by\n * taps on items or by navigation actions.\n */\n recordInteraction() {\n if (this._listRef) {\n this._listRef.recordInteraction();\n }\n }\n\n /**\n * Displays the scroll indicators momentarily.\n *\n * @platform ios\n */\n flashScrollIndicators() {\n if (this._listRef) {\n this._listRef.flashScrollIndicators();\n }\n }\n\n /**\n * Provides a handle to the underlying scroll responder.\n */\n getScrollResponder() {\n if (this._listRef) {\n return this._listRef.getScrollResponder();\n }\n }\n\n /**\n * Provides a reference to the underlying host component\n */\n getNativeScrollRef() {\n if (this._listRef) {\n /* $FlowFixMe[incompatible-return] Suppresses errors found when fixing\n * TextInput typing */\n return this._listRef.getScrollRef();\n }\n }\n getScrollableNode() {\n if (this._listRef) {\n return this._listRef.getScrollableNode();\n }\n }\n constructor(_props) {\n super(_props);\n this._virtualizedListPairs = [];\n this._captureRef = ref => {\n this._listRef = ref;\n };\n this._getItem = (data, index) => {\n var numColumns = numColumnsOrDefault(this.props.numColumns);\n if (numColumns > 1) {\n var ret = [];\n for (var kk = 0; kk < numColumns; kk++) {\n var itemIndex = index * numColumns + kk;\n if (itemIndex < data.length) {\n var _item = data[itemIndex];\n ret.push(_item);\n }\n }\n return ret;\n } else {\n return data[index];\n }\n };\n this._getItemCount = data => {\n // Legacy behavior of FlatList was to forward \"undefined\" length if invalid\n // data like a non-arraylike object is passed. VirtualizedList would then\n // coerce this, and the math would work out to no-op. For compatibility, if\n // invalid data is passed, we tell VirtualizedList there are zero items\n // available to prevent it from trying to read from the invalid data\n // (without propagating invalidly typed data).\n if (data != null && isArrayLike(data)) {\n var numColumns = numColumnsOrDefault(this.props.numColumns);\n return numColumns > 1 ? Math.ceil(data.length / numColumns) : data.length;\n } else {\n return 0;\n }\n };\n this._keyExtractor = (items, index) => {\n var _this$props$keyExtrac;\n var numColumns = numColumnsOrDefault(this.props.numColumns);\n var keyExtractor = (_this$props$keyExtrac = this.props.keyExtractor) !== null && _this$props$keyExtrac !== void 0 ? _this$props$keyExtrac : defaultKeyExtractor;\n if (numColumns > 1) {\n invariant(Array.isArray(items), 'FlatList: Encountered internal consistency error, expected each item to consist of an ' + 'array with 1-%s columns; instead, received a single item.', numColumns);\n return items.map((item, kk) => keyExtractor(item, index * numColumns + kk)).join(':');\n }\n\n // $FlowFixMe[incompatible-call] Can't call keyExtractor with an array\n return keyExtractor(items, index);\n };\n this._renderer = (ListItemComponent, renderItem, columnWrapperStyle, numColumns, extraData\n // $FlowFixMe[missing-local-annot]\n ) => {\n var cols = numColumnsOrDefault(numColumns);\n var render = props => {\n if (ListItemComponent) {\n // $FlowFixMe[not-a-component] Component isn't valid\n // $FlowFixMe[incompatible-type-arg] Component isn't valid\n // $FlowFixMe[incompatible-return] Component isn't valid\n return /*#__PURE__*/React.createElement(ListItemComponent, props);\n } else if (renderItem) {\n // $FlowFixMe[incompatible-call]\n return renderItem(props);\n } else {\n return null;\n }\n };\n var renderProp = info => {\n if (cols > 1) {\n var _item2 = info.item,\n _index = info.index;\n invariant(Array.isArray(_item2), 'Expected array of items with numColumns > 1');\n return /*#__PURE__*/React.createElement(View, {\n style: [styles.row, columnWrapperStyle]\n }, _item2.map((it, kk) => {\n var element = render({\n // $FlowFixMe[incompatible-call]\n item: it,\n index: _index * cols + kk,\n separators: info.separators\n });\n return element != null ? /*#__PURE__*/React.createElement(React.Fragment, {\n key: kk\n }, element) : null;\n }));\n } else {\n return render(info);\n }\n };\n return ListItemComponent ? {\n ListItemComponent: renderProp\n } : {\n renderItem: renderProp\n };\n };\n this._memoizedRenderer = memoizeOne(this._renderer);\n this._checkProps(this.props);\n if (this.props.viewabilityConfigCallbackPairs) {\n this._virtualizedListPairs = this.props.viewabilityConfigCallbackPairs.map(pair => ({\n viewabilityConfig: pair.viewabilityConfig,\n onViewableItemsChanged: this._createOnViewableItemsChanged(pair.onViewableItemsChanged)\n }));\n } else if (this.props.onViewableItemsChanged) {\n this._virtualizedListPairs.push({\n /* $FlowFixMe[incompatible-call] (>=0.63.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.63 was deployed. To\n * see the error delete this comment and run Flow. */\n viewabilityConfig: this.props.viewabilityConfig,\n onViewableItemsChanged: this._createOnViewableItemsChanged(this.props.onViewableItemsChanged)\n });\n }\n }\n\n // $FlowFixMe[missing-local-annot]\n componentDidUpdate(prevProps) {\n invariant(prevProps.numColumns === this.props.numColumns, 'Changing numColumns on the fly is not supported. Change the key prop on FlatList when ' + 'changing the number of columns to force a fresh render of the component.');\n invariant(prevProps.onViewableItemsChanged === this.props.onViewableItemsChanged, 'Changing onViewableItemsChanged on the fly is not supported');\n invariant(!deepDiffer(prevProps.viewabilityConfig, this.props.viewabilityConfig), 'Changing viewabilityConfig on the fly is not supported');\n invariant(prevProps.viewabilityConfigCallbackPairs === this.props.viewabilityConfigCallbackPairs, 'Changing viewabilityConfigCallbackPairs on the fly is not supported');\n this._checkProps(this.props);\n }\n // $FlowFixMe[missing-local-annot]\n _checkProps(props) {\n var getItem = props.getItem,\n getItemCount = props.getItemCount,\n horizontal = props.horizontal,\n columnWrapperStyle = props.columnWrapperStyle,\n onViewableItemsChanged = props.onViewableItemsChanged,\n viewabilityConfigCallbackPairs = props.viewabilityConfigCallbackPairs;\n var numColumns = numColumnsOrDefault(this.props.numColumns);\n invariant(!getItem && !getItemCount, 'FlatList does not support custom data formats.');\n if (numColumns > 1) {\n invariant(!horizontal, 'numColumns does not support horizontal.');\n } else {\n invariant(!columnWrapperStyle, 'columnWrapperStyle not supported for single column lists');\n }\n invariant(!(onViewableItemsChanged && viewabilityConfigCallbackPairs), 'FlatList does not support setting both onViewableItemsChanged and ' + 'viewabilityConfigCallbackPairs.');\n }\n _pushMultiColumnViewable(arr, v) {\n var _this$props$keyExtrac2;\n var numColumns = numColumnsOrDefault(this.props.numColumns);\n var keyExtractor = (_this$props$keyExtrac2 = this.props.keyExtractor) !== null && _this$props$keyExtrac2 !== void 0 ? _this$props$keyExtrac2 : defaultKeyExtractor;\n v.item.forEach((item, ii) => {\n invariant(v.index != null, 'Missing index!');\n var index = v.index * numColumns + ii;\n arr.push(_objectSpread(_objectSpread({}, v), {}, {\n item,\n key: keyExtractor(item, index),\n index\n }));\n });\n }\n _createOnViewableItemsChanged(onViewableItemsChanged\n // $FlowFixMe[missing-local-annot]\n ) {\n return info => {\n var numColumns = numColumnsOrDefault(this.props.numColumns);\n if (onViewableItemsChanged) {\n if (numColumns > 1) {\n var changed = [];\n var viewableItems = [];\n info.viewableItems.forEach(v => this._pushMultiColumnViewable(viewableItems, v));\n info.changed.forEach(v => this._pushMultiColumnViewable(changed, v));\n onViewableItemsChanged({\n viewableItems,\n changed\n });\n } else {\n onViewableItemsChanged(info);\n }\n }\n };\n }\n\n // $FlowFixMe[missing-local-annot]\n\n render() {\n var _this$props = this.props,\n numColumns = _this$props.numColumns,\n columnWrapperStyle = _this$props.columnWrapperStyle,\n _removeClippedSubviews = _this$props.removeClippedSubviews,\n _this$props$strictMod = _this$props.strictMode,\n strictMode = _this$props$strictMod === void 0 ? false : _this$props$strictMod,\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\n var renderer = strictMode ? this._memoizedRenderer : this._renderer;\n return (\n /*#__PURE__*/\n // $FlowFixMe[incompatible-exact] - `restProps` (`Props`) is inexact.\n React.createElement(VirtualizedList, _extends({}, restProps, {\n getItem: this._getItem,\n getItemCount: this._getItemCount,\n keyExtractor: this._keyExtractor,\n ref: this._captureRef,\n viewabilityConfigCallbackPairs: this._virtualizedListPairs,\n removeClippedSubviews: removeClippedSubviewsOrDefault(_removeClippedSubviews)\n }, renderer(this.props.ListItemComponent, this.props.renderItem, columnWrapperStyle, numColumns, this.props.extraData)))\n );\n }\n}\nvar styles = StyleSheet.create({\n row: {\n flexDirection: 'row'\n }\n});\nexport default FlatList;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport FlatList from '../../vendor/react-native/FlatList';\nexport default FlatList;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar I18nManager = {\n allowRTL() {\n return;\n },\n forceRTL() {\n return;\n },\n getConstants() {\n return {\n isRTL: false\n };\n }\n};\nexport default I18nManager;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar assets = [];\nexport function registerAsset(asset) {\n // `push` returns new array length, so the first asset will\n // get id 1 (not 0) to make the value truthy\n return assets.push(asset);\n}\nexport function getAssetByID(assetId) {\n return assets[assetId - 1];\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar dataUriPattern = /^data:/;\nexport class ImageUriCache {\n static has(uri) {\n var entries = ImageUriCache._entries;\n var isDataUri = dataUriPattern.test(uri);\n return isDataUri || Boolean(entries[uri]);\n }\n static add(uri) {\n var entries = ImageUriCache._entries;\n var lastUsedTimestamp = Date.now();\n if (entries[uri]) {\n entries[uri].lastUsedTimestamp = lastUsedTimestamp;\n entries[uri].refCount += 1;\n } else {\n entries[uri] = {\n lastUsedTimestamp,\n refCount: 1\n };\n }\n }\n static remove(uri) {\n var entries = ImageUriCache._entries;\n if (entries[uri]) {\n entries[uri].refCount -= 1;\n }\n // Free up entries when the cache is \"full\"\n ImageUriCache._cleanUpIfNeeded();\n }\n static _cleanUpIfNeeded() {\n var entries = ImageUriCache._entries;\n var imageUris = Object.keys(entries);\n if (imageUris.length + 1 > ImageUriCache._maximumEntries) {\n var leastRecentlyUsedKey;\n var leastRecentlyUsedEntry;\n imageUris.forEach(uri => {\n var entry = entries[uri];\n if ((!leastRecentlyUsedEntry || entry.lastUsedTimestamp < leastRecentlyUsedEntry.lastUsedTimestamp) && entry.refCount === 0) {\n leastRecentlyUsedKey = uri;\n leastRecentlyUsedEntry = entry;\n }\n });\n if (leastRecentlyUsedKey) {\n delete entries[leastRecentlyUsedKey];\n }\n }\n }\n}\nImageUriCache._maximumEntries = 256;\nImageUriCache._entries = {};\nvar id = 0;\nvar requests = {};\nvar ImageLoader = {\n abort(requestId) {\n var image = requests[\"\" + requestId];\n if (image) {\n image.onerror = null;\n image.onload = null;\n image = null;\n delete requests[\"\" + requestId];\n }\n },\n getSize(uri, success, failure) {\n var complete = false;\n var interval = setInterval(callback, 16);\n var requestId = ImageLoader.load(uri, callback, errorCallback);\n function callback() {\n var image = requests[\"\" + requestId];\n if (image) {\n var naturalHeight = image.naturalHeight,\n naturalWidth = image.naturalWidth;\n if (naturalHeight && naturalWidth) {\n success(naturalWidth, naturalHeight);\n complete = true;\n }\n }\n if (complete) {\n ImageLoader.abort(requestId);\n clearInterval(interval);\n }\n }\n function errorCallback() {\n if (typeof failure === 'function') {\n failure();\n }\n ImageLoader.abort(requestId);\n clearInterval(interval);\n }\n },\n has(uri) {\n return ImageUriCache.has(uri);\n },\n load(uri, onLoad, onError) {\n id += 1;\n var image = new window.Image();\n image.onerror = onError;\n image.onload = e => {\n // avoid blocking the main thread\n var onDecode = () => onLoad({\n nativeEvent: e\n });\n if (typeof image.decode === 'function') {\n // Safari currently throws exceptions when decoding svgs.\n // We want to catch that error and allow the load handler\n // to be forwarded to the onLoad handler in this case\n image.decode().then(onDecode, onDecode);\n } else {\n setTimeout(onDecode, 0);\n }\n };\n image.src = uri;\n requests[\"\" + id] = image;\n return id;\n },\n prefetch(uri) {\n return new Promise((resolve, reject) => {\n ImageLoader.load(uri, () => {\n // Add the uri to the cache so it can be immediately displayed when used\n // but also immediately remove it to correctly reflect that it has no active references\n ImageUriCache.add(uri);\n ImageUriCache.remove(uri);\n resolve();\n }, reject);\n });\n },\n queryCache(uris) {\n var result = {};\n uris.forEach(u => {\n if (ImageUriCache.has(u)) {\n result[u] = 'disk/memory';\n }\n });\n return Promise.resolve(result);\n }\n};\nexport default ImageLoader;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"aria-label\", \"accessibilityLabel\", \"blurRadius\", \"defaultSource\", \"draggable\", \"onError\", \"onLayout\", \"onLoad\", \"onLoadEnd\", \"onLoadStart\", \"pointerEvents\", \"source\", \"style\"];\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport { getAssetByID } from '../../modules/AssetRegistry';\nimport { createBoxShadowValue } from '../StyleSheet/preprocess';\nimport ImageLoader from '../../modules/ImageLoader';\nimport PixelRatio from '../PixelRatio';\nimport StyleSheet from '../StyleSheet';\nimport TextAncestorContext from '../Text/TextAncestorContext';\nimport View from '../View';\nimport { warnOnce } from '../../modules/warnOnce';\nvar ERRORED = 'ERRORED';\nvar LOADED = 'LOADED';\nvar LOADING = 'LOADING';\nvar IDLE = 'IDLE';\nvar _filterId = 0;\nvar svgDataUriPattern = /^(data:image\\/svg\\+xml;utf8,)(.*)/;\nfunction createTintColorSVG(tintColor, id) {\n return tintColor && id != null ? /*#__PURE__*/React.createElement(\"svg\", {\n style: {\n position: 'absolute',\n height: 0,\n visibility: 'hidden',\n width: 0\n }\n }, /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"filter\", {\n id: \"tint-\" + id,\n suppressHydrationWarning: true\n }, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodColor: \"\" + tintColor,\n key: tintColor\n }), /*#__PURE__*/React.createElement(\"feComposite\", {\n in2: \"SourceAlpha\",\n operator: \"atop\"\n })))) : null;\n}\nfunction extractNonStandardStyleProps(style, blurRadius, filterId, tintColorProp) {\n var flatStyle = StyleSheet.flatten(style);\n var filter = flatStyle.filter,\n resizeMode = flatStyle.resizeMode,\n shadowOffset = flatStyle.shadowOffset,\n tintColor = flatStyle.tintColor;\n if (flatStyle.resizeMode) {\n warnOnce('Image.style.resizeMode', 'Image: style.resizeMode is deprecated. Please use props.resizeMode.');\n }\n if (flatStyle.tintColor) {\n warnOnce('Image.style.tintColor', 'Image: style.tintColor is deprecated. Please use props.tintColor.');\n }\n\n // Add CSS filters\n // React Native exposes these features as props and proprietary styles\n var filters = [];\n var _filter = null;\n if (filter) {\n filters.push(filter);\n }\n if (blurRadius) {\n filters.push(\"blur(\" + blurRadius + \"px)\");\n }\n if (shadowOffset) {\n var shadowString = createBoxShadowValue(flatStyle);\n if (shadowString) {\n filters.push(\"drop-shadow(\" + shadowString + \")\");\n }\n }\n if ((tintColorProp || tintColor) && filterId != null) {\n filters.push(\"url(#tint-\" + filterId + \")\");\n }\n if (filters.length > 0) {\n _filter = filters.join(' ');\n }\n return [resizeMode, _filter, tintColor];\n}\nfunction resolveAssetDimensions(source) {\n if (typeof source === 'number') {\n var _getAssetByID = getAssetByID(source),\n _height = _getAssetByID.height,\n _width = _getAssetByID.width;\n return {\n height: _height,\n width: _width\n };\n } else if (source != null && !Array.isArray(source) && typeof source === 'object') {\n var _height2 = source.height,\n _width2 = source.width;\n return {\n height: _height2,\n width: _width2\n };\n }\n}\nfunction resolveAssetUri(source) {\n var uri = null;\n if (typeof source === 'number') {\n // get the URI from the packager\n var asset = getAssetByID(source);\n if (asset == null) {\n throw new Error(\"Image: asset with ID \\\"\" + source + \"\\\" could not be found. Please check the image source or packager.\");\n }\n var scale = asset.scales[0];\n if (asset.scales.length > 1) {\n var preferredScale = PixelRatio.get();\n // Get the scale which is closest to the preferred scale\n scale = asset.scales.reduce((prev, curr) => Math.abs(curr - preferredScale) < Math.abs(prev - preferredScale) ? curr : prev);\n }\n var scaleSuffix = scale !== 1 ? \"@\" + scale + \"x\" : '';\n uri = asset ? asset.httpServerLocation + \"/\" + asset.name + scaleSuffix + \".\" + asset.type : '';\n } else if (typeof source === 'string') {\n uri = source;\n } else if (source && typeof source.uri === 'string') {\n uri = source.uri;\n }\n if (uri) {\n var match = uri.match(svgDataUriPattern);\n // inline SVG markup may contain characters (e.g., #, \") that need to be escaped\n if (match) {\n var prefix = match[1],\n svg = match[2];\n var encodedSvg = encodeURIComponent(svg);\n return \"\" + prefix + encodedSvg;\n }\n }\n return uri;\n}\nvar Image = /*#__PURE__*/React.forwardRef((props, ref) => {\n var _ariaLabel = props['aria-label'],\n accessibilityLabel = props.accessibilityLabel,\n blurRadius = props.blurRadius,\n defaultSource = props.defaultSource,\n draggable = props.draggable,\n onError = props.onError,\n onLayout = props.onLayout,\n onLoad = props.onLoad,\n onLoadEnd = props.onLoadEnd,\n onLoadStart = props.onLoadStart,\n pointerEvents = props.pointerEvents,\n source = props.source,\n style = props.style,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n var ariaLabel = _ariaLabel || accessibilityLabel;\n if (process.env.NODE_ENV !== 'production') {\n if (props.children) {\n throw new Error('The component cannot contain children. If you want to render content on top of the image, consider using the component or absolute positioning.');\n }\n }\n var _React$useState = React.useState(() => {\n var uri = resolveAssetUri(source);\n if (uri != null) {\n var isLoaded = ImageLoader.has(uri);\n if (isLoaded) {\n return LOADED;\n }\n }\n return IDLE;\n }),\n state = _React$useState[0],\n updateState = _React$useState[1];\n var _React$useState2 = React.useState({}),\n layout = _React$useState2[0],\n updateLayout = _React$useState2[1];\n var hasTextAncestor = React.useContext(TextAncestorContext);\n var hiddenImageRef = React.useRef(null);\n var filterRef = React.useRef(_filterId++);\n var requestRef = React.useRef(null);\n var shouldDisplaySource = state === LOADED || state === LOADING && defaultSource == null;\n var _extractNonStandardSt = extractNonStandardStyleProps(style, blurRadius, filterRef.current, props.tintColor),\n _resizeMode = _extractNonStandardSt[0],\n filter = _extractNonStandardSt[1],\n _tintColor = _extractNonStandardSt[2];\n var resizeMode = props.resizeMode || _resizeMode || 'cover';\n var tintColor = props.tintColor || _tintColor;\n var selectedSource = shouldDisplaySource ? source : defaultSource;\n var displayImageUri = resolveAssetUri(selectedSource);\n var imageSizeStyle = resolveAssetDimensions(selectedSource);\n var backgroundImage = displayImageUri ? \"url(\\\"\" + displayImageUri + \"\\\")\" : null;\n var backgroundSize = getBackgroundSize();\n\n // Accessibility image allows users to trigger the browser's image context menu\n var hiddenImage = displayImageUri ? createElement('img', {\n alt: ariaLabel || '',\n style: styles.accessibilityImage$raw,\n draggable: draggable || false,\n ref: hiddenImageRef,\n src: displayImageUri\n }) : null;\n function getBackgroundSize() {\n if (hiddenImageRef.current != null && (resizeMode === 'center' || resizeMode === 'repeat')) {\n var _hiddenImageRef$curre = hiddenImageRef.current,\n naturalHeight = _hiddenImageRef$curre.naturalHeight,\n naturalWidth = _hiddenImageRef$curre.naturalWidth;\n var _height3 = layout.height,\n _width3 = layout.width;\n if (naturalHeight && naturalWidth && _height3 && _width3) {\n var scaleFactor = Math.min(1, _width3 / naturalWidth, _height3 / naturalHeight);\n var x = Math.ceil(scaleFactor * naturalWidth);\n var y = Math.ceil(scaleFactor * naturalHeight);\n return x + \"px \" + y + \"px\";\n }\n }\n }\n function handleLayout(e) {\n if (resizeMode === 'center' || resizeMode === 'repeat' || onLayout) {\n var _layout = e.nativeEvent.layout;\n onLayout && onLayout(e);\n updateLayout(_layout);\n }\n }\n\n // Image loading\n var uri = resolveAssetUri(source);\n React.useEffect(() => {\n abortPendingRequest();\n if (uri != null) {\n updateState(LOADING);\n if (onLoadStart) {\n onLoadStart();\n }\n requestRef.current = ImageLoader.load(uri, function load(e) {\n updateState(LOADED);\n if (onLoad) {\n onLoad(e);\n }\n if (onLoadEnd) {\n onLoadEnd();\n }\n }, function error() {\n updateState(ERRORED);\n if (onError) {\n onError({\n nativeEvent: {\n error: \"Failed to load resource \" + uri + \" (404)\"\n }\n });\n }\n if (onLoadEnd) {\n onLoadEnd();\n }\n });\n }\n function abortPendingRequest() {\n if (requestRef.current != null) {\n ImageLoader.abort(requestRef.current);\n requestRef.current = null;\n }\n }\n return abortPendingRequest;\n }, [uri, requestRef, updateState, onError, onLoad, onLoadEnd, onLoadStart]);\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, {\n \"aria-label\": ariaLabel,\n onLayout: handleLayout,\n pointerEvents: pointerEvents,\n ref: ref,\n style: [styles.root, hasTextAncestor && styles.inline, imageSizeStyle, style, styles.undo,\n // TEMP: avoid deprecated shadow props regression\n // until Image refactored to use createElement.\n {\n boxShadow: null\n }]\n }), /*#__PURE__*/React.createElement(View, {\n style: [styles.image, resizeModeStyles[resizeMode], {\n backgroundImage,\n filter\n }, backgroundSize != null && {\n backgroundSize\n }],\n suppressHydrationWarning: true\n }), hiddenImage, createTintColorSVG(tintColor, filterRef.current));\n});\nImage.displayName = 'Image';\n\n// $FlowIgnore: This is the correct type, but casting makes it unhappy since the variables aren't defined yet\nvar ImageWithStatics = Image;\nImageWithStatics.getSize = function (uri, success, failure) {\n ImageLoader.getSize(uri, success, failure);\n};\nImageWithStatics.prefetch = function (uri) {\n return ImageLoader.prefetch(uri);\n};\nImageWithStatics.queryCache = function (uris) {\n return ImageLoader.queryCache(uris);\n};\nvar styles = StyleSheet.create({\n root: {\n flexBasis: 'auto',\n overflow: 'hidden',\n zIndex: 0\n },\n inline: {\n display: 'inline-flex'\n },\n undo: {\n // These styles are converted to CSS filters applied to the\n // element displaying the background image.\n blurRadius: null,\n shadowColor: null,\n shadowOpacity: null,\n shadowOffset: null,\n shadowRadius: null,\n tintColor: null,\n // These styles are not supported\n overlayColor: null,\n resizeMode: null\n },\n image: _objectSpread(_objectSpread({}, StyleSheet.absoluteFillObject), {}, {\n backgroundColor: 'transparent',\n backgroundPosition: 'center',\n backgroundRepeat: 'no-repeat',\n backgroundSize: 'cover',\n height: '100%',\n width: '100%',\n zIndex: -1\n }),\n accessibilityImage$raw: _objectSpread(_objectSpread({}, StyleSheet.absoluteFillObject), {}, {\n height: '100%',\n opacity: 0,\n width: '100%',\n zIndex: -1\n })\n});\nvar resizeModeStyles = StyleSheet.create({\n center: {\n backgroundSize: 'auto'\n },\n contain: {\n backgroundSize: 'contain'\n },\n cover: {\n backgroundSize: 'cover'\n },\n none: {\n backgroundPosition: '0',\n backgroundSize: 'auto'\n },\n repeat: {\n backgroundPosition: '0',\n backgroundRepeat: 'repeat',\n backgroundSize: 'auto'\n },\n stretch: {\n backgroundSize: '100% 100%'\n }\n});\nexport default ImageWithStatics;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport invariant from 'fbjs/lib/invariant';\nclass TaskQueue {\n constructor(_ref) {\n var onMoreTasks = _ref.onMoreTasks;\n this._onMoreTasks = onMoreTasks;\n this._queueStack = [{\n tasks: [],\n popable: true\n }];\n }\n enqueue(task) {\n this._getCurrentQueue().push(task);\n }\n enqueueTasks(tasks) {\n tasks.forEach(task => this.enqueue(task));\n }\n cancelTasks(tasksToCancel) {\n this._queueStack = this._queueStack.map(queue => _objectSpread(_objectSpread({}, queue), {}, {\n tasks: queue.tasks.filter(task => tasksToCancel.indexOf(task) === -1)\n })).filter((queue, idx) => queue.tasks.length > 0 || idx === 0);\n }\n hasTasksToProcess() {\n return this._getCurrentQueue().length > 0;\n }\n\n /**\n * Executes the next task in the queue.\n */\n processNext() {\n var queue = this._getCurrentQueue();\n if (queue.length) {\n var task = queue.shift();\n try {\n if (typeof task === 'object' && task.gen) {\n this._genPromise(task);\n } else if (typeof task === 'object' && task.run) {\n task.run();\n } else {\n invariant(typeof task === 'function', 'Expected Function, SimpleTask, or PromiseTask, but got:\\n' + JSON.stringify(task, null, 2));\n task();\n }\n } catch (e) {\n e.message = 'TaskQueue: Error with task ' + (task.name || '') + ': ' + e.message;\n throw e;\n }\n }\n }\n _getCurrentQueue() {\n var stackIdx = this._queueStack.length - 1;\n var queue = this._queueStack[stackIdx];\n if (queue.popable && queue.tasks.length === 0 && stackIdx > 0) {\n this._queueStack.pop();\n return this._getCurrentQueue();\n } else {\n return queue.tasks;\n }\n }\n _genPromise(task) {\n var length = this._queueStack.push({\n tasks: [],\n popable: false\n });\n var stackIdx = length - 1;\n var stackItem = this._queueStack[stackIdx];\n task.gen().then(() => {\n stackItem.popable = true;\n this.hasTasksToProcess() && this._onMoreTasks();\n }).catch(ex => {\n setTimeout(() => {\n ex.message = \"TaskQueue: Error resolving Promise in task \" + task.name + \": \" + ex.message;\n throw ex;\n }, 0);\n });\n }\n}\nexport default TaskQueue;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport canUseDOM from '../canUseDom';\nvar _requestIdleCallback = function _requestIdleCallback(cb, options) {\n return setTimeout(() => {\n var start = Date.now();\n cb({\n didTimeout: false,\n timeRemaining() {\n return Math.max(0, 50 - (Date.now() - start));\n }\n });\n }, 1);\n};\nvar _cancelIdleCallback = function _cancelIdleCallback(id) {\n clearTimeout(id);\n};\nvar isSupported = canUseDOM && typeof window.requestIdleCallback !== 'undefined';\nvar requestIdleCallback = isSupported ? window.requestIdleCallback : _requestIdleCallback;\nvar cancelIdleCallback = isSupported ? window.cancelIdleCallback : _cancelIdleCallback;\nexport default requestIdleCallback;\nexport { cancelIdleCallback };","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport invariant from 'fbjs/lib/invariant';\nimport TaskQueue from './TaskQueue';\nimport EventEmitter from '../../vendor/react-native/vendor/emitter/EventEmitter';\nimport requestIdleCallback from '../../modules/requestIdleCallback';\nvar _emitter = new EventEmitter();\nvar InteractionManager = {\n Events: {\n interactionStart: 'interactionStart',\n interactionComplete: 'interactionComplete'\n },\n /**\n * Schedule a function to run after all interactions have completed.\n */\n runAfterInteractions(task) {\n var tasks = [];\n var promise = new Promise(resolve => {\n _scheduleUpdate();\n if (task) {\n tasks.push(task);\n }\n tasks.push({\n run: resolve,\n name: 'resolve ' + (task && task.name || '?')\n });\n _taskQueue.enqueueTasks(tasks);\n });\n return {\n then: promise.then.bind(promise),\n done: promise.then.bind(promise),\n cancel: () => {\n _taskQueue.cancelTasks(tasks);\n }\n };\n },\n /**\n * Notify manager that an interaction has started.\n */\n createInteractionHandle() {\n _scheduleUpdate();\n var handle = ++_inc;\n _addInteractionSet.add(handle);\n return handle;\n },\n /**\n * Notify manager that an interaction has completed.\n */\n clearInteractionHandle(handle) {\n invariant(!!handle, 'Must provide a handle to clear.');\n _scheduleUpdate();\n _addInteractionSet.delete(handle);\n _deleteInteractionSet.add(handle);\n },\n addListener: _emitter.addListener.bind(_emitter),\n /**\n *\n * @param deadline\n */\n setDeadline(deadline) {\n _deadline = deadline;\n }\n};\nvar _interactionSet = new Set();\nvar _addInteractionSet = new Set();\nvar _deleteInteractionSet = new Set();\nvar _taskQueue = new TaskQueue({\n onMoreTasks: _scheduleUpdate\n});\nvar _nextUpdateHandle = 0;\nvar _inc = 0;\nvar _deadline = -1;\n\n/**\n * Schedule an asynchronous update to the interaction state.\n */\nfunction _scheduleUpdate() {\n if (!_nextUpdateHandle) {\n if (_deadline > 0) {\n _nextUpdateHandle = setTimeout(_processUpdate);\n } else {\n _nextUpdateHandle = requestIdleCallback(_processUpdate);\n }\n }\n}\n\n/**\n * Notify listeners, process queue, etc\n */\nfunction _processUpdate() {\n _nextUpdateHandle = 0;\n var interactionCount = _interactionSet.size;\n _addInteractionSet.forEach(handle => _interactionSet.add(handle));\n _deleteInteractionSet.forEach(handle => _interactionSet.delete(handle));\n var nextInteractionCount = _interactionSet.size;\n if (interactionCount !== 0 && nextInteractionCount === 0) {\n _emitter.emit(InteractionManager.Events.interactionComplete);\n } else if (interactionCount === 0 && nextInteractionCount !== 0) {\n _emitter.emit(InteractionManager.Events.interactionStart);\n }\n if (nextInteractionCount === 0) {\n // It seems that we can't know the running time of the current event loop,\n // we can only calculate the running time of the current task queue.\n var begin = Date.now();\n while (_taskQueue.hasTasksToProcess()) {\n _taskQueue.processNext();\n if (_deadline > 0 && Date.now() - begin >= _deadline) {\n _scheduleUpdate();\n break;\n }\n }\n }\n _addInteractionSet.clear();\n _deleteInteractionSet.clear();\n}\nexport default InteractionManager;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport dismissKeyboard from '../../modules/dismissKeyboard';\n\n// in the future we can use https://github.com/w3c/virtual-keyboard\nvar Keyboard = {\n isVisible() {\n return false;\n },\n addListener() {\n return {\n remove: () => {}\n };\n },\n dismiss() {\n dismissKeyboard();\n },\n removeAllListeners() {},\n removeListener() {}\n};\nexport default Keyboard;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport canUseDOM from '../../modules/canUseDom';\nfunction ModalPortal(props) {\n var children = props.children;\n var elementRef = React.useRef(null);\n if (canUseDOM && !elementRef.current) {\n var element = document.createElement('div');\n if (element && document.body) {\n document.body.appendChild(element);\n elementRef.current = element;\n }\n }\n React.useEffect(() => {\n if (canUseDOM) {\n return () => {\n if (document.body && elementRef.current) {\n document.body.removeChild(elementRef.current);\n elementRef.current = null;\n }\n };\n }\n }, []);\n return elementRef.current && canUseDOM ? /*#__PURE__*/ReactDOM.createPortal(children, elementRef.current) : null;\n}\nexport default ModalPortal;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport createElement from '../createElement';\nvar ANIMATION_DURATION = 300;\nfunction getAnimationStyle(animationType, visible) {\n if (animationType === 'slide') {\n return visible ? animatedSlideInStyles : animatedSlideOutStyles;\n }\n if (animationType === 'fade') {\n return visible ? animatedFadeInStyles : animatedFadeOutStyles;\n }\n return visible ? styles.container : styles.hidden;\n}\nfunction ModalAnimation(props) {\n var animationType = props.animationType,\n children = props.children,\n onDismiss = props.onDismiss,\n onShow = props.onShow,\n visible = props.visible;\n var _React$useState = React.useState(false),\n isRendering = _React$useState[0],\n setIsRendering = _React$useState[1];\n var wasVisible = React.useRef(false);\n var wasRendering = React.useRef(false);\n var isAnimated = animationType && animationType !== 'none';\n var animationEndCallback = React.useCallback(e => {\n if (e && e.currentTarget !== e.target) {\n // If the event was generated for something NOT this element we\n // should ignore it as it's not relevant to us\n return;\n }\n if (visible) {\n if (onShow) {\n onShow();\n }\n } else {\n setIsRendering(false);\n }\n }, [onShow, visible]);\n React.useEffect(() => {\n if (wasRendering.current && !isRendering && onDismiss) {\n onDismiss();\n }\n wasRendering.current = isRendering;\n }, [isRendering, onDismiss]);\n React.useEffect(() => {\n if (visible) {\n setIsRendering(true);\n }\n if (visible !== wasVisible.current && !isAnimated) {\n // Manually call `animationEndCallback` if no animation is used\n animationEndCallback();\n }\n wasVisible.current = visible;\n }, [isAnimated, visible, animationEndCallback]);\n return isRendering || visible ? createElement('div', {\n style: isRendering ? getAnimationStyle(animationType, visible) : styles.hidden,\n onAnimationEnd: animationEndCallback,\n children\n }) : null;\n}\nvar styles = StyleSheet.create({\n container: {\n position: 'fixed',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n zIndex: 9999\n },\n animatedIn: {\n animationDuration: ANIMATION_DURATION + \"ms\",\n animationTimingFunction: 'ease-in'\n },\n animatedOut: {\n pointerEvents: 'none',\n animationDuration: ANIMATION_DURATION + \"ms\",\n animationTimingFunction: 'ease-out'\n },\n fadeIn: {\n opacity: 1,\n animationKeyframes: {\n '0%': {\n opacity: 0\n },\n '100%': {\n opacity: 1\n }\n }\n },\n fadeOut: {\n opacity: 0,\n animationKeyframes: {\n '0%': {\n opacity: 1\n },\n '100%': {\n opacity: 0\n }\n }\n },\n slideIn: {\n transform: 'translateY(0%)',\n animationKeyframes: {\n '0%': {\n transform: 'translateY(100%)'\n },\n '100%': {\n transform: 'translateY(0%)'\n }\n }\n },\n slideOut: {\n transform: 'translateY(100%)',\n animationKeyframes: {\n '0%': {\n transform: 'translateY(0%)'\n },\n '100%': {\n transform: 'translateY(100%)'\n }\n }\n },\n hidden: {\n opacity: 0\n }\n});\nvar animatedSlideInStyles = [styles.container, styles.animatedIn, styles.slideIn];\nvar animatedSlideOutStyles = [styles.container, styles.animatedOut, styles.slideOut];\nvar animatedFadeInStyles = [styles.container, styles.animatedIn, styles.fadeIn];\nvar animatedFadeOutStyles = [styles.container, styles.animatedOut, styles.fadeOut];\nexport default ModalAnimation;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"active\", \"children\", \"onRequestClose\", \"transparent\"];\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport * as React from 'react';\nimport View from '../View';\nimport StyleSheet from '../StyleSheet';\nimport canUseDOM from '../../modules/canUseDom';\nvar ModalContent = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var active = props.active,\n children = props.children,\n onRequestClose = props.onRequestClose,\n transparent = props.transparent,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n React.useEffect(() => {\n if (canUseDOM) {\n var closeOnEscape = e => {\n if (active && e.key === 'Escape') {\n e.stopPropagation();\n if (onRequestClose) {\n onRequestClose();\n }\n }\n };\n document.addEventListener('keyup', closeOnEscape, false);\n return () => document.removeEventListener('keyup', closeOnEscape, false);\n }\n }, [active, onRequestClose]);\n var style = React.useMemo(() => {\n return [styles.modal, transparent ? styles.modalTransparent : styles.modalOpaque];\n }, [transparent]);\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, {\n \"aria-modal\": true,\n ref: forwardedRef,\n role: active ? 'dialog' : null,\n style: style\n }), /*#__PURE__*/React.createElement(View, {\n style: styles.container\n }, children));\n});\nvar styles = StyleSheet.create({\n modal: {\n position: 'fixed',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n },\n modalTransparent: {\n backgroundColor: 'transparent'\n },\n modalOpaque: {\n backgroundColor: 'white'\n },\n container: {\n top: 0,\n flex: 1\n }\n});\nexport default ModalContent;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport * as React from 'react';\nimport View from '../View';\nimport createElement from '../createElement';\nimport StyleSheet from '../StyleSheet';\nimport UIManager from '../UIManager';\nimport canUseDOM from '../../modules/canUseDom';\n\n/**\n * This Component is used to \"wrap\" the modal we're opening\n * so that changing focus via tab will never leave the document.\n *\n * This allows us to properly trap the focus within a modal\n * even if the modal is at the start or end of a document.\n */\n\nvar FocusBracket = () => {\n return createElement('div', {\n role: 'none',\n tabIndex: 0,\n style: styles.focusBracket\n });\n};\nfunction attemptFocus(element) {\n if (!canUseDOM) {\n return false;\n }\n try {\n element.focus();\n } catch (e) {\n // Do nothing\n }\n return document.activeElement === element;\n}\nfunction focusFirstDescendant(element) {\n for (var i = 0; i < element.childNodes.length; i++) {\n var child = element.childNodes[i];\n if (attemptFocus(child) || focusFirstDescendant(child)) {\n return true;\n }\n }\n return false;\n}\nfunction focusLastDescendant(element) {\n for (var i = element.childNodes.length - 1; i >= 0; i--) {\n var child = element.childNodes[i];\n if (attemptFocus(child) || focusLastDescendant(child)) {\n return true;\n }\n }\n return false;\n}\nvar ModalFocusTrap = _ref => {\n var active = _ref.active,\n children = _ref.children;\n var trapElementRef = React.useRef();\n var focusRef = React.useRef({\n trapFocusInProgress: false,\n lastFocusedElement: null\n });\n React.useEffect(() => {\n if (canUseDOM) {\n var trapFocus = () => {\n // We should not trap focus if:\n // - The modal hasn't fully initialized with an HTMLElement ref\n // - Focus is already in the process of being trapped (e.g., we're refocusing)\n // - isTrapActive prop being falsey tells us to do nothing\n if (trapElementRef.current == null || focusRef.current.trapFocusInProgress || !active) {\n return;\n }\n try {\n focusRef.current.trapFocusInProgress = true;\n if (document.activeElement instanceof Node && !trapElementRef.current.contains(document.activeElement)) {\n // To handle keyboard focusing we can make an assumption here.\n // If you're tabbing through the focusable elements, the previously\n // active element will either be the first or the last.\n // If the previously selected element is the \"first\" descendant\n // and we're leaving it - this means that we should be looping\n // around to the other side of the modal.\n var hasFocused = focusFirstDescendant(trapElementRef.current);\n if (focusRef.current.lastFocusedElement === document.activeElement) {\n hasFocused = focusLastDescendant(trapElementRef.current);\n }\n // If we couldn't focus a new element then we need to focus onto the trap target\n if (!hasFocused && trapElementRef.current != null && document.activeElement) {\n UIManager.focus(trapElementRef.current);\n }\n }\n } finally {\n focusRef.current.trapFocusInProgress = false;\n }\n focusRef.current.lastFocusedElement = document.activeElement;\n };\n\n // Call the trapFocus callback at least once when this modal has been activated.\n trapFocus();\n document.addEventListener('focus', trapFocus, true);\n return () => document.removeEventListener('focus', trapFocus, true);\n }\n }, [active]);\n\n // To be fully compliant with WCAG we need to refocus element that triggered opening modal\n // after closing it\n React.useEffect(function () {\n if (canUseDOM) {\n var lastFocusedElementOutsideTrap = document.activeElement;\n return function () {\n if (lastFocusedElementOutsideTrap && document.contains(lastFocusedElementOutsideTrap)) {\n UIManager.focus(lastFocusedElementOutsideTrap);\n }\n };\n }\n }, []);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FocusBracket, null), /*#__PURE__*/React.createElement(View, {\n ref: trapElementRef\n }, children), /*#__PURE__*/React.createElement(FocusBracket, null));\n};\nexport default ModalFocusTrap;\nvar styles = StyleSheet.create({\n focusBracket: {\n outlineStyle: 'none'\n }\n});","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"animationType\", \"children\", \"onDismiss\", \"onRequestClose\", \"onShow\", \"transparent\", \"visible\"];\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport * as React from 'react';\nimport ModalPortal from './ModalPortal';\nimport ModalAnimation from './ModalAnimation';\nimport ModalContent from './ModalContent';\nimport ModalFocusTrap from './ModalFocusTrap';\nvar uniqueModalIdentifier = 0;\nvar activeModalStack = [];\nvar activeModalListeners = {};\nfunction notifyActiveModalListeners() {\n if (activeModalStack.length === 0) {\n return;\n }\n var activeModalId = activeModalStack[activeModalStack.length - 1];\n activeModalStack.forEach(modalId => {\n if (modalId in activeModalListeners) {\n activeModalListeners[modalId](modalId === activeModalId);\n }\n });\n}\nfunction removeActiveModal(modalId) {\n if (modalId in activeModalListeners) {\n // Before removing this listener we should probably tell it\n // that it's no longer the active modal for sure.\n activeModalListeners[modalId](false);\n delete activeModalListeners[modalId];\n }\n var index = activeModalStack.indexOf(modalId);\n if (index !== -1) {\n activeModalStack.splice(index, 1);\n notifyActiveModalListeners();\n }\n}\nfunction addActiveModal(modalId, listener) {\n removeActiveModal(modalId);\n activeModalStack.push(modalId);\n activeModalListeners[modalId] = listener;\n notifyActiveModalListeners();\n}\nvar Modal = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var animationType = props.animationType,\n children = props.children,\n onDismiss = props.onDismiss,\n onRequestClose = props.onRequestClose,\n onShow = props.onShow,\n transparent = props.transparent,\n _props$visible = props.visible,\n visible = _props$visible === void 0 ? true : _props$visible,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n\n // Set a unique model identifier so we can correctly route\n // dismissals and check the layering of modals.\n var modalId = React.useMemo(() => uniqueModalIdentifier++, []);\n var _React$useState = React.useState(false),\n isActive = _React$useState[0],\n setIsActive = _React$useState[1];\n var onDismissCallback = React.useCallback(() => {\n removeActiveModal(modalId);\n if (onDismiss) {\n onDismiss();\n }\n }, [modalId, onDismiss]);\n var onShowCallback = React.useCallback(() => {\n addActiveModal(modalId, setIsActive);\n if (onShow) {\n onShow();\n }\n }, [modalId, onShow]);\n React.useEffect(() => {\n return () => removeActiveModal(modalId);\n }, [modalId]);\n return /*#__PURE__*/React.createElement(ModalPortal, null, /*#__PURE__*/React.createElement(ModalAnimation, {\n animationType: animationType,\n onDismiss: onDismissCallback,\n onShow: onShowCallback,\n visible: visible\n }, /*#__PURE__*/React.createElement(ModalFocusTrap, {\n active: isActive\n }, /*#__PURE__*/React.createElement(ModalContent, _extends({}, rest, {\n active: isActive,\n onRequestClose: onRequestClose,\n ref: forwardedRef,\n transparent: transparent\n }), children))));\n});\nexport default Modal;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport NativeEventEmitter from '../../vendor/react-native/EventEmitter/NativeEventEmitter';\nexport default NativeEventEmitter;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport UIManager from '../UIManager';\n\n// NativeModules shim\nvar NativeModules = {\n UIManager\n};\nexport default NativeModules;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport Dimensions from '../Dimensions';\n\n/**\n * PixelRatio gives access to the device pixel density.\n */\nexport default class PixelRatio {\n /**\n * Returns the device pixel density.\n */\n static get() {\n return Dimensions.get('window').scale;\n }\n\n /**\n * No equivalent for Web\n */\n static getFontScale() {\n return Dimensions.get('window').fontScale || PixelRatio.get();\n }\n\n /**\n * Converts a layout size (dp) to pixel size (px).\n * Guaranteed to return an integer number.\n */\n static getPixelSizeForLayoutSize(layoutSize) {\n return Math.round(layoutSize * PixelRatio.get());\n }\n\n /**\n * Rounds a layout size (dp) to the nearest layout size that corresponds to\n * an integer number of pixels. For example, on a device with a PixelRatio\n * of 3, `PixelRatio.roundToNearestPixel(8.4) = 8.33`, which corresponds to\n * exactly (8.33 * 3) = 25 pixels.\n */\n static roundToNearestPixel(layoutSize) {\n var ratio = PixelRatio.get();\n return Math.round(layoutSize * ratio) / ratio;\n }\n}","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar Platform = {\n OS: 'web',\n select: obj => 'web' in obj ? obj.web : obj.default,\n get isTesting() {\n if (process.env.NODE_ENV === 'test') {\n return true;\n }\n return false;\n }\n};\nexport default Platform;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n'use strict';\n\nimport canUseDOM from '../canUseDom';\nvar emptyFunction = () => {};\nfunction supportsPassiveEvents() {\n var supported = false;\n // Check if browser supports event with passive listeners\n // https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n if (canUseDOM) {\n try {\n var options = {};\n Object.defineProperty(options, 'passive', {\n get() {\n supported = true;\n return false;\n }\n });\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n } catch (e) {}\n }\n return supported;\n}\nvar canUsePassiveEvents = supportsPassiveEvents();\nfunction getOptions(options) {\n if (options == null) {\n return false;\n }\n return canUsePassiveEvents ? options : Boolean(options.capture);\n}\n\n/**\n * Shim generic API compatibility with ReactDOM's synthetic events, without needing the\n * large amount of code ReactDOM uses to do this. Ideally we wouldn't use a synthetic\n * event wrapper at all.\n */\nfunction isPropagationStopped() {\n return this.cancelBubble;\n}\nfunction isDefaultPrevented() {\n return this.defaultPrevented;\n}\nfunction normalizeEvent(event) {\n event.nativeEvent = event;\n event.persist = emptyFunction;\n event.isDefaultPrevented = isDefaultPrevented;\n event.isPropagationStopped = isPropagationStopped;\n return event;\n}\n\n/**\n *\n */\nexport function addEventListener(target, type, listener, options) {\n var opts = getOptions(options);\n var compatListener = e => listener(normalizeEvent(e));\n target.addEventListener(type, compatListener, opts);\n return function removeEventListener() {\n if (target != null) {\n target.removeEventListener(type, compatListener, opts);\n }\n };\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport { addEventListener } from '../addEventListener';\nimport canUseDOM from '../canUseDom';\nvar supportsPointerEvent = () => !!(typeof window !== 'undefined' && window.PointerEvent != null);\nvar activeModality = 'keyboard';\nvar modality = 'keyboard';\nvar previousModality;\nvar previousActiveModality;\nvar isEmulatingMouseEvents = false;\nvar listeners = new Set();\nvar KEYBOARD = 'keyboard';\nvar MOUSE = 'mouse';\nvar TOUCH = 'touch';\nvar BLUR = 'blur';\nvar CONTEXTMENU = 'contextmenu';\nvar FOCUS = 'focus';\nvar KEYDOWN = 'keydown';\nvar MOUSEDOWN = 'mousedown';\nvar MOUSEMOVE = 'mousemove';\nvar MOUSEUP = 'mouseup';\nvar POINTERDOWN = 'pointerdown';\nvar POINTERMOVE = 'pointermove';\nvar SCROLL = 'scroll';\nvar SELECTIONCHANGE = 'selectionchange';\nvar TOUCHCANCEL = 'touchcancel';\nvar TOUCHMOVE = 'touchmove';\nvar TOUCHSTART = 'touchstart';\nvar VISIBILITYCHANGE = 'visibilitychange';\nvar bubbleOptions = {\n passive: true\n};\nvar captureOptions = {\n capture: true,\n passive: true\n};\nfunction restoreModality() {\n if (previousModality != null || previousActiveModality != null) {\n if (previousModality != null) {\n modality = previousModality;\n previousModality = null;\n }\n if (previousActiveModality != null) {\n activeModality = previousActiveModality;\n previousActiveModality = null;\n }\n callListeners();\n }\n}\nfunction onBlurWindow() {\n previousModality = modality;\n previousActiveModality = activeModality;\n activeModality = KEYBOARD;\n modality = KEYBOARD;\n callListeners();\n // for fallback events\n isEmulatingMouseEvents = false;\n}\nfunction onFocusWindow() {\n restoreModality();\n}\nfunction onKeyDown(event) {\n if (event.metaKey || event.altKey || event.ctrlKey) {\n return;\n }\n if (modality !== KEYBOARD) {\n modality = KEYBOARD;\n activeModality = KEYBOARD;\n callListeners();\n }\n}\nfunction onVisibilityChange() {\n if (document.visibilityState !== 'hidden') {\n restoreModality();\n }\n}\nfunction onPointerish(event) {\n var eventType = event.type;\n if (supportsPointerEvent()) {\n if (eventType === POINTERDOWN) {\n if (activeModality !== event.pointerType) {\n modality = event.pointerType;\n activeModality = event.pointerType;\n callListeners();\n }\n return;\n }\n if (eventType === POINTERMOVE) {\n if (modality !== event.pointerType) {\n modality = event.pointerType;\n callListeners();\n }\n return;\n }\n }\n // Fallback for non-PointerEvent environment\n else {\n if (!isEmulatingMouseEvents) {\n if (eventType === MOUSEDOWN) {\n if (activeModality !== MOUSE) {\n modality = MOUSE;\n activeModality = MOUSE;\n callListeners();\n }\n }\n if (eventType === MOUSEMOVE) {\n if (modality !== MOUSE) {\n modality = MOUSE;\n callListeners();\n }\n }\n }\n\n // Flag when browser may produce emulated events\n if (eventType === TOUCHSTART) {\n isEmulatingMouseEvents = true;\n if (event.touches && event.touches.length > 1) {\n isEmulatingMouseEvents = false;\n }\n if (activeModality !== TOUCH) {\n modality = TOUCH;\n activeModality = TOUCH;\n callListeners();\n }\n return;\n }\n\n // Remove flag after emulated events are finished or cancelled, and if an\n // event occurs that cuts short a touch event sequence.\n if (eventType === CONTEXTMENU || eventType === MOUSEUP || eventType === SELECTIONCHANGE || eventType === SCROLL || eventType === TOUCHCANCEL || eventType === TOUCHMOVE) {\n isEmulatingMouseEvents = false;\n }\n }\n}\nif (canUseDOM) {\n // Window events\n addEventListener(window, BLUR, onBlurWindow, bubbleOptions);\n addEventListener(window, FOCUS, onFocusWindow, bubbleOptions);\n // Must be capture phase because 'stopPropagation' might prevent these\n // events bubbling to the document.\n addEventListener(document, KEYDOWN, onKeyDown, captureOptions);\n addEventListener(document, VISIBILITYCHANGE, onVisibilityChange, captureOptions);\n addEventListener(document, POINTERDOWN, onPointerish, captureOptions);\n addEventListener(document, POINTERMOVE, onPointerish, captureOptions);\n // Fallback events\n addEventListener(document, CONTEXTMENU, onPointerish, captureOptions);\n addEventListener(document, MOUSEDOWN, onPointerish, captureOptions);\n addEventListener(document, MOUSEMOVE, onPointerish, captureOptions);\n addEventListener(document, MOUSEUP, onPointerish, captureOptions);\n addEventListener(document, TOUCHCANCEL, onPointerish, captureOptions);\n addEventListener(document, TOUCHMOVE, onPointerish, captureOptions);\n addEventListener(document, TOUCHSTART, onPointerish, captureOptions);\n addEventListener(document, SELECTIONCHANGE, onPointerish, captureOptions);\n addEventListener(document, SCROLL, onPointerish, captureOptions);\n}\nfunction callListeners() {\n var value = {\n activeModality,\n modality\n };\n listeners.forEach(listener => {\n listener(value);\n });\n}\nexport function getActiveModality() {\n return activeModality;\n}\nexport function getModality() {\n return modality;\n}\nexport function addModalityListener(listener) {\n listeners.add(listener);\n return () => {\n listeners.delete(listener);\n };\n}\nexport function testOnly_resetActiveModality() {\n isEmulatingMouseEvents = false;\n activeModality = KEYBOARD;\n modality = KEYBOARD;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport { addEventListener } from '../addEventListener';\nimport useLayoutEffect from '../useLayoutEffect';\nimport useStable from '../useStable';\n/**\n * This can be used with any event type include custom events.\n *\n * const click = useEvent('click', options);\n * useEffect(() => {\n * click.setListener(target, onClick);\n * return () => click.clear();\n * }).\n */\nexport default function useEvent(eventType, options) {\n var targetListeners = useStable(() => new Map());\n var addListener = useStable(() => {\n return (target, callback) => {\n var removeTargetListener = targetListeners.get(target);\n if (removeTargetListener != null) {\n removeTargetListener();\n }\n if (callback == null) {\n targetListeners.delete(target);\n callback = () => {};\n }\n var removeEventListener = addEventListener(target, eventType, callback, options);\n targetListeners.set(target, removeEventListener);\n return removeEventListener;\n };\n });\n useLayoutEffect(() => {\n return () => {\n targetListeners.forEach(removeListener => {\n removeListener();\n });\n targetListeners.clear();\n };\n }, [targetListeners]);\n return addListener;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport { getModality } from '../modality';\nimport useEvent from '../useEvent';\nimport useLayoutEffect from '../useLayoutEffect';\n\n/**\n * Types\n */\n\n/**\n * Implementation\n */\n\nvar emptyObject = {};\nvar opts = {\n passive: true\n};\nvar lockEventType = 'react-gui:hover:lock';\nvar unlockEventType = 'react-gui:hover:unlock';\nvar supportsPointerEvent = () => !!(typeof window !== 'undefined' && window.PointerEvent != null);\nfunction dispatchCustomEvent(target, type, payload) {\n var event = document.createEvent('CustomEvent');\n var _ref = payload || emptyObject,\n _ref$bubbles = _ref.bubbles,\n bubbles = _ref$bubbles === void 0 ? true : _ref$bubbles,\n _ref$cancelable = _ref.cancelable,\n cancelable = _ref$cancelable === void 0 ? true : _ref$cancelable,\n detail = _ref.detail;\n event.initCustomEvent(type, bubbles, cancelable, detail);\n target.dispatchEvent(event);\n}\n\n// This accounts for the non-PointerEvent fallback events.\nfunction getPointerType(event) {\n var pointerType = event.pointerType;\n return pointerType != null ? pointerType : getModality();\n}\nexport default function useHover(targetRef, config) {\n var contain = config.contain,\n disabled = config.disabled,\n onHoverStart = config.onHoverStart,\n onHoverChange = config.onHoverChange,\n onHoverUpdate = config.onHoverUpdate,\n onHoverEnd = config.onHoverEnd;\n var canUsePE = supportsPointerEvent();\n var addMoveListener = useEvent(canUsePE ? 'pointermove' : 'mousemove', opts);\n var addEnterListener = useEvent(canUsePE ? 'pointerenter' : 'mouseenter', opts);\n var addLeaveListener = useEvent(canUsePE ? 'pointerleave' : 'mouseleave', opts);\n // These custom events are used to implement the \"contain\" prop.\n var addLockListener = useEvent(lockEventType, opts);\n var addUnlockListener = useEvent(unlockEventType, opts);\n useLayoutEffect(() => {\n var target = targetRef.current;\n if (target !== null) {\n /**\n * End the hover gesture\n */\n var hoverEnd = function hoverEnd(e) {\n if (onHoverEnd != null) {\n onHoverEnd(e);\n }\n if (onHoverChange != null) {\n onHoverChange(false);\n }\n // Remove the listeners once finished.\n addMoveListener(target, null);\n addLeaveListener(target, null);\n };\n\n /**\n * Leave element\n */\n var leaveListener = function leaveListener(e) {\n var target = targetRef.current;\n if (target != null && getPointerType(e) !== 'touch') {\n if (contain) {\n dispatchCustomEvent(target, unlockEventType);\n }\n hoverEnd(e);\n }\n };\n\n /**\n * Move within element\n */\n var moveListener = function moveListener(e) {\n if (getPointerType(e) !== 'touch') {\n if (onHoverUpdate != null) {\n // Not all browsers have these properties\n if (e.x == null) {\n e.x = e.clientX;\n }\n if (e.y == null) {\n e.y = e.clientY;\n }\n onHoverUpdate(e);\n }\n }\n };\n\n /**\n * Start the hover gesture\n */\n var hoverStart = function hoverStart(e) {\n if (onHoverStart != null) {\n onHoverStart(e);\n }\n if (onHoverChange != null) {\n onHoverChange(true);\n }\n // Set the listeners needed for the rest of the hover gesture.\n if (onHoverUpdate != null) {\n addMoveListener(target, !disabled ? moveListener : null);\n }\n addLeaveListener(target, !disabled ? leaveListener : null);\n };\n\n /**\n * Enter element\n */\n var enterListener = function enterListener(e) {\n var target = targetRef.current;\n if (target != null && getPointerType(e) !== 'touch') {\n if (contain) {\n dispatchCustomEvent(target, lockEventType);\n }\n hoverStart(e);\n var lockListener = function lockListener(lockEvent) {\n if (lockEvent.target !== target) {\n hoverEnd(e);\n }\n };\n var unlockListener = function unlockListener(lockEvent) {\n if (lockEvent.target !== target) {\n hoverStart(e);\n }\n };\n addLockListener(target, !disabled ? lockListener : null);\n addUnlockListener(target, !disabled ? unlockListener : null);\n }\n };\n addEnterListener(target, !disabled ? enterListener : null);\n }\n }, [addEnterListener, addMoveListener, addLeaveListener, addLockListener, addUnlockListener, contain, disabled, onHoverStart, onHoverChange, onHoverUpdate, onHoverEnd, targetRef]);\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n'use strict';\n\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"children\", \"delayLongPress\", \"delayPressIn\", \"delayPressOut\", \"disabled\", \"onBlur\", \"onContextMenu\", \"onFocus\", \"onHoverIn\", \"onHoverOut\", \"onKeyDown\", \"onLongPress\", \"onPress\", \"onPressMove\", \"onPressIn\", \"onPressOut\", \"style\", \"tabIndex\", \"testOnly_hovered\", \"testOnly_pressed\"];\nimport * as React from 'react';\nimport { forwardRef, memo, useMemo, useState, useRef } from 'react';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport useHover from '../../modules/useHover';\nimport usePressEvents from '../../modules/usePressEvents';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\n/**\n * Component used to build display components that should respond to whether the\n * component is currently pressed or not.\n */\nfunction Pressable(props, forwardedRef) {\n var children = props.children,\n delayLongPress = props.delayLongPress,\n delayPressIn = props.delayPressIn,\n delayPressOut = props.delayPressOut,\n disabled = props.disabled,\n onBlur = props.onBlur,\n onContextMenu = props.onContextMenu,\n onFocus = props.onFocus,\n onHoverIn = props.onHoverIn,\n onHoverOut = props.onHoverOut,\n onKeyDown = props.onKeyDown,\n onLongPress = props.onLongPress,\n onPress = props.onPress,\n onPressMove = props.onPressMove,\n onPressIn = props.onPressIn,\n onPressOut = props.onPressOut,\n style = props.style,\n tabIndex = props.tabIndex,\n testOnly_hovered = props.testOnly_hovered,\n testOnly_pressed = props.testOnly_pressed,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n var _useForceableState = useForceableState(testOnly_hovered === true),\n hovered = _useForceableState[0],\n setHovered = _useForceableState[1];\n var _useForceableState2 = useForceableState(false),\n focused = _useForceableState2[0],\n setFocused = _useForceableState2[1];\n var _useForceableState3 = useForceableState(testOnly_pressed === true),\n pressed = _useForceableState3[0],\n setPressed = _useForceableState3[1];\n var hostRef = useRef(null);\n var setRef = useMergeRefs(forwardedRef, hostRef);\n var pressConfig = useMemo(() => ({\n delayLongPress,\n delayPressStart: delayPressIn,\n delayPressEnd: delayPressOut,\n disabled,\n onLongPress,\n onPress,\n onPressChange: setPressed,\n onPressStart: onPressIn,\n onPressMove,\n onPressEnd: onPressOut\n }), [delayLongPress, delayPressIn, delayPressOut, disabled, onLongPress, onPress, onPressIn, onPressMove, onPressOut, setPressed]);\n var pressEventHandlers = usePressEvents(hostRef, pressConfig);\n var onContextMenuPress = pressEventHandlers.onContextMenu,\n onKeyDownPress = pressEventHandlers.onKeyDown;\n useHover(hostRef, {\n contain: true,\n disabled,\n onHoverChange: setHovered,\n onHoverStart: onHoverIn,\n onHoverEnd: onHoverOut\n });\n var interactionState = {\n hovered,\n focused,\n pressed\n };\n var blurHandler = React.useCallback(e => {\n if (e.nativeEvent.target === hostRef.current) {\n setFocused(false);\n if (onBlur != null) {\n onBlur(e);\n }\n }\n }, [hostRef, setFocused, onBlur]);\n var focusHandler = React.useCallback(e => {\n if (e.nativeEvent.target === hostRef.current) {\n setFocused(true);\n if (onFocus != null) {\n onFocus(e);\n }\n }\n }, [hostRef, setFocused, onFocus]);\n var contextMenuHandler = React.useCallback(e => {\n if (onContextMenuPress != null) {\n onContextMenuPress(e);\n }\n if (onContextMenu != null) {\n onContextMenu(e);\n }\n }, [onContextMenu, onContextMenuPress]);\n var keyDownHandler = React.useCallback(e => {\n if (onKeyDownPress != null) {\n onKeyDownPress(e);\n }\n if (onKeyDown != null) {\n onKeyDown(e);\n }\n }, [onKeyDown, onKeyDownPress]);\n var _tabIndex;\n if (tabIndex !== undefined) {\n _tabIndex = tabIndex;\n } else {\n _tabIndex = disabled ? -1 : 0;\n }\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, pressEventHandlers, {\n \"aria-disabled\": disabled,\n onBlur: blurHandler,\n onContextMenu: contextMenuHandler,\n onFocus: focusHandler,\n onKeyDown: keyDownHandler,\n ref: setRef,\n style: [disabled ? styles.disabled : styles.active, typeof style === 'function' ? style(interactionState) : style],\n tabIndex: _tabIndex\n }), typeof children === 'function' ? children(interactionState) : children);\n}\nfunction useForceableState(forced) {\n var _useState = useState(false),\n bool = _useState[0],\n setBool = _useState[1];\n return [bool || forced, setBool];\n}\nvar styles = StyleSheet.create({\n active: {\n cursor: 'pointer',\n touchAction: 'manipulation'\n },\n disabled: {\n pointerEvents: 'box-none'\n }\n});\nvar MemoedPressable = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(Pressable));\nMemoedPressable.displayName = 'Pressable';\nexport default MemoedPressable;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"colors\", \"enabled\", \"onRefresh\", \"progressBackgroundColor\", \"progressViewOffset\", \"refreshing\", \"size\", \"tintColor\", \"title\", \"titleColor\"];\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport View from '../View';\nimport React from 'react';\nfunction RefreshControl(props) {\n var colors = props.colors,\n enabled = props.enabled,\n onRefresh = props.onRefresh,\n progressBackgroundColor = props.progressBackgroundColor,\n progressViewOffset = props.progressViewOffset,\n refreshing = props.refreshing,\n size = props.size,\n tintColor = props.tintColor,\n title = props.title,\n titleColor = props.titleColor,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n return /*#__PURE__*/React.createElement(View, rest);\n}\nexport default RefreshControl;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"onScroll\", \"onTouchMove\", \"onWheel\", \"scrollEnabled\", \"scrollEventThrottle\", \"showsHorizontalScrollIndicator\", \"showsVerticalScrollIndicator\", \"style\"];\n/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nimport useMergeRefs from '../../modules/useMergeRefs';\nfunction normalizeScrollEvent(e) {\n return {\n nativeEvent: {\n contentOffset: {\n get x() {\n return e.target.scrollLeft;\n },\n get y() {\n return e.target.scrollTop;\n }\n },\n contentSize: {\n get height() {\n return e.target.scrollHeight;\n },\n get width() {\n return e.target.scrollWidth;\n }\n },\n layoutMeasurement: {\n get height() {\n return e.target.offsetHeight;\n },\n get width() {\n return e.target.offsetWidth;\n }\n }\n },\n timeStamp: Date.now()\n };\n}\nfunction shouldEmitScrollEvent(lastTick, eventThrottle) {\n var timeSinceLastTick = Date.now() - lastTick;\n return eventThrottle > 0 && timeSinceLastTick >= eventThrottle;\n}\n\n/**\n * Encapsulates the Web-specific scroll throttling and disabling logic\n */\nvar ScrollViewBase = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var onScroll = props.onScroll,\n onTouchMove = props.onTouchMove,\n onWheel = props.onWheel,\n _props$scrollEnabled = props.scrollEnabled,\n scrollEnabled = _props$scrollEnabled === void 0 ? true : _props$scrollEnabled,\n _props$scrollEventThr = props.scrollEventThrottle,\n scrollEventThrottle = _props$scrollEventThr === void 0 ? 0 : _props$scrollEventThr,\n showsHorizontalScrollIndicator = props.showsHorizontalScrollIndicator,\n showsVerticalScrollIndicator = props.showsVerticalScrollIndicator,\n style = props.style,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n var scrollState = React.useRef({\n isScrolling: false,\n scrollLastTick: 0\n });\n var scrollTimeout = React.useRef(null);\n var scrollRef = React.useRef(null);\n function createPreventableScrollHandler(handler) {\n return e => {\n if (scrollEnabled) {\n if (handler) {\n handler(e);\n }\n }\n };\n }\n function handleScroll(e) {\n e.stopPropagation();\n if (e.target === scrollRef.current) {\n e.persist();\n // A scroll happened, so the scroll resets the scrollend timeout.\n if (scrollTimeout.current != null) {\n clearTimeout(scrollTimeout.current);\n }\n scrollTimeout.current = setTimeout(() => {\n handleScrollEnd(e);\n }, 100);\n if (scrollState.current.isScrolling) {\n // Scroll last tick may have changed, check if we need to notify\n if (shouldEmitScrollEvent(scrollState.current.scrollLastTick, scrollEventThrottle)) {\n handleScrollTick(e);\n }\n } else {\n // Weren't scrolling, so we must have just started\n handleScrollStart(e);\n }\n }\n }\n function handleScrollStart(e) {\n scrollState.current.isScrolling = true;\n handleScrollTick(e);\n }\n function handleScrollTick(e) {\n scrollState.current.scrollLastTick = Date.now();\n if (onScroll) {\n onScroll(normalizeScrollEvent(e));\n }\n }\n function handleScrollEnd(e) {\n scrollState.current.isScrolling = false;\n if (onScroll) {\n onScroll(normalizeScrollEvent(e));\n }\n }\n var hideScrollbar = showsHorizontalScrollIndicator === false || showsVerticalScrollIndicator === false;\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, {\n onScroll: handleScroll,\n onTouchMove: createPreventableScrollHandler(onTouchMove),\n onWheel: createPreventableScrollHandler(onWheel),\n ref: useMergeRefs(scrollRef, forwardedRef),\n style: [style, !scrollEnabled && styles.scrollDisabled, hideScrollbar && styles.hideScrollbar]\n }));\n});\n\n// Chrome doesn't support e.preventDefault in this case; touch-action must be\n// used to disable scrolling.\n// https://developers.google.com/web/updates/2017/01/scrolling-intervention\nvar styles = StyleSheet.create({\n scrollDisabled: {\n overflowX: 'hidden',\n overflowY: 'hidden',\n touchAction: 'none'\n },\n hideScrollbar: {\n scrollbarWidth: 'none'\n }\n});\nexport default ScrollViewBase;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"contentContainerStyle\", \"horizontal\", \"onContentSizeChange\", \"refreshControl\", \"stickyHeaderIndices\", \"pagingEnabled\", \"forwardedRef\", \"keyboardDismissMode\", \"onScroll\", \"centerContent\"];\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport Dimensions from '../Dimensions';\nimport dismissKeyboard from '../../modules/dismissKeyboard';\nimport invariant from 'fbjs/lib/invariant';\nimport mergeRefs from '../../modules/mergeRefs';\nimport Platform from '../Platform';\nimport ScrollViewBase from './ScrollViewBase';\nimport StyleSheet from '../StyleSheet';\nimport TextInputState from '../../modules/TextInputState';\nimport UIManager from '../UIManager';\nimport View from '../View';\nimport React from 'react';\nimport warning from 'fbjs/lib/warning';\nvar emptyObject = {};\nvar IS_ANIMATING_TOUCH_START_THRESHOLD_MS = 16;\nclass ScrollView extends React.Component {\n constructor() {\n super(...arguments);\n this._scrollNodeRef = null;\n this._innerViewRef = null;\n this.isTouching = false;\n this.lastMomentumScrollBeginTime = 0;\n this.lastMomentumScrollEndTime = 0;\n this.observedScrollSinceBecomingResponder = false;\n this.becameResponderWhileAnimating = false;\n this.scrollResponderHandleScrollShouldSetResponder = () => {\n return this.isTouching;\n };\n this.scrollResponderHandleStartShouldSetResponderCapture = e => {\n // First see if we want to eat taps while the keyboard is up\n // var currentlyFocusedTextInput = TextInputState.currentlyFocusedField();\n // if (!this.props.keyboardShouldPersistTaps &&\n // currentlyFocusedTextInput != null &&\n // e.target !== currentlyFocusedTextInput) {\n // return true;\n // }\n return this.scrollResponderIsAnimating();\n };\n this.scrollResponderHandleTerminationRequest = () => {\n return !this.observedScrollSinceBecomingResponder;\n };\n this.scrollResponderHandleTouchEnd = e => {\n var nativeEvent = e.nativeEvent;\n this.isTouching = nativeEvent.touches.length !== 0;\n this.props.onTouchEnd && this.props.onTouchEnd(e);\n };\n this.scrollResponderHandleResponderRelease = e => {\n this.props.onResponderRelease && this.props.onResponderRelease(e);\n\n // By default scroll views will unfocus a textField\n // if another touch occurs outside of it\n var currentlyFocusedTextInput = TextInputState.currentlyFocusedField();\n if (!this.props.keyboardShouldPersistTaps && currentlyFocusedTextInput != null && e.target !== currentlyFocusedTextInput && !this.observedScrollSinceBecomingResponder && !this.becameResponderWhileAnimating) {\n this.props.onScrollResponderKeyboardDismissed && this.props.onScrollResponderKeyboardDismissed(e);\n TextInputState.blurTextInput(currentlyFocusedTextInput);\n }\n };\n this.scrollResponderHandleScroll = e => {\n this.observedScrollSinceBecomingResponder = true;\n this.props.onScroll && this.props.onScroll(e);\n };\n this.scrollResponderHandleResponderGrant = e => {\n this.observedScrollSinceBecomingResponder = false;\n this.props.onResponderGrant && this.props.onResponderGrant(e);\n this.becameResponderWhileAnimating = this.scrollResponderIsAnimating();\n };\n this.scrollResponderHandleScrollBeginDrag = e => {\n this.props.onScrollBeginDrag && this.props.onScrollBeginDrag(e);\n };\n this.scrollResponderHandleScrollEndDrag = e => {\n this.props.onScrollEndDrag && this.props.onScrollEndDrag(e);\n };\n this.scrollResponderHandleMomentumScrollBegin = e => {\n this.lastMomentumScrollBeginTime = Date.now();\n this.props.onMomentumScrollBegin && this.props.onMomentumScrollBegin(e);\n };\n this.scrollResponderHandleMomentumScrollEnd = e => {\n this.lastMomentumScrollEndTime = Date.now();\n this.props.onMomentumScrollEnd && this.props.onMomentumScrollEnd(e);\n };\n this.scrollResponderHandleTouchStart = e => {\n this.isTouching = true;\n this.props.onTouchStart && this.props.onTouchStart(e);\n };\n this.scrollResponderHandleTouchMove = e => {\n this.props.onTouchMove && this.props.onTouchMove(e);\n };\n this.scrollResponderIsAnimating = () => {\n var now = Date.now();\n var timeSinceLastMomentumScrollEnd = now - this.lastMomentumScrollEndTime;\n var isAnimating = timeSinceLastMomentumScrollEnd < IS_ANIMATING_TOUCH_START_THRESHOLD_MS || this.lastMomentumScrollEndTime < this.lastMomentumScrollBeginTime;\n return isAnimating;\n };\n this.scrollResponderScrollTo = (x, y, animated) => {\n if (typeof x === 'number') {\n console.warn('`scrollResponderScrollTo(x, y, animated)` is deprecated. Use `scrollResponderScrollTo({x: 5, y: 5, animated: true})` instead.');\n } else {\n var _ref = x || emptyObject;\n x = _ref.x;\n y = _ref.y;\n animated = _ref.animated;\n }\n var node = this.getScrollableNode();\n var left = x || 0;\n var top = y || 0;\n if (node != null) {\n if (typeof node.scroll === 'function') {\n node.scroll({\n top,\n left,\n behavior: !animated ? 'auto' : 'smooth'\n });\n } else {\n node.scrollLeft = left;\n node.scrollTop = top;\n }\n }\n };\n this.scrollResponderZoomTo = (rect, animated) => {\n if (Platform.OS !== 'ios') {\n invariant('zoomToRect is not implemented');\n }\n };\n this.scrollResponderScrollNativeHandleToKeyboard = (nodeHandle, additionalOffset, preventNegativeScrollOffset) => {\n this.additionalScrollOffset = additionalOffset || 0;\n this.preventNegativeScrollOffset = !!preventNegativeScrollOffset;\n UIManager.measureLayout(nodeHandle, this.getInnerViewNode(), this.scrollResponderTextInputFocusError, this.scrollResponderInputMeasureAndScrollToKeyboard);\n };\n this.scrollResponderInputMeasureAndScrollToKeyboard = (left, top, width, height) => {\n var keyboardScreenY = Dimensions.get('window').height;\n if (this.keyboardWillOpenTo) {\n keyboardScreenY = this.keyboardWillOpenTo.endCoordinates.screenY;\n }\n var scrollOffsetY = top - keyboardScreenY + height + this.additionalScrollOffset;\n\n // By default, this can scroll with negative offset, pulling the content\n // down so that the target component's bottom meets the keyboard's top.\n // If requested otherwise, cap the offset at 0 minimum to avoid content\n // shifting down.\n if (this.preventNegativeScrollOffset) {\n scrollOffsetY = Math.max(0, scrollOffsetY);\n }\n this.scrollResponderScrollTo({\n x: 0,\n y: scrollOffsetY,\n animated: true\n });\n this.additionalOffset = 0;\n this.preventNegativeScrollOffset = false;\n };\n this.scrollResponderKeyboardWillShow = e => {\n this.keyboardWillOpenTo = e;\n this.props.onKeyboardWillShow && this.props.onKeyboardWillShow(e);\n };\n this.scrollResponderKeyboardWillHide = e => {\n this.keyboardWillOpenTo = null;\n this.props.onKeyboardWillHide && this.props.onKeyboardWillHide(e);\n };\n this.scrollResponderKeyboardDidShow = e => {\n // TODO(7693961): The event for DidShow is not available on iOS yet.\n // Use the one from WillShow and do not assign.\n if (e) {\n this.keyboardWillOpenTo = e;\n }\n this.props.onKeyboardDidShow && this.props.onKeyboardDidShow(e);\n };\n this.scrollResponderKeyboardDidHide = e => {\n this.keyboardWillOpenTo = null;\n this.props.onKeyboardDidHide && this.props.onKeyboardDidHide(e);\n };\n this.flashScrollIndicators = () => {\n this.scrollResponderFlashScrollIndicators();\n };\n this.getScrollResponder = () => {\n return this;\n };\n this.getScrollableNode = () => {\n return this._scrollNodeRef;\n };\n this.getInnerViewRef = () => {\n return this._innerViewRef;\n };\n this.getInnerViewNode = () => {\n return this._innerViewRef;\n };\n this.getNativeScrollRef = () => {\n return this._scrollNodeRef;\n };\n this.scrollTo = (y, x, animated) => {\n if (typeof y === 'number') {\n console.warn('`scrollTo(y, x, animated)` is deprecated. Use `scrollTo({x: 5, y: 5, animated: true})` instead.');\n } else {\n var _ref2 = y || emptyObject;\n x = _ref2.x;\n y = _ref2.y;\n animated = _ref2.animated;\n }\n this.scrollResponderScrollTo({\n x: x || 0,\n y: y || 0,\n animated: animated !== false\n });\n };\n this.scrollToEnd = options => {\n // Default to true\n var animated = (options && options.animated) !== false;\n var horizontal = this.props.horizontal;\n var scrollResponderNode = this.getScrollableNode();\n var x = horizontal ? scrollResponderNode.scrollWidth : 0;\n var y = horizontal ? 0 : scrollResponderNode.scrollHeight;\n this.scrollResponderScrollTo({\n x,\n y,\n animated\n });\n };\n this._handleContentOnLayout = e => {\n var _e$nativeEvent$layout = e.nativeEvent.layout,\n width = _e$nativeEvent$layout.width,\n height = _e$nativeEvent$layout.height;\n this.props.onContentSizeChange(width, height);\n };\n this._handleScroll = e => {\n if (process.env.NODE_ENV !== 'production') {\n if (this.props.onScroll && this.props.scrollEventThrottle == null) {\n console.log('You specified `onScroll` on a but not ' + '`scrollEventThrottle`. You will only receive one event. ' + 'Using `16` you get all the events but be aware that it may ' + \"cause frame drops, use a bigger number if you don't need as \" + 'much precision.');\n }\n }\n if (this.props.keyboardDismissMode === 'on-drag') {\n dismissKeyboard();\n }\n this.scrollResponderHandleScroll(e);\n };\n this._setInnerViewRef = node => {\n this._innerViewRef = node;\n };\n this._setScrollNodeRef = node => {\n this._scrollNodeRef = node;\n // ScrollView needs to add more methods to the hostNode in addition to those\n // added by `usePlatformMethods`. This is temporarily until an API like\n // `ScrollView.scrollTo(hostNode, { x, y })` is added to React Native.\n if (node != null) {\n node.getScrollResponder = this.getScrollResponder;\n node.getInnerViewNode = this.getInnerViewNode;\n node.getInnerViewRef = this.getInnerViewRef;\n node.getNativeScrollRef = this.getNativeScrollRef;\n node.getScrollableNode = this.getScrollableNode;\n node.scrollTo = this.scrollTo;\n node.scrollToEnd = this.scrollToEnd;\n node.flashScrollIndicators = this.flashScrollIndicators;\n node.scrollResponderZoomTo = this.scrollResponderZoomTo;\n node.scrollResponderScrollNativeHandleToKeyboard = this.scrollResponderScrollNativeHandleToKeyboard;\n }\n var ref = mergeRefs(this.props.forwardedRef);\n ref(node);\n };\n }\n /**\n * ------------------------------------------------------\n * START SCROLLRESPONDER\n * ------------------------------------------------------\n */\n // Reset to false every time becomes responder. This is used to:\n // - Determine if the scroll view has been scrolled and therefore should\n // refuse to give up its responder lock.\n // - Determine if releasing should dismiss the keyboard when we are in\n // tap-to-dismiss mode (!this.props.keyboardShouldPersistTaps).\n /**\n * Invoke this from an `onScroll` event.\n */\n /**\n * Merely touch starting is not sufficient for a scroll view to become the\n * responder. Being the \"responder\" means that the very next touch move/end\n * event will result in an action/movement.\n *\n * Invoke this from an `onStartShouldSetResponder` event.\n *\n * `onStartShouldSetResponder` is used when the next move/end will trigger\n * some UI movement/action, but when you want to yield priority to views\n * nested inside of the view.\n *\n * There may be some cases where scroll views actually should return `true`\n * from `onStartShouldSetResponder`: Any time we are detecting a standard tap\n * that gives priority to nested views.\n *\n * - If a single tap on the scroll view triggers an action such as\n * recentering a map style view yet wants to give priority to interaction\n * views inside (such as dropped pins or labels), then we would return true\n * from this method when there is a single touch.\n *\n * - Similar to the previous case, if a two finger \"tap\" should trigger a\n * zoom, we would check the `touches` count, and if `>= 2`, we would return\n * true.\n *\n */\n scrollResponderHandleStartShouldSetResponder() {\n return false;\n }\n\n /**\n * There are times when the scroll view wants to become the responder\n * (meaning respond to the next immediate `touchStart/touchEnd`), in a way\n * that *doesn't* give priority to nested views (hence the capture phase):\n *\n * - Currently animating.\n * - Tapping anywhere that is not the focused input, while the keyboard is\n * up (which should dismiss the keyboard).\n *\n * Invoke this from an `onStartShouldSetResponderCapture` event.\n */\n\n /**\n * Invoke this from an `onResponderReject` event.\n *\n * Some other element is not yielding its role as responder. Normally, we'd\n * just disable the `UIScrollView`, but a touch has already began on it, the\n * `UIScrollView` will not accept being disabled after that. The easiest\n * solution for now is to accept the limitation of disallowing this\n * altogether. To improve this, find a way to disable the `UIScrollView` after\n * a touch has already started.\n */\n scrollResponderHandleResponderReject() {\n warning(false, \"ScrollView doesn't take rejection well - scrolls anyway\");\n }\n\n /**\n * We will allow the scroll view to give up its lock iff it acquired the lock\n * during an animation. This is a very useful default that happens to satisfy\n * many common user experiences.\n *\n * - Stop a scroll on the left edge, then turn that into an outer view's\n * backswipe.\n * - Stop a scroll mid-bounce at the top, continue pulling to have the outer\n * view dismiss.\n * - However, without catching the scroll view mid-bounce (while it is\n * motionless), if you drag far enough for the scroll view to become\n * responder (and therefore drag the scroll view a bit), any backswipe\n * navigation of a swipe gesture higher in the view hierarchy, should be\n * rejected.\n */\n\n /**\n * Invoke this from an `onTouchEnd` event.\n *\n * @param {SyntheticEvent} e Event.\n */\n\n /**\n * Invoke this from an `onResponderRelease` event.\n */\n\n /**\n * Invoke this from an `onResponderGrant` event.\n */\n\n /**\n * Unfortunately, `onScrollBeginDrag` also fires when *stopping* the scroll\n * animation, and there's not an easy way to distinguish a drag vs. stopping\n * momentum.\n *\n * Invoke this from an `onScrollBeginDrag` event.\n */\n\n /**\n * Invoke this from an `onScrollEndDrag` event.\n */\n\n /**\n * Invoke this from an `onMomentumScrollBegin` event.\n */\n\n /**\n * Invoke this from an `onMomentumScrollEnd` event.\n */\n\n /**\n * Invoke this from an `onTouchStart` event.\n *\n * Since we know that the `SimpleEventPlugin` occurs later in the plugin\n * order, after `ResponderEventPlugin`, we can detect that we were *not*\n * permitted to be the responder (presumably because a contained view became\n * responder). The `onResponderReject` won't fire in that case - it only\n * fires when a *current* responder rejects our request.\n *\n * @param {SyntheticEvent} e Touch Start event.\n */\n\n /**\n * Invoke this from an `onTouchMove` event.\n *\n * Since we know that the `SimpleEventPlugin` occurs later in the plugin\n * order, after `ResponderEventPlugin`, we can detect that we were *not*\n * permitted to be the responder (presumably because a contained view became\n * responder). The `onResponderReject` won't fire in that case - it only\n * fires when a *current* responder rejects our request.\n *\n * @param {SyntheticEvent} e Touch Start event.\n */\n\n /**\n * A helper function for this class that lets us quickly determine if the\n * view is currently animating. This is particularly useful to know when\n * a touch has just started or ended.\n */\n\n /**\n * A helper function to scroll to a specific point in the scrollview.\n * This is currently used to help focus on child textviews, but can also\n * be used to quickly scroll to any element we want to focus. Syntax:\n *\n * scrollResponderScrollTo(options: {x: number = 0; y: number = 0; animated: boolean = true})\n *\n * Note: The weird argument signature is due to the fact that, for historical reasons,\n * the function also accepts separate arguments as as alternative to the options object.\n * This is deprecated due to ambiguity (y before x), and SHOULD NOT BE USED.\n */\n\n /**\n * A helper function to zoom to a specific rect in the scrollview. The argument has the shape\n * {x: number; y: number; width: number; height: number; animated: boolean = true}\n *\n * @platform ios\n */\n\n /**\n * Displays the scroll indicators momentarily.\n */\n scrollResponderFlashScrollIndicators() {}\n\n /**\n * This method should be used as the callback to onFocus in a TextInputs'\n * parent view. Note that any module using this mixin needs to return\n * the parent view's ref in getScrollViewRef() in order to use this method.\n * @param {any} nodeHandle The TextInput node handle\n * @param {number} additionalOffset The scroll view's top \"contentInset\".\n * Default is 0.\n * @param {bool} preventNegativeScrolling Whether to allow pulling the content\n * down to make it meet the keyboard's top. Default is false.\n */\n\n /**\n * The calculations performed here assume the scroll view takes up the entire\n * screen - even if has some content inset. We then measure the offsets of the\n * keyboard, and compensate both for the scroll view's \"contentInset\".\n *\n * @param {number} left Position of input w.r.t. table view.\n * @param {number} top Position of input w.r.t. table view.\n * @param {number} width Width of the text input.\n * @param {number} height Height of the text input.\n */\n\n scrollResponderTextInputFocusError(e) {\n console.error('Error measuring text field: ', e);\n }\n\n /**\n * Warning, this may be called several times for a single keyboard opening.\n * It's best to store the information in this method and then take any action\n * at a later point (either in `keyboardDidShow` or other).\n *\n * Here's the order that events occur in:\n * - focus\n * - willShow {startCoordinates, endCoordinates} several times\n * - didShow several times\n * - blur\n * - willHide {startCoordinates, endCoordinates} several times\n * - didHide several times\n *\n * The `ScrollResponder` providesModule callbacks for each of these events.\n * Even though any user could have easily listened to keyboard events\n * themselves, using these `props` callbacks ensures that ordering of events\n * is consistent - and not dependent on the order that the keyboard events are\n * subscribed to. This matters when telling the scroll view to scroll to where\n * the keyboard is headed - the scroll responder better have been notified of\n * the keyboard destination before being instructed to scroll to where the\n * keyboard will be. Stick to the `ScrollResponder` callbacks, and everything\n * will work.\n *\n * WARNING: These callbacks will fire even if a keyboard is displayed in a\n * different navigation pane. Filter out the events to determine if they are\n * relevant to you. (For example, only if you receive these callbacks after\n * you had explicitly focused a node etc).\n */\n\n /**\n * ------------------------------------------------------\n * END SCROLLRESPONDER\n * ------------------------------------------------------\n */\n\n /**\n * Returns a reference to the underlying scroll responder, which supports\n * operations like `scrollTo`. All ScrollView-like components should\n * implement this method so that they can be composed while providing access\n * to the underlying scroll responder's methods.\n */\n\n /**\n * Scrolls to a given x, y offset, either immediately or with a smooth animation.\n * Syntax:\n *\n * scrollTo(options: {x: number = 0; y: number = 0; animated: boolean = true})\n *\n * Note: The weird argument signature is due to the fact that, for historical reasons,\n * the function also accepts separate arguments as as alternative to the options object.\n * This is deprecated due to ambiguity (y before x), and SHOULD NOT BE USED.\n */\n\n /**\n * If this is a vertical ScrollView scrolls to the bottom.\n * If this is a horizontal ScrollView scrolls to the right.\n *\n * Use `scrollToEnd({ animated: true })` for smooth animated scrolling,\n * `scrollToEnd({ animated: false })` for immediate scrolling.\n * If no options are passed, `animated` defaults to true.\n */\n\n render() {\n var _this$props = this.props,\n contentContainerStyle = _this$props.contentContainerStyle,\n horizontal = _this$props.horizontal,\n onContentSizeChange = _this$props.onContentSizeChange,\n refreshControl = _this$props.refreshControl,\n stickyHeaderIndices = _this$props.stickyHeaderIndices,\n pagingEnabled = _this$props.pagingEnabled,\n forwardedRef = _this$props.forwardedRef,\n keyboardDismissMode = _this$props.keyboardDismissMode,\n onScroll = _this$props.onScroll,\n centerContent = _this$props.centerContent,\n other = _objectWithoutPropertiesLoose(_this$props, _excluded);\n if (process.env.NODE_ENV !== 'production' && this.props.style) {\n var style = StyleSheet.flatten(this.props.style);\n var childLayoutProps = ['alignItems', 'justifyContent'].filter(prop => style && style[prop] !== undefined);\n invariant(childLayoutProps.length === 0, \"ScrollView child layout (\" + JSON.stringify(childLayoutProps) + \") \" + 'must be applied through the contentContainerStyle prop.');\n }\n var contentSizeChangeProps = {};\n if (onContentSizeChange) {\n contentSizeChangeProps = {\n onLayout: this._handleContentOnLayout\n };\n }\n var hasStickyHeaderIndices = !horizontal && Array.isArray(stickyHeaderIndices);\n var children = hasStickyHeaderIndices || pagingEnabled ? React.Children.map(this.props.children, (child, i) => {\n var isSticky = hasStickyHeaderIndices && stickyHeaderIndices.indexOf(i) > -1;\n if (child != null && (isSticky || pagingEnabled)) {\n return /*#__PURE__*/React.createElement(View, {\n style: [isSticky && styles.stickyHeader, pagingEnabled && styles.pagingEnabledChild]\n }, child);\n } else {\n return child;\n }\n }) : this.props.children;\n var contentContainer = /*#__PURE__*/React.createElement(View, _extends({}, contentSizeChangeProps, {\n children: children,\n collapsable: false,\n ref: this._setInnerViewRef,\n style: [horizontal && styles.contentContainerHorizontal, centerContent && styles.contentContainerCenterContent, contentContainerStyle]\n }));\n var baseStyle = horizontal ? styles.baseHorizontal : styles.baseVertical;\n var pagingEnabledStyle = horizontal ? styles.pagingEnabledHorizontal : styles.pagingEnabledVertical;\n var props = _objectSpread(_objectSpread({}, other), {}, {\n style: [baseStyle, pagingEnabled && pagingEnabledStyle, this.props.style],\n onTouchStart: this.scrollResponderHandleTouchStart,\n onTouchMove: this.scrollResponderHandleTouchMove,\n onTouchEnd: this.scrollResponderHandleTouchEnd,\n onScrollBeginDrag: this.scrollResponderHandleScrollBeginDrag,\n onScrollEndDrag: this.scrollResponderHandleScrollEndDrag,\n onMomentumScrollBegin: this.scrollResponderHandleMomentumScrollBegin,\n onMomentumScrollEnd: this.scrollResponderHandleMomentumScrollEnd,\n onStartShouldSetResponder: this.scrollResponderHandleStartShouldSetResponder,\n onStartShouldSetResponderCapture: this.scrollResponderHandleStartShouldSetResponderCapture,\n onScrollShouldSetResponder: this.scrollResponderHandleScrollShouldSetResponder,\n onScroll: this._handleScroll,\n onResponderGrant: this.scrollResponderHandleResponderGrant,\n onResponderTerminationRequest: this.scrollResponderHandleTerminationRequest,\n onResponderTerminate: this.scrollResponderHandleTerminate,\n onResponderRelease: this.scrollResponderHandleResponderRelease,\n onResponderReject: this.scrollResponderHandleResponderReject\n });\n var ScrollViewClass = ScrollViewBase;\n invariant(ScrollViewClass !== undefined, 'ScrollViewClass must not be undefined');\n var scrollView = /*#__PURE__*/React.createElement(ScrollViewClass, _extends({}, props, {\n ref: this._setScrollNodeRef\n }), contentContainer);\n if (refreshControl) {\n return /*#__PURE__*/React.cloneElement(refreshControl, {\n style: props.style\n }, scrollView);\n }\n return scrollView;\n }\n}\nvar commonStyle = {\n flexGrow: 1,\n flexShrink: 1,\n // Enable hardware compositing in modern browsers.\n // Creates a new layer with its own backing surface that can significantly\n // improve scroll performance.\n transform: 'translateZ(0)',\n // iOS native scrolling\n WebkitOverflowScrolling: 'touch'\n};\nvar styles = StyleSheet.create({\n baseVertical: _objectSpread(_objectSpread({}, commonStyle), {}, {\n flexDirection: 'column',\n overflowX: 'hidden',\n overflowY: 'auto'\n }),\n baseHorizontal: _objectSpread(_objectSpread({}, commonStyle), {}, {\n flexDirection: 'row',\n overflowX: 'auto',\n overflowY: 'hidden'\n }),\n contentContainerHorizontal: {\n flexDirection: 'row'\n },\n contentContainerCenterContent: {\n justifyContent: 'center',\n flexGrow: 1\n },\n stickyHeader: {\n position: 'sticky',\n top: 0,\n zIndex: 10\n },\n pagingEnabledHorizontal: {\n scrollSnapType: 'x mandatory'\n },\n pagingEnabledVertical: {\n scrollSnapType: 'y mandatory'\n },\n pagingEnabledChild: {\n scrollSnapAlign: 'start'\n }\n});\nvar ForwardedScrollView = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n return /*#__PURE__*/React.createElement(ScrollView, _extends({}, props, {\n forwardedRef: forwardedRef\n }));\n});\nForwardedScrollView.displayName = 'ScrollView';\nexport default ForwardedScrollView;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _createForOfIteratorHelperLoose from \"@babel/runtime/helpers/createForOfIteratorHelperLoose\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nvar _excluded = [\"ItemSeparatorComponent\", \"SectionSeparatorComponent\", \"renderItem\", \"renderSectionFooter\", \"renderSectionHeader\", \"sections\", \"stickySectionHeadersEnabled\"];\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\nimport View from '../../../exports/View';\nimport VirtualizedList from '../VirtualizedList';\nimport { keyExtractor as defaultKeyExtractor } from '../VirtualizeUtils';\nimport invariant from 'fbjs/lib/invariant';\nimport * as React from 'react';\n/**\n * Right now this just flattens everything into one list and uses VirtualizedList under the\n * hood. The only operation that might not scale well is concatting the data arrays of all the\n * sections when new props are received, which should be plenty fast for up to ~10,000 items.\n */\nclass VirtualizedSectionList extends React.PureComponent {\n constructor() {\n super(...arguments);\n this._keyExtractor = (item, index) => {\n var info = this._subExtractor(index);\n return info && info.key || String(index);\n };\n this._convertViewable = viewable => {\n var _info$index;\n invariant(viewable.index != null, 'Received a broken ViewToken');\n var info = this._subExtractor(viewable.index);\n if (!info) {\n return null;\n }\n var keyExtractorWithNullableIndex = info.section.keyExtractor;\n var keyExtractorWithNonNullableIndex = this.props.keyExtractor || defaultKeyExtractor;\n var key = keyExtractorWithNullableIndex != null ? keyExtractorWithNullableIndex(viewable.item, info.index) : keyExtractorWithNonNullableIndex(viewable.item, (_info$index = info.index) !== null && _info$index !== void 0 ? _info$index : 0);\n return _objectSpread(_objectSpread({}, viewable), {}, {\n index: info.index,\n key,\n section: info.section\n });\n };\n this._onViewableItemsChanged = _ref => {\n var viewableItems = _ref.viewableItems,\n changed = _ref.changed;\n var onViewableItemsChanged = this.props.onViewableItemsChanged;\n if (onViewableItemsChanged != null) {\n onViewableItemsChanged({\n viewableItems: viewableItems.map(this._convertViewable, this).filter(Boolean),\n changed: changed.map(this._convertViewable, this).filter(Boolean)\n });\n }\n };\n this._renderItem = listItemCount =>\n // eslint-disable-next-line react/no-unstable-nested-components\n _ref2 => {\n var item = _ref2.item,\n index = _ref2.index;\n var info = this._subExtractor(index);\n if (!info) {\n return null;\n }\n var infoIndex = info.index;\n if (infoIndex == null) {\n var section = info.section;\n if (info.header === true) {\n var renderSectionHeader = this.props.renderSectionHeader;\n return renderSectionHeader ? renderSectionHeader({\n section\n }) : null;\n } else {\n var renderSectionFooter = this.props.renderSectionFooter;\n return renderSectionFooter ? renderSectionFooter({\n section\n }) : null;\n }\n } else {\n var renderItem = info.section.renderItem || this.props.renderItem;\n var SeparatorComponent = this._getSeparatorComponent(index, info, listItemCount);\n invariant(renderItem, 'no renderItem!');\n return /*#__PURE__*/React.createElement(ItemWithSeparator, {\n SeparatorComponent: SeparatorComponent,\n LeadingSeparatorComponent: infoIndex === 0 ? this.props.SectionSeparatorComponent : undefined,\n cellKey: info.key,\n index: infoIndex,\n item: item,\n leadingItem: info.leadingItem,\n leadingSection: info.leadingSection,\n prevCellKey: (this._subExtractor(index - 1) || {}).key\n // Callback to provide updateHighlight for this item\n ,\n setSelfHighlightCallback: this._setUpdateHighlightFor,\n setSelfUpdatePropsCallback: this._setUpdatePropsFor\n // Provide child ability to set highlight/updateProps for previous item using prevCellKey\n ,\n updateHighlightFor: this._updateHighlightFor,\n updatePropsFor: this._updatePropsFor,\n renderItem: renderItem,\n section: info.section,\n trailingItem: info.trailingItem,\n trailingSection: info.trailingSection,\n inverted: !!this.props.inverted\n });\n }\n };\n this._updatePropsFor = (cellKey, value) => {\n var updateProps = this._updatePropsMap[cellKey];\n if (updateProps != null) {\n updateProps(value);\n }\n };\n this._updateHighlightFor = (cellKey, value) => {\n var updateHighlight = this._updateHighlightMap[cellKey];\n if (updateHighlight != null) {\n updateHighlight(value);\n }\n };\n this._setUpdateHighlightFor = (cellKey, updateHighlightFn) => {\n if (updateHighlightFn != null) {\n this._updateHighlightMap[cellKey] = updateHighlightFn;\n } else {\n // $FlowFixMe[prop-missing]\n delete this._updateHighlightFor[cellKey];\n }\n };\n this._setUpdatePropsFor = (cellKey, updatePropsFn) => {\n if (updatePropsFn != null) {\n this._updatePropsMap[cellKey] = updatePropsFn;\n } else {\n delete this._updatePropsMap[cellKey];\n }\n };\n this._updateHighlightMap = {};\n this._updatePropsMap = {};\n this._captureRef = ref => {\n this._listRef = ref;\n };\n }\n scrollToLocation(params) {\n var index = params.itemIndex;\n for (var i = 0; i < params.sectionIndex; i++) {\n index += this.props.getItemCount(this.props.sections[i].data) + 2;\n }\n var viewOffset = params.viewOffset || 0;\n if (this._listRef == null) {\n return;\n }\n if (params.itemIndex > 0 && this.props.stickySectionHeadersEnabled) {\n var frame = this._listRef.__getFrameMetricsApprox(index - params.itemIndex, this._listRef.props);\n viewOffset += frame.length;\n }\n var toIndexParams = _objectSpread(_objectSpread({}, params), {}, {\n viewOffset,\n index\n });\n // $FlowFixMe[incompatible-use]\n this._listRef.scrollToIndex(toIndexParams);\n }\n getListRef() {\n return this._listRef;\n }\n render() {\n var _this$props = this.props,\n ItemSeparatorComponent = _this$props.ItemSeparatorComponent,\n SectionSeparatorComponent = _this$props.SectionSeparatorComponent,\n _renderItem = _this$props.renderItem,\n renderSectionFooter = _this$props.renderSectionFooter,\n renderSectionHeader = _this$props.renderSectionHeader,\n _sections = _this$props.sections,\n stickySectionHeadersEnabled = _this$props.stickySectionHeadersEnabled,\n passThroughProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\n var listHeaderOffset = this.props.ListHeaderComponent ? 1 : 0;\n var stickyHeaderIndices = this.props.stickySectionHeadersEnabled ? [] : undefined;\n var itemCount = 0;\n for (var _iterator = _createForOfIteratorHelperLoose(this.props.sections), _step; !(_step = _iterator()).done;) {\n var section = _step.value;\n // Track the section header indices\n if (stickyHeaderIndices != null) {\n stickyHeaderIndices.push(itemCount + listHeaderOffset);\n }\n\n // Add two for the section header and footer.\n itemCount += 2;\n itemCount += this.props.getItemCount(section.data);\n }\n var renderItem = this._renderItem(itemCount);\n return /*#__PURE__*/React.createElement(VirtualizedList, _extends({}, passThroughProps, {\n keyExtractor: this._keyExtractor,\n stickyHeaderIndices: stickyHeaderIndices,\n renderItem: renderItem,\n data: this.props.sections,\n getItem: (sections, index) => this._getItem(this.props, sections, index),\n getItemCount: () => itemCount,\n onViewableItemsChanged: this.props.onViewableItemsChanged ? this._onViewableItemsChanged : undefined,\n ref: this._captureRef\n }));\n }\n _getItem(props, sections, index) {\n if (!sections) {\n return null;\n }\n var itemIdx = index - 1;\n for (var i = 0; i < sections.length; i++) {\n var section = sections[i];\n var sectionData = section.data;\n var itemCount = props.getItemCount(sectionData);\n if (itemIdx === -1 || itemIdx === itemCount) {\n // We intend for there to be overflow by one on both ends of the list.\n // This will be for headers and footers. When returning a header or footer\n // item the section itself is the item.\n return section;\n } else if (itemIdx < itemCount) {\n // If we are in the bounds of the list's data then return the item.\n return props.getItem(sectionData, itemIdx);\n } else {\n itemIdx -= itemCount + 2; // Add two for the header and footer\n }\n }\n\n return null;\n }\n\n // $FlowFixMe[missing-local-annot]\n\n _subExtractor(index) {\n var itemIndex = index;\n var _this$props2 = this.props,\n getItem = _this$props2.getItem,\n getItemCount = _this$props2.getItemCount,\n keyExtractor = _this$props2.keyExtractor,\n sections = _this$props2.sections;\n for (var i = 0; i < sections.length; i++) {\n var section = sections[i];\n var sectionData = section.data;\n var key = section.key || String(i);\n itemIndex -= 1; // The section adds an item for the header\n if (itemIndex >= getItemCount(sectionData) + 1) {\n itemIndex -= getItemCount(sectionData) + 1; // The section adds an item for the footer.\n } else if (itemIndex === -1) {\n return {\n section,\n key: key + ':header',\n index: null,\n header: true,\n trailingSection: sections[i + 1]\n };\n } else if (itemIndex === getItemCount(sectionData)) {\n return {\n section,\n key: key + ':footer',\n index: null,\n header: false,\n trailingSection: sections[i + 1]\n };\n } else {\n var extractor = section.keyExtractor || keyExtractor || defaultKeyExtractor;\n return {\n section,\n key: key + ':' + extractor(getItem(sectionData, itemIndex), itemIndex),\n index: itemIndex,\n leadingItem: getItem(sectionData, itemIndex - 1),\n leadingSection: sections[i - 1],\n trailingItem: getItem(sectionData, itemIndex + 1),\n trailingSection: sections[i + 1]\n };\n }\n }\n }\n _getSeparatorComponent(index, info, listItemCount) {\n info = info || this._subExtractor(index);\n if (!info) {\n return null;\n }\n var ItemSeparatorComponent = info.section.ItemSeparatorComponent || this.props.ItemSeparatorComponent;\n var SectionSeparatorComponent = this.props.SectionSeparatorComponent;\n var isLastItemInList = index === listItemCount - 1;\n var isLastItemInSection = info.index === this.props.getItemCount(info.section.data) - 1;\n if (SectionSeparatorComponent && isLastItemInSection) {\n return SectionSeparatorComponent;\n }\n if (ItemSeparatorComponent && !isLastItemInSection && !isLastItemInList) {\n return ItemSeparatorComponent;\n }\n return null;\n }\n}\nfunction ItemWithSeparator(props) {\n var LeadingSeparatorComponent = props.LeadingSeparatorComponent,\n SeparatorComponent = props.SeparatorComponent,\n cellKey = props.cellKey,\n prevCellKey = props.prevCellKey,\n setSelfHighlightCallback = props.setSelfHighlightCallback,\n updateHighlightFor = props.updateHighlightFor,\n setSelfUpdatePropsCallback = props.setSelfUpdatePropsCallback,\n updatePropsFor = props.updatePropsFor,\n item = props.item,\n index = props.index,\n section = props.section,\n inverted = props.inverted;\n var _React$useState = React.useState(false),\n leadingSeparatorHiglighted = _React$useState[0],\n setLeadingSeparatorHighlighted = _React$useState[1];\n var _React$useState2 = React.useState(false),\n separatorHighlighted = _React$useState2[0],\n setSeparatorHighlighted = _React$useState2[1];\n var _React$useState3 = React.useState({\n leadingItem: props.leadingItem,\n leadingSection: props.leadingSection,\n section: props.section,\n trailingItem: props.item,\n trailingSection: props.trailingSection\n }),\n leadingSeparatorProps = _React$useState3[0],\n setLeadingSeparatorProps = _React$useState3[1];\n var _React$useState4 = React.useState({\n leadingItem: props.item,\n leadingSection: props.leadingSection,\n section: props.section,\n trailingItem: props.trailingItem,\n trailingSection: props.trailingSection\n }),\n separatorProps = _React$useState4[0],\n setSeparatorProps = _React$useState4[1];\n React.useEffect(() => {\n setSelfHighlightCallback(cellKey, setSeparatorHighlighted);\n // $FlowFixMe[incompatible-call]\n setSelfUpdatePropsCallback(cellKey, setSeparatorProps);\n return () => {\n setSelfUpdatePropsCallback(cellKey, null);\n setSelfHighlightCallback(cellKey, null);\n };\n }, [cellKey, setSelfHighlightCallback, setSeparatorProps, setSelfUpdatePropsCallback]);\n var separators = {\n highlight: () => {\n setLeadingSeparatorHighlighted(true);\n setSeparatorHighlighted(true);\n if (prevCellKey != null) {\n updateHighlightFor(prevCellKey, true);\n }\n },\n unhighlight: () => {\n setLeadingSeparatorHighlighted(false);\n setSeparatorHighlighted(false);\n if (prevCellKey != null) {\n updateHighlightFor(prevCellKey, false);\n }\n },\n updateProps: (select, newProps) => {\n if (select === 'leading') {\n if (LeadingSeparatorComponent != null) {\n setLeadingSeparatorProps(_objectSpread(_objectSpread({}, leadingSeparatorProps), newProps));\n } else if (prevCellKey != null) {\n // update the previous item's separator\n updatePropsFor(prevCellKey, _objectSpread(_objectSpread({}, leadingSeparatorProps), newProps));\n }\n } else if (select === 'trailing' && SeparatorComponent != null) {\n setSeparatorProps(_objectSpread(_objectSpread({}, separatorProps), newProps));\n }\n }\n };\n var element = props.renderItem({\n item,\n index,\n section,\n separators\n });\n var leadingSeparator = LeadingSeparatorComponent != null && /*#__PURE__*/React.createElement(LeadingSeparatorComponent, _extends({\n highlighted: leadingSeparatorHiglighted\n }, leadingSeparatorProps));\n var separator = SeparatorComponent != null && /*#__PURE__*/React.createElement(SeparatorComponent, _extends({\n highlighted: separatorHighlighted\n }, separatorProps));\n return leadingSeparator || separator ? /*#__PURE__*/React.createElement(View, null, inverted === false ? leadingSeparator : separator, element, inverted === false ? separator : leadingSeparator) : element;\n}\n\n/* $FlowFixMe[class-object-subtyping] added when improving typing for this\n * parameters */\n// $FlowFixMe[method-unbinding]\nexport default VirtualizedSectionList;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"stickySectionHeadersEnabled\"];\nimport Platform from '../../../exports/Platform';\nimport * as React from 'react';\nimport VirtualizedSectionList from '../VirtualizedSectionList';\n/**\n * A performant interface for rendering sectioned lists, supporting the most handy features:\n *\n * - Fully cross-platform.\n * - Configurable viewability callbacks.\n * - List header support.\n * - List footer support.\n * - Item separator support.\n * - Section header support.\n * - Section separator support.\n * - Heterogeneous data and item rendering support.\n * - Pull to Refresh.\n * - Scroll loading.\n *\n * If you don't need section support and want a simpler interface, use\n * [``](https://reactnative.dev/docs/flatlist).\n *\n * Simple Examples:\n *\n * }\n * renderSectionHeader={({section}) =>
}\n * sections={[ // homogeneous rendering between sections\n * {data: [...], title: ...},\n * {data: [...], title: ...},\n * {data: [...], title: ...},\n * ]}\n * />\n *\n * \n *\n * This is a convenience wrapper around [``](docs/virtualizedlist),\n * and thus inherits its props (as well as those of `ScrollView`) that aren't explicitly listed\n * here, along with the following caveats:\n *\n * - Internal state is not preserved when content scrolls out of the render window. Make sure all\n * your data is captured in the item data or external stores like Flux, Redux, or Relay.\n * - This is a `PureComponent` which means that it will not re-render if `props` remain shallow-\n * equal. Make sure that everything your `renderItem` function depends on is passed as a prop\n * (e.g. `extraData`) that is not `===` after updates, otherwise your UI may not update on\n * changes. This includes the `data` prop and parent component state.\n * - In order to constrain memory and enable smooth scrolling, content is rendered asynchronously\n * offscreen. This means it's possible to scroll faster than the fill rate and momentarily see\n * blank content. This is a tradeoff that can be adjusted to suit the needs of each application,\n * and we are working on improving it behind the scenes.\n * - By default, the list looks for a `key` prop on each item and uses that for the React key.\n * Alternatively, you can provide a custom `keyExtractor` prop.\n *\n */\nexport default class SectionList extends React.PureComponent {\n constructor() {\n super(...arguments);\n this._captureRef = ref => {\n this._wrapperListRef = ref;\n };\n }\n /**\n * Scrolls to the item at the specified `sectionIndex` and `itemIndex` (within the section)\n * positioned in the viewable area such that `viewPosition` 0 places it at the top (and may be\n * covered by a sticky header), 1 at the bottom, and 0.5 centered in the middle. `viewOffset` is a\n * fixed number of pixels to offset the final target position, e.g. to compensate for sticky\n * headers.\n *\n * Note: cannot scroll to locations outside the render window without specifying the\n * `getItemLayout` prop.\n */\n scrollToLocation(params) {\n if (this._wrapperListRef != null) {\n this._wrapperListRef.scrollToLocation(params);\n }\n }\n\n /**\n * Tells the list an interaction has occurred, which should trigger viewability calculations, e.g.\n * if `waitForInteractions` is true and the user has not scrolled. This is typically called by\n * taps on items or by navigation actions.\n */\n recordInteraction() {\n var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n listRef && listRef.recordInteraction();\n }\n\n /**\n * Displays the scroll indicators momentarily.\n *\n * @platform ios\n */\n flashScrollIndicators() {\n var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n listRef && listRef.flashScrollIndicators();\n }\n\n /**\n * Provides a handle to the underlying scroll responder.\n */\n getScrollResponder() {\n var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n if (listRef) {\n return listRef.getScrollResponder();\n }\n }\n getScrollableNode() {\n var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n if (listRef) {\n return listRef.getScrollableNode();\n }\n }\n render() {\n var _this$props = this.props,\n _stickySectionHeadersEnabled = _this$props.stickySectionHeadersEnabled,\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\n var stickySectionHeadersEnabled = _stickySectionHeadersEnabled !== null && _stickySectionHeadersEnabled !== void 0 ? _stickySectionHeadersEnabled : Platform.OS === 'ios';\n return /*#__PURE__*/React.createElement(VirtualizedSectionList, _extends({}, restProps, {\n stickySectionHeadersEnabled: stickySectionHeadersEnabled,\n ref: this._captureRef,\n getItemCount: items => items.length,\n getItem: (items, index) => items[index]\n }));\n }\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport SectionList from '../../vendor/react-native/SectionList';\nexport default SectionList;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar emptyFunction = () => {};\nfunction StatusBar() {\n return null;\n}\nStatusBar.setBackgroundColor = emptyFunction;\nStatusBar.setBarStyle = emptyFunction;\nStatusBar.setHidden = emptyFunction;\nStatusBar.setNetworkActivityIndicatorVisible = emptyFunction;\nStatusBar.setTranslucent = emptyFunction;\nexport default StatusBar;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar isWebColor = color => color === 'currentcolor' || color === 'currentColor' || color === 'inherit' || color.indexOf('var(') === 0;\nexport default isWebColor;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport isWebColor from '../../../modules/isWebColor';\nimport processColor from '../../../exports/processColor';\nvar normalizeColor = function normalizeColor(color, opacity) {\n if (opacity === void 0) {\n opacity = 1;\n }\n if (color == null) return;\n if (typeof color === 'string' && isWebColor(color)) {\n return color;\n }\n var colorInt = processColor(color);\n if (colorInt != null) {\n var r = colorInt >> 16 & 255;\n var g = colorInt >> 8 & 255;\n var b = colorInt & 255;\n var a = (colorInt >> 24 & 255) / 255;\n var alpha = (a * opacity).toFixed(2);\n return \"rgba(\" + r + \",\" + g + \",\" + b + \",\" + alpha + \")\";\n }\n};\nexport default normalizeColor;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar unitlessNumbers = {\n animationIterationCount: true,\n aspectRatio: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n flex: true,\n flexGrow: true,\n flexOrder: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n fontWeight: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowGap: true,\n gridRowStart: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnGap: true,\n gridColumnStart: true,\n lineClamp: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n // SVG-related\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true,\n // transform types\n scale: true,\n scaleX: true,\n scaleY: true,\n scaleZ: true,\n // RN properties\n shadowOpacity: true\n};\n\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\nvar prefixes = ['ms', 'Moz', 'O', 'Webkit'];\nvar prefixKey = (prefix, key) => {\n return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n};\nObject.keys(unitlessNumbers).forEach(prop => {\n prefixes.forEach(prefix => {\n unitlessNumbers[prefixKey(prefix, prop)] = unitlessNumbers[prop];\n });\n});\nexport default unitlessNumbers;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport unitlessNumbers from './unitlessNumbers';\nimport normalizeColor from './normalizeColor';\nvar colorProps = {\n backgroundColor: true,\n borderColor: true,\n borderTopColor: true,\n borderRightColor: true,\n borderBottomColor: true,\n borderLeftColor: true,\n color: true,\n shadowColor: true,\n textDecorationColor: true,\n textShadowColor: true\n};\nexport default function normalizeValueWithProperty(value, property) {\n var returnValue = value;\n if ((property == null || !unitlessNumbers[property]) && typeof value === 'number') {\n returnValue = value + \"px\";\n } else if (property != null && colorProps[property]) {\n returnValue = normalizeColor(value);\n }\n return returnValue;\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport canUseDOM from '../../../modules/canUseDom';\n\n// $FlowFixMe: HTMLStyleElement is incorrectly typed - https://github.com/facebook/flow/issues/2696\nexport default function createCSSStyleSheet(id, rootNode, textContent) {\n if (canUseDOM) {\n var root = rootNode != null ? rootNode : document;\n var element = root.getElementById(id);\n if (element == null) {\n element = document.createElement('style');\n element.setAttribute('id', id);\n if (typeof textContent === 'string') {\n element.appendChild(document.createTextNode(textContent));\n }\n if (root instanceof ShadowRoot) {\n root.insertBefore(element, root.firstChild);\n } else {\n var head = root.head;\n if (head) {\n head.insertBefore(element, head.firstChild);\n }\n }\n }\n // $FlowFixMe: HTMLElement is incorrectly typed\n return element.sheet;\n } else {\n return null;\n }\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar slice = Array.prototype.slice;\n\n/**\n * Order-based insertion of CSS.\n *\n * Each rule is associated with a numerically defined group.\n * Groups are ordered within the style sheet according to their number, with the\n * lowest first.\n *\n * Groups are implemented using marker rules. The selector of the first rule of\n * each group is used only to encode the group number for hydration. An\n * alternative implementation could rely on CSSMediaRule, allowing groups to be\n * treated as a sub-sheet, but the Edge implementation of CSSMediaRule is\n * broken.\n * https://developer.mozilla.org/en-US/docs/Web/API/CSSMediaRule\n * https://gist.github.com/necolas/aa0c37846ad6bd3b05b727b959e82674\n */\nexport default function createOrderedCSSStyleSheet(sheet) {\n var groups = {};\n var selectors = {};\n\n /**\n * Hydrate approximate record from any existing rules in the sheet.\n */\n if (sheet != null) {\n var group;\n slice.call(sheet.cssRules).forEach((cssRule, i) => {\n var cssText = cssRule.cssText;\n // Create record of existing selectors and rules\n if (cssText.indexOf('stylesheet-group') > -1) {\n group = decodeGroupRule(cssRule);\n groups[group] = {\n start: i,\n rules: [cssText]\n };\n } else {\n var selectorText = getSelectorText(cssText);\n if (selectorText != null) {\n selectors[selectorText] = true;\n groups[group].rules.push(cssText);\n }\n }\n });\n }\n function sheetInsert(sheet, group, text) {\n var orderedGroups = getOrderedGroups(groups);\n var groupIndex = orderedGroups.indexOf(group);\n var nextGroupIndex = groupIndex + 1;\n var nextGroup = orderedGroups[nextGroupIndex];\n // Insert rule before the next group, or at the end of the stylesheet\n var position = nextGroup != null && groups[nextGroup].start != null ? groups[nextGroup].start : sheet.cssRules.length;\n var isInserted = insertRuleAt(sheet, text, position);\n if (isInserted) {\n // Set the starting index of the new group\n if (groups[group].start == null) {\n groups[group].start = position;\n }\n // Increment the starting index of all subsequent groups\n for (var i = nextGroupIndex; i < orderedGroups.length; i += 1) {\n var groupNumber = orderedGroups[i];\n var previousStart = groups[groupNumber].start || 0;\n groups[groupNumber].start = previousStart + 1;\n }\n }\n return isInserted;\n }\n var OrderedCSSStyleSheet = {\n /**\n * The textContent of the style sheet.\n */\n getTextContent() {\n return getOrderedGroups(groups).map(group => {\n var rules = groups[group].rules;\n // Sorting provides deterministic order of styles in group for\n // build-time extraction of the style sheet.\n var marker = rules.shift();\n rules.sort();\n rules.unshift(marker);\n return rules.join('\\n');\n }).join('\\n');\n },\n /**\n * Insert a rule into the style sheet\n */\n insert(cssText, groupValue) {\n var group = Number(groupValue);\n\n // Create a new group.\n if (groups[group] == null) {\n var markerRule = encodeGroupRule(group);\n // Create the internal record.\n groups[group] = {\n start: null,\n rules: [markerRule]\n };\n // Update CSSOM.\n if (sheet != null) {\n sheetInsert(sheet, group, markerRule);\n }\n }\n\n // selectorText is more reliable than cssText for insertion checks. The\n // browser excludes vendor-prefixed properties and rewrites certain values\n // making cssText more likely to be different from what was inserted.\n var selectorText = getSelectorText(cssText);\n if (selectorText != null && selectors[selectorText] == null) {\n // Update the internal records.\n selectors[selectorText] = true;\n groups[group].rules.push(cssText);\n // Update CSSOM.\n if (sheet != null) {\n var isInserted = sheetInsert(sheet, group, cssText);\n if (!isInserted) {\n // Revert internal record change if a rule was rejected (e.g.,\n // unrecognized pseudo-selector)\n groups[group].rules.pop();\n }\n }\n }\n }\n };\n return OrderedCSSStyleSheet;\n}\n\n/**\n * Helper functions\n */\n\nfunction encodeGroupRule(group) {\n return \"[stylesheet-group=\\\"\" + group + \"\\\"]{}\";\n}\nvar groupPattern = /[\"']/g;\nfunction decodeGroupRule(cssRule) {\n return Number(cssRule.selectorText.split(groupPattern)[1]);\n}\nfunction getOrderedGroups(obj) {\n return Object.keys(obj).map(Number).sort((a, b) => a > b ? 1 : -1);\n}\nvar selectorPattern = /\\s*([,])\\s*/g;\nfunction getSelectorText(cssText) {\n var selector = cssText.split('{')[0].trim();\n return selector !== '' ? selector.replace(selectorPattern, '$1') : null;\n}\nfunction insertRuleAt(root, cssText, position) {\n try {\n // $FlowFixMe: Flow is missing CSSOM types needed to type 'root'.\n root.insertRule(cssText, position);\n return true;\n } catch (e) {\n // JSDOM doesn't support `CSSSMediaRule#insertRule`.\n // Also ignore errors that occur from attempting to insert vendor-prefixed selectors.\n return false;\n }\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport canUseDOM from '../../../modules/canUseDom';\nimport createCSSStyleSheet from './createCSSStyleSheet';\nimport createOrderedCSSStyleSheet from './createOrderedCSSStyleSheet';\nvar defaultId = 'react-native-stylesheet';\nvar roots = new WeakMap();\nvar sheets = [];\nvar initialRules = [\n// minimal top-level reset\n'html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0);}', 'body{margin:0;}',\n// minimal form pseudo-element reset\n'button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;}', 'input::-webkit-search-cancel-button,input::-webkit-search-decoration,input::-webkit-search-results-button,input::-webkit-search-results-decoration{display:none;}'];\nexport function createSheet(root, id) {\n if (id === void 0) {\n id = defaultId;\n }\n var sheet;\n if (canUseDOM) {\n var rootNode = root != null ? root.getRootNode() : document;\n // Create the initial style sheet\n if (sheets.length === 0) {\n sheet = createOrderedCSSStyleSheet(createCSSStyleSheet(id));\n initialRules.forEach(rule => {\n sheet.insert(rule, 0);\n });\n roots.set(rootNode, sheets.length);\n sheets.push(sheet);\n } else {\n var index = roots.get(rootNode);\n if (index == null) {\n var initialSheet = sheets[0];\n // If we're creating a new sheet, populate it with existing styles\n var textContent = initialSheet != null ? initialSheet.getTextContent() : '';\n // Cast rootNode to 'any' because Flow types for getRootNode are wrong\n sheet = createOrderedCSSStyleSheet(createCSSStyleSheet(id, rootNode, textContent));\n roots.set(rootNode, sheets.length);\n sheets.push(sheet);\n } else {\n sheet = sheets[index];\n }\n }\n } else {\n // Create the initial style sheet\n if (sheets.length === 0) {\n sheet = createOrderedCSSStyleSheet(createCSSStyleSheet(id));\n initialRules.forEach(rule => {\n sheet.insert(rule, 0);\n });\n sheets.push(sheet);\n } else {\n sheet = sheets[0];\n }\n }\n return {\n getTextContent() {\n return sheet.getTextContent();\n },\n id,\n insert(cssText, groupValue) {\n sheets.forEach(s => {\n s.insert(cssText, groupValue);\n });\n }\n };\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport normalizeValueWithProperty from './normalizeValueWithProperty';\nimport canUseDOM from '../../../modules/canUseDom';\n/**\n * The browser implements the CSS cascade, where the order of properties is a\n * factor in determining which styles to paint. React Native is different. It\n * gives giving precedence to the more specific style property. For example,\n * the value of `paddingTop` takes precedence over that of `padding`.\n *\n * This module creates mutally exclusive style declarations by expanding all of\n * React Native's supported shortform properties (e.g. `padding`) to their\n * longfrom equivalents.\n */\n\nvar emptyObject = {};\nvar supportsCSS3TextDecoration = !canUseDOM || window.CSS != null && window.CSS.supports != null && (window.CSS.supports('text-decoration-line', 'none') || window.CSS.supports('-webkit-text-decoration-line', 'none'));\nvar MONOSPACE_FONT_STACK = 'monospace,monospace';\nvar SYSTEM_FONT_STACK = '-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif';\nvar STYLE_SHORT_FORM_EXPANSIONS = {\n borderColor: ['borderTopColor', 'borderRightColor', 'borderBottomColor', 'borderLeftColor'],\n borderBlockColor: ['borderTopColor', 'borderBottomColor'],\n borderInlineColor: ['borderRightColor', 'borderLeftColor'],\n borderRadius: ['borderTopLeftRadius', 'borderTopRightRadius', 'borderBottomRightRadius', 'borderBottomLeftRadius'],\n borderStyle: ['borderTopStyle', 'borderRightStyle', 'borderBottomStyle', 'borderLeftStyle'],\n borderBlockStyle: ['borderTopStyle', 'borderBottomStyle'],\n borderInlineStyle: ['borderRightStyle', 'borderLeftStyle'],\n borderWidth: ['borderTopWidth', 'borderRightWidth', 'borderBottomWidth', 'borderLeftWidth'],\n borderBlockWidth: ['borderTopWidth', 'borderBottomWidth'],\n borderInlineWidth: ['borderRightWidth', 'borderLeftWidth'],\n insetBlock: ['top', 'bottom'],\n insetInline: ['left', 'right'],\n marginBlock: ['marginTop', 'marginBottom'],\n marginInline: ['marginRight', 'marginLeft'],\n paddingBlock: ['paddingTop', 'paddingBottom'],\n paddingInline: ['paddingRight', 'paddingLeft'],\n overflow: ['overflowX', 'overflowY'],\n overscrollBehavior: ['overscrollBehaviorX', 'overscrollBehaviorY'],\n borderBlockStartColor: ['borderTopColor'],\n borderBlockStartStyle: ['borderTopStyle'],\n borderBlockStartWidth: ['borderTopWidth'],\n borderBlockEndColor: ['borderBottomColor'],\n borderBlockEndStyle: ['borderBottomStyle'],\n borderBlockEndWidth: ['borderBottomWidth'],\n //borderInlineStartColor: ['borderLeftColor'],\n //borderInlineStartStyle: ['borderLeftStyle'],\n //borderInlineStartWidth: ['borderLeftWidth'],\n //borderInlineEndColor: ['borderRightColor'],\n //borderInlineEndStyle: ['borderRightStyle'],\n //borderInlineEndWidth: ['borderRightWidth'],\n borderEndStartRadius: ['borderBottomLeftRadius'],\n borderEndEndRadius: ['borderBottomRightRadius'],\n borderStartStartRadius: ['borderTopLeftRadius'],\n borderStartEndRadius: ['borderTopRightRadius'],\n insetBlockEnd: ['bottom'],\n insetBlockStart: ['top'],\n //insetInlineEnd: ['right'],\n //insetInlineStart: ['left'],\n marginBlockStart: ['marginTop'],\n marginBlockEnd: ['marginBottom'],\n //marginInlineStart: ['marginLeft'],\n //marginInlineEnd: ['marginRight'],\n paddingBlockStart: ['paddingTop'],\n paddingBlockEnd: ['paddingBottom']\n //paddingInlineStart: ['marginLeft'],\n //paddingInlineEnd: ['marginRight'],\n};\n\n/**\n * Reducer\n */\n\nvar createReactDOMStyle = (style, isInline) => {\n if (!style) {\n return emptyObject;\n }\n var resolvedStyle = {};\n var _loop = function _loop() {\n var value = style[prop];\n if (\n // Ignore everything with a null value\n value == null) {\n return \"continue\";\n }\n if (prop === 'backgroundClip') {\n // TODO: remove once this issue is fixed\n // https://github.com/rofrischmann/inline-style-prefixer/issues/159\n if (value === 'text') {\n resolvedStyle.backgroundClip = value;\n resolvedStyle.WebkitBackgroundClip = value;\n }\n } else if (prop === 'flex') {\n if (value === -1) {\n resolvedStyle.flexGrow = 0;\n resolvedStyle.flexShrink = 1;\n resolvedStyle.flexBasis = 'auto';\n } else {\n resolvedStyle.flex = value;\n }\n } else if (prop === 'font') {\n resolvedStyle[prop] = value.replace('System', SYSTEM_FONT_STACK);\n } else if (prop === 'fontFamily') {\n if (value.indexOf('System') > -1) {\n var stack = value.split(/,\\s*/);\n stack[stack.indexOf('System')] = SYSTEM_FONT_STACK;\n resolvedStyle[prop] = stack.join(',');\n } else if (value === 'monospace') {\n resolvedStyle[prop] = MONOSPACE_FONT_STACK;\n } else {\n resolvedStyle[prop] = value;\n }\n } else if (prop === 'textDecorationLine') {\n // use 'text-decoration' for browsers that only support CSS2\n // text-decoration (e.g., IE, Edge)\n if (!supportsCSS3TextDecoration) {\n resolvedStyle.textDecoration = value;\n } else {\n resolvedStyle.textDecorationLine = value;\n }\n } else if (prop === 'writingDirection') {\n resolvedStyle.direction = value;\n } else {\n var _value = normalizeValueWithProperty(style[prop], prop);\n var longFormProperties = STYLE_SHORT_FORM_EXPANSIONS[prop];\n if (isInline && prop === 'inset') {\n if (style.insetInline == null) {\n resolvedStyle.left = _value;\n resolvedStyle.right = _value;\n }\n if (style.insetBlock == null) {\n resolvedStyle.top = _value;\n resolvedStyle.bottom = _value;\n }\n } else if (isInline && prop === 'margin') {\n if (style.marginInline == null) {\n resolvedStyle.marginLeft = _value;\n resolvedStyle.marginRight = _value;\n }\n if (style.marginBlock == null) {\n resolvedStyle.marginTop = _value;\n resolvedStyle.marginBottom = _value;\n }\n } else if (isInline && prop === 'padding') {\n if (style.paddingInline == null) {\n resolvedStyle.paddingLeft = _value;\n resolvedStyle.paddingRight = _value;\n }\n if (style.paddingBlock == null) {\n resolvedStyle.paddingTop = _value;\n resolvedStyle.paddingBottom = _value;\n }\n } else if (longFormProperties) {\n longFormProperties.forEach((longForm, i) => {\n // The value of any longform property in the original styles takes\n // precedence over the shortform's value.\n if (style[longForm] == null) {\n resolvedStyle[longForm] = _value;\n }\n });\n } else {\n resolvedStyle[prop] = _value;\n }\n }\n };\n for (var prop in style) {\n var _ret = _loop();\n if (_ret === \"continue\") continue;\n }\n return resolvedStyle;\n};\nexport default createReactDOMStyle;","/* eslint-disable */\n\n/**\n * JS Implementation of MurmurHash2\n *\n * @author Gary Court\n * @see http://github.com/garycourt/murmurhash-js\n * @author Austin Appleby\n * @see http://sites.google.com/site/murmurhash/\n *\n * @param {string} str ASCII only\n * @param {number} seed Positive integer only\n * @return {number} 32-bit positive integer hash\n *\n * \n */\n\nfunction murmurhash2_32_gc(str, seed) {\n var l = str.length,\n h = seed ^ l,\n i = 0,\n k;\n while (l >= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k = (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n k ^= k >>> 24;\n k = (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16) ^ k;\n l -= 4;\n ++i;\n }\n switch (l) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n }\n h ^= h >>> 13;\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n h ^= h >>> 15;\n return h >>> 0;\n}\nvar hash = str => murmurhash2_32_gc(str, 1).toString(36);\nexport default hash;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar uppercasePattern = /[A-Z]/g;\nvar msPattern = /^ms-/;\nvar cache = {};\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase();\n}\nfunction hyphenateStyleName(name) {\n if (name in cache) {\n return cache[name];\n }\n var hName = name.replace(uppercasePattern, toHyphenLower);\n return cache[name] = msPattern.test(hName) ? '-' + hName : hName;\n}\nexport default hyphenateStyleName;","import backgroundClip from 'inline-style-prefixer/lib/plugins/backgroundClip';\nimport crossFade from 'inline-style-prefixer/lib/plugins/crossFade';\nimport cursor from 'inline-style-prefixer/lib/plugins/cursor';\nimport filter from 'inline-style-prefixer/lib/plugins/filter';\nimport imageSet from 'inline-style-prefixer/lib/plugins/imageSet';\nimport logical from 'inline-style-prefixer/lib/plugins/logical';\nimport position from 'inline-style-prefixer/lib/plugins/position';\nimport sizing from 'inline-style-prefixer/lib/plugins/sizing';\nimport transition from 'inline-style-prefixer/lib/plugins/transition';\nvar w = ['Webkit'];\nvar m = ['Moz'];\nvar wm = ['Webkit', 'Moz'];\nvar wms = ['Webkit', 'ms'];\nvar wmms = ['Webkit', 'Moz', 'ms'];\nexport default {\n plugins: [backgroundClip, crossFade, cursor, filter, imageSet, logical, position, sizing, transition],\n prefixMap: {\n appearance: wmms,\n userSelect: wm,\n textEmphasisPosition: wms,\n textEmphasis: wms,\n textEmphasisStyle: wms,\n textEmphasisColor: wms,\n boxDecorationBreak: wms,\n clipPath: w,\n maskImage: wms,\n maskMode: wms,\n maskRepeat: wms,\n maskPosition: wms,\n maskClip: wms,\n maskOrigin: wms,\n maskSize: wms,\n maskComposite: wms,\n mask: wms,\n maskBorderSource: wms,\n maskBorderMode: wms,\n maskBorderSlice: wms,\n maskBorderWidth: wms,\n maskBorderOutset: wms,\n maskBorderRepeat: wms,\n maskBorder: wms,\n maskType: wms,\n textDecorationStyle: w,\n textDecorationSkip: w,\n textDecorationLine: w,\n textDecorationColor: w,\n filter: w,\n breakAfter: w,\n breakBefore: w,\n breakInside: w,\n columnCount: w,\n columnFill: w,\n columnGap: w,\n columnRule: w,\n columnRuleColor: w,\n columnRuleStyle: w,\n columnRuleWidth: w,\n columns: w,\n columnSpan: w,\n columnWidth: w,\n backdropFilter: w,\n hyphens: w,\n flowInto: w,\n flowFrom: w,\n regionFragment: w,\n textOrientation: w,\n tabSize: m,\n fontKerning: w,\n textSizeAdjust: w\n }\n};","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport createPrefixer from 'inline-style-prefixer/lib/createPrefixer';\nimport staticData from './static';\nvar prefixAll = createPrefixer(staticData);\nexport default prefixAll;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"animationKeyframes\"];\n/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport createReactDOMStyle from './createReactDOMStyle';\nimport hash from './hash';\nimport hyphenateStyleName from './hyphenateStyleName';\nimport normalizeValueWithProperty from './normalizeValueWithProperty';\nimport prefixStyles from '../../../modules/prefixStyles';\nvar cache = new Map();\nvar emptyObject = {};\nvar classicGroup = 1;\nvar atomicGroup = 3;\nvar customGroup = {\n borderColor: 2,\n borderRadius: 2,\n borderStyle: 2,\n borderWidth: 2,\n display: 2,\n flex: 2,\n inset: 2,\n margin: 2,\n overflow: 2,\n overscrollBehavior: 2,\n padding: 2,\n insetBlock: 2.1,\n insetInline: 2.1,\n marginInline: 2.1,\n marginBlock: 2.1,\n paddingInline: 2.1,\n paddingBlock: 2.1,\n borderBlockStartColor: 2.2,\n borderBlockStartStyle: 2.2,\n borderBlockStartWidth: 2.2,\n borderBlockEndColor: 2.2,\n borderBlockEndStyle: 2.2,\n borderBlockEndWidth: 2.2,\n borderInlineStartColor: 2.2,\n borderInlineStartStyle: 2.2,\n borderInlineStartWidth: 2.2,\n borderInlineEndColor: 2.2,\n borderInlineEndStyle: 2.2,\n borderInlineEndWidth: 2.2,\n borderEndStartRadius: 2.2,\n borderEndEndRadius: 2.2,\n borderStartStartRadius: 2.2,\n borderStartEndRadius: 2.2,\n insetBlockEnd: 2.2,\n insetBlockStart: 2.2,\n insetInlineEnd: 2.2,\n insetInlineStart: 2.2,\n marginBlockStart: 2.2,\n marginBlockEnd: 2.2,\n marginInlineStart: 2.2,\n marginInlineEnd: 2.2,\n paddingBlockStart: 2.2,\n paddingBlockEnd: 2.2,\n paddingInlineStart: 2.2,\n paddingInlineEnd: 2.2\n};\nvar borderTopLeftRadius = 'borderTopLeftRadius';\nvar borderTopRightRadius = 'borderTopRightRadius';\nvar borderBottomLeftRadius = 'borderBottomLeftRadius';\nvar borderBottomRightRadius = 'borderBottomRightRadius';\nvar borderLeftColor = 'borderLeftColor';\nvar borderLeftStyle = 'borderLeftStyle';\nvar borderLeftWidth = 'borderLeftWidth';\nvar borderRightColor = 'borderRightColor';\nvar borderRightStyle = 'borderRightStyle';\nvar borderRightWidth = 'borderRightWidth';\nvar right = 'right';\nvar marginLeft = 'marginLeft';\nvar marginRight = 'marginRight';\nvar paddingLeft = 'paddingLeft';\nvar paddingRight = 'paddingRight';\nvar left = 'left';\n\n// Map of LTR property names to their BiDi equivalent.\nvar PROPERTIES_FLIP = {\n [borderTopLeftRadius]: borderTopRightRadius,\n [borderTopRightRadius]: borderTopLeftRadius,\n [borderBottomLeftRadius]: borderBottomRightRadius,\n [borderBottomRightRadius]: borderBottomLeftRadius,\n [borderLeftColor]: borderRightColor,\n [borderLeftStyle]: borderRightStyle,\n [borderLeftWidth]: borderRightWidth,\n [borderRightColor]: borderLeftColor,\n [borderRightStyle]: borderLeftStyle,\n [borderRightWidth]: borderLeftWidth,\n [left]: right,\n [marginLeft]: marginRight,\n [marginRight]: marginLeft,\n [paddingLeft]: paddingRight,\n [paddingRight]: paddingLeft,\n [right]: left\n};\n\n// Map of I18N property names to their LTR equivalent.\nvar PROPERTIES_I18N = {\n borderStartStartRadius: borderTopLeftRadius,\n borderStartEndRadius: borderTopRightRadius,\n borderEndStartRadius: borderBottomLeftRadius,\n borderEndEndRadius: borderBottomRightRadius,\n borderInlineStartColor: borderLeftColor,\n borderInlineStartStyle: borderLeftStyle,\n borderInlineStartWidth: borderLeftWidth,\n borderInlineEndColor: borderRightColor,\n borderInlineEndStyle: borderRightStyle,\n borderInlineEndWidth: borderRightWidth,\n insetInlineEnd: right,\n insetInlineStart: left,\n marginInlineStart: marginLeft,\n marginInlineEnd: marginRight,\n paddingInlineStart: paddingLeft,\n paddingInlineEnd: paddingRight\n};\nvar PROPERTIES_VALUE = ['clear', 'float', 'textAlign'];\nexport function atomic(style) {\n var compiledStyle = {\n $$css: true\n };\n var compiledRules = [];\n function atomicCompile(srcProp, prop, value) {\n var valueString = stringifyValueWithProperty(value, prop);\n var cacheKey = prop + valueString;\n var cachedResult = cache.get(cacheKey);\n var identifier;\n if (cachedResult != null) {\n identifier = cachedResult[0];\n compiledRules.push(cachedResult[1]);\n } else {\n var v = srcProp !== prop ? cacheKey : valueString;\n identifier = createIdentifier('r', srcProp, v);\n var order = customGroup[srcProp] || atomicGroup;\n var rules = createAtomicRules(identifier, prop, value);\n var orderedRules = [rules, order];\n compiledRules.push(orderedRules);\n cache.set(cacheKey, [identifier, orderedRules]);\n }\n return identifier;\n }\n Object.keys(style).sort().forEach(srcProp => {\n var value = style[srcProp];\n if (value != null) {\n var localizeableValue;\n // BiDi flip values\n if (PROPERTIES_VALUE.indexOf(srcProp) > -1) {\n var _left = atomicCompile(srcProp, srcProp, 'left');\n var _right = atomicCompile(srcProp, srcProp, 'right');\n if (value === 'start') {\n localizeableValue = [_left, _right];\n } else if (value === 'end') {\n localizeableValue = [_right, _left];\n }\n }\n // BiDi flip properties\n var propPolyfill = PROPERTIES_I18N[srcProp];\n if (propPolyfill != null) {\n var ltr = atomicCompile(srcProp, propPolyfill, value);\n var rtl = atomicCompile(srcProp, PROPERTIES_FLIP[propPolyfill], value);\n localizeableValue = [ltr, rtl];\n }\n // BiDi flip transitionProperty value\n if (srcProp === 'transitionProperty') {\n var values = Array.isArray(value) ? value : [value];\n var polyfillIndices = [];\n for (var i = 0; i < values.length; i++) {\n var val = values[i];\n if (typeof val === 'string' && PROPERTIES_I18N[val] != null) {\n polyfillIndices.push(i);\n }\n }\n if (polyfillIndices.length > 0) {\n var ltrPolyfillValues = [...values];\n var rtlPolyfillValues = [...values];\n polyfillIndices.forEach(i => {\n var ltrVal = ltrPolyfillValues[i];\n if (typeof ltrVal === 'string') {\n var ltrPolyfill = PROPERTIES_I18N[ltrVal];\n var rtlPolyfill = PROPERTIES_FLIP[ltrPolyfill];\n ltrPolyfillValues[i] = ltrPolyfill;\n rtlPolyfillValues[i] = rtlPolyfill;\n var _ltr = atomicCompile(srcProp, srcProp, ltrPolyfillValues);\n var _rtl = atomicCompile(srcProp, srcProp, rtlPolyfillValues);\n localizeableValue = [_ltr, _rtl];\n }\n });\n }\n }\n if (localizeableValue == null) {\n localizeableValue = atomicCompile(srcProp, srcProp, value);\n } else {\n compiledStyle['$$css$localize'] = true;\n }\n compiledStyle[srcProp] = localizeableValue;\n }\n });\n return [compiledStyle, compiledRules];\n}\n\n/**\n * Compile simple style object to classic CSS rules.\n * No support for 'placeholderTextColor', 'scrollbarWidth', or 'pointerEvents'.\n */\nexport function classic(style, name) {\n var compiledStyle = {\n $$css: true\n };\n var compiledRules = [];\n var animationKeyframes = style.animationKeyframes,\n rest = _objectWithoutPropertiesLoose(style, _excluded);\n var identifier = createIdentifier('css', name, JSON.stringify(style));\n var selector = \".\" + identifier;\n var animationName;\n if (animationKeyframes != null) {\n var _processKeyframesValu = processKeyframesValue(animationKeyframes),\n animationNames = _processKeyframesValu[0],\n keyframesRules = _processKeyframesValu[1];\n animationName = animationNames.join(',');\n compiledRules.push(...keyframesRules);\n }\n var block = createDeclarationBlock(_objectSpread(_objectSpread({}, rest), {}, {\n animationName\n }));\n compiledRules.push(\"\" + selector + block);\n compiledStyle[identifier] = identifier;\n return [compiledStyle, [[compiledRules, classicGroup]]];\n}\n\n/**\n * Compile simple style object to inline DOM styles.\n * No support for 'animationKeyframes', 'placeholderTextColor', 'scrollbarWidth', or 'pointerEvents'.\n */\nexport function inline(originalStyle, isRTL) {\n var style = originalStyle || emptyObject;\n var frozenProps = {};\n var nextStyle = {};\n var _loop = function _loop() {\n var originalValue = style[originalProp];\n var prop = originalProp;\n var value = originalValue;\n if (!Object.prototype.hasOwnProperty.call(style, originalProp) || originalValue == null) {\n return \"continue\";\n }\n\n // BiDi flip values\n if (PROPERTIES_VALUE.indexOf(originalProp) > -1) {\n if (originalValue === 'start') {\n value = isRTL ? 'right' : 'left';\n } else if (originalValue === 'end') {\n value = isRTL ? 'left' : 'right';\n }\n }\n // BiDi flip properties\n var propPolyfill = PROPERTIES_I18N[originalProp];\n if (propPolyfill != null) {\n prop = isRTL ? PROPERTIES_FLIP[propPolyfill] : propPolyfill;\n }\n // BiDi flip transitionProperty value\n if (originalProp === 'transitionProperty') {\n // $FlowFixMe\n var originalValues = Array.isArray(originalValue) ? originalValue : [originalValue];\n originalValues.forEach((val, i) => {\n if (typeof val === 'string') {\n var valuePolyfill = PROPERTIES_I18N[val];\n if (valuePolyfill != null) {\n originalValues[i] = isRTL ? PROPERTIES_FLIP[valuePolyfill] : valuePolyfill;\n value = originalValues.join(' ');\n }\n }\n });\n }\n\n // Create finalized style\n if (!frozenProps[prop]) {\n nextStyle[prop] = value;\n }\n if (prop === originalProp) {\n frozenProps[prop] = true;\n }\n\n // if (PROPERTIES_I18N.hasOwnProperty(originalProp)) {\n // frozenProps[prop] = true;\n //}\n };\n for (var originalProp in style) {\n var _ret = _loop();\n if (_ret === \"continue\") continue;\n }\n return createReactDOMStyle(nextStyle, true);\n}\n\n/**\n * Create a value string that normalizes different input values with a common\n * output.\n */\nexport function stringifyValueWithProperty(value, property) {\n // e.g., 0 => '0px', 'black' => 'rgba(0,0,0,1)'\n var normalizedValue = normalizeValueWithProperty(value, property);\n return typeof normalizedValue !== 'string' ? JSON.stringify(normalizedValue || '') : normalizedValue;\n}\n\n/**\n * Create the Atomic CSS rules needed for a given StyleSheet rule.\n * Translates StyleSheet declarations to CSS.\n */\nfunction createAtomicRules(identifier, property, value) {\n var rules = [];\n var selector = \".\" + identifier;\n\n // Handle non-standard properties and object values that require multiple\n // CSS rules to be created.\n switch (property) {\n case 'animationKeyframes':\n {\n var _processKeyframesValu2 = processKeyframesValue(value),\n animationNames = _processKeyframesValu2[0],\n keyframesRules = _processKeyframesValu2[1];\n var block = createDeclarationBlock({\n animationName: animationNames.join(',')\n });\n rules.push(\"\" + selector + block, ...keyframesRules);\n break;\n }\n\n // Equivalent to using '::placeholder'\n case 'placeholderTextColor':\n {\n var _block = createDeclarationBlock({\n color: value,\n opacity: 1\n });\n rules.push(selector + \"::-webkit-input-placeholder\" + _block, selector + \"::-moz-placeholder\" + _block, selector + \":-ms-input-placeholder\" + _block, selector + \"::placeholder\" + _block);\n break;\n }\n\n // Polyfill for additional 'pointer-events' values\n // See d13f78622b233a0afc0c7a200c0a0792c8ca9e58\n case 'pointerEvents':\n {\n var finalValue = value;\n if (value === 'auto' || value === 'box-only') {\n finalValue = 'auto!important';\n if (value === 'box-only') {\n var _block2 = createDeclarationBlock({\n pointerEvents: 'none'\n });\n rules.push(selector + \">*\" + _block2);\n }\n } else if (value === 'none' || value === 'box-none') {\n finalValue = 'none!important';\n if (value === 'box-none') {\n var _block3 = createDeclarationBlock({\n pointerEvents: 'auto'\n });\n rules.push(selector + \">*\" + _block3);\n }\n }\n var _block4 = createDeclarationBlock({\n pointerEvents: finalValue\n });\n rules.push(\"\" + selector + _block4);\n break;\n }\n\n // Polyfill for draft spec\n // https://drafts.csswg.org/css-scrollbars-1/\n case 'scrollbarWidth':\n {\n if (value === 'none') {\n rules.push(selector + \"::-webkit-scrollbar{display:none}\");\n }\n var _block5 = createDeclarationBlock({\n scrollbarWidth: value\n });\n rules.push(\"\" + selector + _block5);\n break;\n }\n default:\n {\n var _block6 = createDeclarationBlock({\n [property]: value\n });\n rules.push(\"\" + selector + _block6);\n break;\n }\n }\n return rules;\n}\n\n/**\n * Creates a CSS declaration block from a StyleSheet object.\n */\nfunction createDeclarationBlock(style) {\n var domStyle = prefixStyles(createReactDOMStyle(style));\n var declarationsString = Object.keys(domStyle).map(property => {\n var value = domStyle[property];\n var prop = hyphenateStyleName(property);\n // The prefixer may return an array of values:\n // { display: [ '-webkit-flex', 'flex' ] }\n // to represent \"fallback\" declarations\n // { display: -webkit-flex; display: flex; }\n if (Array.isArray(value)) {\n return value.map(v => prop + \":\" + v).join(';');\n } else {\n return prop + \":\" + value;\n }\n })\n // Once properties are hyphenated, this will put the vendor\n // prefixed and short-form properties first in the list.\n .sort().join(';');\n return \"{\" + declarationsString + \";}\";\n}\n\n/**\n * An identifier is associated with a unique set of styles.\n */\nfunction createIdentifier(prefix, name, key) {\n var hashedString = hash(name + key);\n return process.env.NODE_ENV !== 'production' ? prefix + \"-\" + name + \"-\" + hashedString : prefix + \"-\" + hashedString;\n}\n\n/**\n * Create individual CSS keyframes rules.\n */\nfunction createKeyframes(keyframes) {\n var prefixes = ['-webkit-', ''];\n var identifier = createIdentifier('r', 'animation', JSON.stringify(keyframes));\n var steps = '{' + Object.keys(keyframes).map(stepName => {\n var rule = keyframes[stepName];\n var block = createDeclarationBlock(rule);\n return \"\" + stepName + block;\n }).join('') + '}';\n var rules = prefixes.map(prefix => {\n return \"@\" + prefix + \"keyframes \" + identifier + steps;\n });\n return [identifier, rules];\n}\n\n/**\n * Create CSS keyframes rules and names from a StyleSheet keyframes object.\n */\nfunction processKeyframesValue(keyframesValue) {\n if (typeof keyframesValue === 'number') {\n throw new Error(\"Invalid CSS keyframes type: \" + typeof keyframesValue);\n }\n var animationNames = [];\n var rules = [];\n var value = Array.isArray(keyframesValue) ? keyframesValue : [keyframesValue];\n value.forEach(keyframes => {\n if (typeof keyframes === 'string') {\n // Support external animation libraries (identifiers only)\n animationNames.push(keyframes);\n } else {\n // Create rules for each of the keyframes\n var _createKeyframes = createKeyframes(keyframes),\n identifier = _createKeyframes[0],\n keyframesRules = _createKeyframes[1];\n animationNames.push(identifier);\n rules.push(...keyframesRules);\n }\n });\n return [animationNames, rules];\n}","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"writingDirection\"];\n/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport { atomic, classic, inline } from './compiler';\nimport { createSheet } from './dom';\nimport { localizeStyle } from 'styleq/transform-localize-style';\nimport { preprocess } from './preprocess';\nimport { styleq } from 'styleq';\nimport { validate } from './validate';\nimport canUseDOM from '../../modules/canUseDom';\nvar staticStyleMap = new WeakMap();\nvar sheet = createSheet();\nvar defaultPreprocessOptions = {\n shadow: true,\n textShadow: true\n};\nfunction customStyleq(styles, options) {\n if (options === void 0) {\n options = {};\n }\n var _options = options,\n writingDirection = _options.writingDirection,\n preprocessOptions = _objectWithoutPropertiesLoose(_options, _excluded);\n var isRTL = writingDirection === 'rtl';\n return styleq.factory({\n transform(style) {\n var compiledStyle = staticStyleMap.get(style);\n if (compiledStyle != null) {\n return localizeStyle(compiledStyle, isRTL);\n }\n return preprocess(style, _objectSpread(_objectSpread({}, defaultPreprocessOptions), preprocessOptions));\n }\n })(styles);\n}\nfunction insertRules(compiledOrderedRules) {\n compiledOrderedRules.forEach(_ref => {\n var rules = _ref[0],\n order = _ref[1];\n if (sheet != null) {\n rules.forEach(rule => {\n sheet.insert(rule, order);\n });\n }\n });\n}\nfunction compileAndInsertAtomic(style) {\n var _atomic = atomic(preprocess(style, defaultPreprocessOptions)),\n compiledStyle = _atomic[0],\n compiledOrderedRules = _atomic[1];\n insertRules(compiledOrderedRules);\n return compiledStyle;\n}\nfunction compileAndInsertReset(style, key) {\n var _classic = classic(style, key),\n compiledStyle = _classic[0],\n compiledOrderedRules = _classic[1];\n insertRules(compiledOrderedRules);\n return compiledStyle;\n}\n\n/* ----- API ----- */\n\nvar absoluteFillObject = {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n};\nvar absoluteFill = create({\n x: _objectSpread({}, absoluteFillObject)\n}).x;\n\n/**\n * create\n */\nfunction create(styles) {\n Object.keys(styles).forEach(key => {\n var styleObj = styles[key];\n // Only compile at runtime if the style is not already compiled\n if (styleObj != null && styleObj.$$css !== true) {\n var compiledStyles;\n if (key.indexOf('$raw') > -1) {\n compiledStyles = compileAndInsertReset(styleObj, key.split('$raw')[0]);\n } else {\n if (process.env.NODE_ENV !== 'production') {\n validate(styleObj);\n styles[key] = Object.freeze(styleObj);\n }\n compiledStyles = compileAndInsertAtomic(styleObj);\n }\n staticStyleMap.set(styleObj, compiledStyles);\n }\n });\n return styles;\n}\n\n/**\n * compose\n */\nfunction compose(style1, style2) {\n if (process.env.NODE_ENV !== 'production') {\n /* eslint-disable prefer-rest-params */\n var len = arguments.length;\n if (len > 2) {\n var readableStyles = [...arguments].map(a => flatten(a));\n throw new Error(\"StyleSheet.compose() only accepts 2 arguments, received \" + len + \": \" + JSON.stringify(readableStyles));\n }\n /* eslint-enable prefer-rest-params */\n console.warn('StyleSheet.compose(a, b) is deprecated; use array syntax, i.e., [a,b].');\n }\n return [style1, style2];\n}\n\n/**\n * flatten\n */\nfunction flatten() {\n for (var _len = arguments.length, styles = new Array(_len), _key = 0; _key < _len; _key++) {\n styles[_key] = arguments[_key];\n }\n var flatArray = styles.flat(Infinity);\n var result = {};\n for (var i = 0; i < flatArray.length; i++) {\n var style = flatArray[i];\n if (style != null && typeof style === 'object') {\n // $FlowFixMe\n Object.assign(result, style);\n }\n }\n return result;\n}\n\n/**\n * getSheet\n */\nfunction getSheet() {\n return {\n id: sheet.id,\n textContent: sheet.getTextContent()\n };\n}\n\n/**\n * resolve\n */\n\nfunction StyleSheet(styles, options) {\n if (options === void 0) {\n options = {};\n }\n var isRTL = options.writingDirection === 'rtl';\n var styleProps = customStyleq(styles, options);\n if (Array.isArray(styleProps) && styleProps[1] != null) {\n styleProps[1] = inline(styleProps[1], isRTL);\n }\n return styleProps;\n}\nStyleSheet.absoluteFill = absoluteFill;\nStyleSheet.absoluteFillObject = absoluteFillObject;\nStyleSheet.create = create;\nStyleSheet.compose = compose;\nStyleSheet.flatten = flatten;\nStyleSheet.getSheet = getSheet;\n// `hairlineWidth` is not implemented using screen density as browsers may\n// round sub-pixel values down to `0`, causing the line not to be rendered.\nStyleSheet.hairlineWidth = 1;\nif (canUseDOM && window.__REACT_DEVTOOLS_GLOBAL_HOOK__) {\n window.__REACT_DEVTOOLS_GLOBAL_HOOK__.resolveRNStyle = StyleSheet.flatten;\n}\nvar stylesheet = StyleSheet;\nexport default stylesheet;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport normalizeColor from './compiler/normalizeColor';\nimport normalizeValueWithProperty from './compiler/normalizeValueWithProperty';\nimport { warnOnce } from '../../modules/warnOnce';\nvar emptyObject = {};\n\n/**\n * Shadows\n */\n\nvar defaultOffset = {\n height: 0,\n width: 0\n};\nexport var createBoxShadowValue = style => {\n var shadowColor = style.shadowColor,\n shadowOffset = style.shadowOffset,\n shadowOpacity = style.shadowOpacity,\n shadowRadius = style.shadowRadius;\n var _ref = shadowOffset || defaultOffset,\n height = _ref.height,\n width = _ref.width;\n var offsetX = normalizeValueWithProperty(width);\n var offsetY = normalizeValueWithProperty(height);\n var blurRadius = normalizeValueWithProperty(shadowRadius || 0);\n var color = normalizeColor(shadowColor || 'black', shadowOpacity);\n if (color != null && offsetX != null && offsetY != null && blurRadius != null) {\n return offsetX + \" \" + offsetY + \" \" + blurRadius + \" \" + color;\n }\n};\nexport var createTextShadowValue = style => {\n var textShadowColor = style.textShadowColor,\n textShadowOffset = style.textShadowOffset,\n textShadowRadius = style.textShadowRadius;\n var _ref2 = textShadowOffset || defaultOffset,\n height = _ref2.height,\n width = _ref2.width;\n var radius = textShadowRadius || 0;\n var offsetX = normalizeValueWithProperty(width);\n var offsetY = normalizeValueWithProperty(height);\n var blurRadius = normalizeValueWithProperty(radius);\n var color = normalizeValueWithProperty(textShadowColor, 'textShadowColor');\n if (color && (height !== 0 || width !== 0 || radius !== 0) && offsetX != null && offsetY != null && blurRadius != null) {\n return offsetX + \" \" + offsetY + \" \" + blurRadius + \" \" + color;\n }\n};\n\n// { scale: 2 } => 'scale(2)'\n// { translateX: 20 } => 'translateX(20px)'\n// { matrix: [1,2,3,4,5,6] } => 'matrix(1,2,3,4,5,6)'\nvar mapTransform = transform => {\n var type = Object.keys(transform)[0];\n var value = transform[type];\n if (type === 'matrix' || type === 'matrix3d') {\n return type + \"(\" + value.join(',') + \")\";\n } else {\n var normalizedValue = normalizeValueWithProperty(value, type);\n return type + \"(\" + normalizedValue + \")\";\n }\n};\nexport var createTransformValue = value => {\n return value.map(mapTransform).join(' ');\n};\nvar PROPERTIES_STANDARD = {\n borderBottomEndRadius: 'borderEndEndRadius',\n borderBottomStartRadius: 'borderEndStartRadius',\n borderTopEndRadius: 'borderStartEndRadius',\n borderTopStartRadius: 'borderStartStartRadius',\n borderEndColor: 'borderInlineEndColor',\n borderEndStyle: 'borderInlineEndStyle',\n borderEndWidth: 'borderInlineEndWidth',\n borderStartColor: 'borderInlineStartColor',\n borderStartStyle: 'borderInlineStartStyle',\n borderStartWidth: 'borderInlineStartWidth',\n end: 'insetInlineEnd',\n marginEnd: 'marginInlineEnd',\n marginHorizontal: 'marginInline',\n marginStart: 'marginInlineStart',\n marginVertical: 'marginBlock',\n paddingEnd: 'paddingInlineEnd',\n paddingHorizontal: 'paddingInline',\n paddingStart: 'paddingInlineStart',\n paddingVertical: 'paddingBlock',\n start: 'insetInlineStart'\n};\nvar ignoredProps = {\n elevation: true,\n overlayColor: true,\n resizeMode: true,\n tintColor: true\n};\n\n/**\n * Preprocess styles\n */\nexport var preprocess = function preprocess(originalStyle, options) {\n if (options === void 0) {\n options = {};\n }\n var style = originalStyle || emptyObject;\n var nextStyle = {};\n\n // Convert shadow styles\n if (options.shadow === true, style.shadowColor != null || style.shadowOffset != null || style.shadowOpacity != null || style.shadowRadius != null) {\n warnOnce('shadowStyles', \"\\\"shadow*\\\" style props are deprecated. Use \\\"boxShadow\\\".\");\n var boxShadowValue = createBoxShadowValue(style);\n if (boxShadowValue != null && nextStyle.boxShadow == null) {\n var boxShadow = style.boxShadow;\n var value = boxShadow ? boxShadow + \", \" + boxShadowValue : boxShadowValue;\n nextStyle.boxShadow = value;\n }\n }\n\n // Convert text shadow styles\n if (options.textShadow === true, style.textShadowColor != null || style.textShadowOffset != null || style.textShadowRadius != null) {\n warnOnce('textShadowStyles', \"\\\"textShadow*\\\" style props are deprecated. Use \\\"textShadow\\\".\");\n var textShadowValue = createTextShadowValue(style);\n if (textShadowValue != null && nextStyle.textShadow == null) {\n var textShadow = style.textShadow;\n var _value = textShadow ? textShadow + \", \" + textShadowValue : textShadowValue;\n nextStyle.textShadow = _value;\n }\n }\n for (var originalProp in style) {\n if (\n // Ignore some React Native styles\n ignoredProps[originalProp] != null || originalProp === 'shadowColor' || originalProp === 'shadowOffset' || originalProp === 'shadowOpacity' || originalProp === 'shadowRadius' || originalProp === 'textShadowColor' || originalProp === 'textShadowOffset' || originalProp === 'textShadowRadius') {\n continue;\n }\n var originalValue = style[originalProp];\n var prop = PROPERTIES_STANDARD[originalProp] || originalProp;\n var _value2 = originalValue;\n if (!Object.prototype.hasOwnProperty.call(style, originalProp) || prop !== originalProp && style[prop] != null) {\n continue;\n }\n if (prop === 'aspectRatio' && typeof _value2 === 'number') {\n nextStyle[prop] = _value2.toString();\n } else if (prop === 'fontVariant') {\n if (Array.isArray(_value2) && _value2.length > 0) {\n warnOnce('fontVariant', '\"fontVariant\" style array value is deprecated. Use space-separated values.');\n _value2 = _value2.join(' ');\n }\n nextStyle[prop] = _value2;\n } else if (prop === 'textAlignVertical') {\n warnOnce('textAlignVertical', '\"textAlignVertical\" style is deprecated. Use \"verticalAlign\".');\n if (style.verticalAlign == null) {\n nextStyle.verticalAlign = _value2 === 'center' ? 'middle' : _value2;\n }\n } else if (prop === 'transform') {\n if (Array.isArray(_value2)) {\n _value2 = createTransformValue(_value2);\n }\n nextStyle.transform = _value2;\n } else {\n nextStyle[prop] = _value2;\n }\n }\n\n // $FlowIgnore\n return nextStyle;\n};\nexport default preprocess;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar CSS_UNIT_RE = /^[+-]?\\d*(?:\\.\\d+)?(?:[Ee][+-]?\\d+)?(%|\\w*)/;\nvar getUnit = str => str.match(CSS_UNIT_RE)[1];\nvar isNumeric = n => {\n return !isNaN(parseFloat(n)) && isFinite(n);\n};\nvar multiplyStyleLengthValue = (value, multiple) => {\n if (typeof value === 'string') {\n var number = parseFloat(value) * multiple;\n var unit = getUnit(value);\n return \"\" + number + unit;\n } else if (isNumeric(value)) {\n return value * multiple;\n }\n};\nexport default multiplyStyleLengthValue;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"aria-label\", \"accessibilityLabel\", \"activeThumbColor\", \"activeTrackColor\", \"disabled\", \"onValueChange\", \"style\", \"thumbColor\", \"trackColor\", \"value\"];\n/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport multiplyStyleLengthValue from '../../modules/multiplyStyleLengthValue';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar emptyObject = {};\nvar thumbDefaultBoxShadow = '0px 1px 3px rgba(0,0,0,0.5)';\nvar thumbFocusedBoxShadow = thumbDefaultBoxShadow + \", 0 0 0 10px rgba(0,0,0,0.1)\";\nvar defaultActiveTrackColor = '#A3D3CF';\nvar defaultTrackColor = '#939393';\nvar defaultDisabledTrackColor = '#D5D5D5';\nvar defaultActiveThumbColor = '#009688';\nvar defaultThumbColor = '#FAFAFA';\nvar defaultDisabledThumbColor = '#BDBDBD';\nvar Switch = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var ariaLabel = props['aria-label'],\n accessibilityLabel = props.accessibilityLabel,\n activeThumbColor = props.activeThumbColor,\n activeTrackColor = props.activeTrackColor,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled,\n onValueChange = props.onValueChange,\n _props$style = props.style,\n style = _props$style === void 0 ? emptyObject : _props$style,\n thumbColor = props.thumbColor,\n trackColor = props.trackColor,\n _props$value = props.value,\n value = _props$value === void 0 ? false : _props$value,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n var thumbRef = React.useRef(null);\n function handleChange(event) {\n if (onValueChange != null) {\n onValueChange(event.nativeEvent.target.checked);\n }\n }\n function handleFocusState(event) {\n var isFocused = event.nativeEvent.type === 'focus';\n var boxShadow = isFocused ? thumbFocusedBoxShadow : thumbDefaultBoxShadow;\n if (thumbRef.current != null) {\n thumbRef.current.style.boxShadow = boxShadow;\n }\n }\n var _StyleSheet$flatten = StyleSheet.flatten(style),\n styleHeight = _StyleSheet$flatten.height,\n styleWidth = _StyleSheet$flatten.width;\n var height = styleHeight || '20px';\n var minWidth = multiplyStyleLengthValue(height, 2);\n var width = styleWidth > minWidth ? styleWidth : minWidth;\n var trackBorderRadius = multiplyStyleLengthValue(height, 0.5);\n var trackCurrentColor = function () {\n if (value === true) {\n if (trackColor != null && typeof trackColor === 'object') {\n return trackColor.true;\n } else {\n return activeTrackColor !== null && activeTrackColor !== void 0 ? activeTrackColor : defaultActiveTrackColor;\n }\n } else {\n if (trackColor != null && typeof trackColor === 'object') {\n return trackColor.false;\n } else {\n return trackColor !== null && trackColor !== void 0 ? trackColor : defaultTrackColor;\n }\n }\n }();\n var thumbCurrentColor = value ? activeThumbColor !== null && activeThumbColor !== void 0 ? activeThumbColor : defaultActiveThumbColor : thumbColor !== null && thumbColor !== void 0 ? thumbColor : defaultThumbColor;\n var thumbHeight = height;\n var thumbWidth = thumbHeight;\n var rootStyle = [styles.root, style, disabled && styles.cursorDefault, {\n height,\n width\n }];\n var disabledTrackColor = function () {\n if (value === true) {\n if (typeof activeTrackColor === 'string' && activeTrackColor != null || typeof trackColor === 'object' && trackColor != null && trackColor.true) {\n return trackCurrentColor;\n } else {\n return defaultDisabledTrackColor;\n }\n } else {\n if (typeof trackColor === 'string' && trackColor != null || typeof trackColor === 'object' && trackColor != null && trackColor.false) {\n return trackCurrentColor;\n } else {\n return defaultDisabledTrackColor;\n }\n }\n }();\n var disabledThumbColor = function () {\n if (value === true) {\n if (activeThumbColor == null) {\n return defaultDisabledThumbColor;\n } else {\n return thumbCurrentColor;\n }\n } else {\n if (thumbColor == null) {\n return defaultDisabledThumbColor;\n } else {\n return thumbCurrentColor;\n }\n }\n }();\n var trackStyle = [styles.track, {\n backgroundColor: disabled ? disabledTrackColor : trackCurrentColor,\n borderRadius: trackBorderRadius\n }];\n var thumbStyle = [styles.thumb, value && styles.thumbActive, {\n backgroundColor: disabled ? disabledThumbColor : thumbCurrentColor,\n height: thumbHeight,\n marginStart: value ? multiplyStyleLengthValue(thumbWidth, -1) : 0,\n width: thumbWidth\n }];\n var nativeControl = createElement('input', {\n 'aria-label': ariaLabel || accessibilityLabel,\n checked: value,\n disabled: disabled,\n onBlur: handleFocusState,\n onChange: handleChange,\n onFocus: handleFocusState,\n ref: forwardedRef,\n style: [styles.nativeControl, styles.cursorInherit],\n type: 'checkbox',\n role: 'switch'\n });\n return /*#__PURE__*/React.createElement(View, _extends({}, other, {\n style: rootStyle\n }), /*#__PURE__*/React.createElement(View, {\n style: trackStyle\n }), /*#__PURE__*/React.createElement(View, {\n ref: thumbRef,\n style: thumbStyle\n }), nativeControl);\n});\nSwitch.displayName = 'Switch';\nvar styles = StyleSheet.create({\n root: {\n cursor: 'pointer',\n userSelect: 'none'\n },\n cursorDefault: {\n cursor: 'default'\n },\n cursorInherit: {\n cursor: 'inherit'\n },\n track: _objectSpread(_objectSpread({\n forcedColorAdjust: 'none'\n }, StyleSheet.absoluteFillObject), {}, {\n height: '70%',\n margin: 'auto',\n transitionDuration: '0.1s',\n width: '100%'\n }),\n thumb: {\n forcedColorAdjust: 'none',\n alignSelf: 'flex-start',\n borderRadius: '100%',\n boxShadow: thumbDefaultBoxShadow,\n start: '0%',\n transform: 'translateZ(0)',\n transitionDuration: '0.1s'\n },\n thumbActive: {\n insetInlineStart: '100%'\n },\n nativeControl: _objectSpread(_objectSpread({}, StyleSheet.absoluteFillObject), {}, {\n height: '100%',\n margin: 0,\n appearance: 'none',\n padding: 0,\n width: '100%'\n })\n});\nexport default Switch;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport { createContext } from 'react';\nvar TextAncestorContext = /*#__PURE__*/createContext(false);\nexport default TextAncestorContext;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"hrefAttrs\", \"numberOfLines\", \"onClick\", \"onLayout\", \"onPress\", \"onMoveShouldSetResponder\", \"onMoveShouldSetResponderCapture\", \"onResponderEnd\", \"onResponderGrant\", \"onResponderMove\", \"onResponderReject\", \"onResponderRelease\", \"onResponderStart\", \"onResponderTerminate\", \"onResponderTerminationRequest\", \"onScrollShouldSetResponder\", \"onScrollShouldSetResponderCapture\", \"onSelectionChangeShouldSetResponder\", \"onSelectionChangeShouldSetResponderCapture\", \"onStartShouldSetResponder\", \"onStartShouldSetResponderCapture\", \"selectable\"];\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport * as forwardedProps from '../../modules/forwardedProps';\nimport pick from '../../modules/pick';\nimport useElementLayout from '../../modules/useElementLayout';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePlatformMethods from '../../modules/usePlatformMethods';\nimport useResponderEvents from '../../modules/useResponderEvents';\nimport StyleSheet from '../StyleSheet';\nimport TextAncestorContext from './TextAncestorContext';\nimport { useLocaleContext, getLocaleDirection } from '../../modules/useLocale';\nimport { warnOnce } from '../../modules/warnOnce';\nvar forwardPropsList = Object.assign({}, forwardedProps.defaultProps, forwardedProps.accessibilityProps, forwardedProps.clickProps, forwardedProps.focusProps, forwardedProps.keyboardProps, forwardedProps.mouseProps, forwardedProps.touchProps, forwardedProps.styleProps, {\n href: true,\n lang: true,\n pointerEvents: true\n});\nvar pickProps = props => pick(props, forwardPropsList);\nvar Text = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var hrefAttrs = props.hrefAttrs,\n numberOfLines = props.numberOfLines,\n onClick = props.onClick,\n onLayout = props.onLayout,\n onPress = props.onPress,\n onMoveShouldSetResponder = props.onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture = props.onMoveShouldSetResponderCapture,\n onResponderEnd = props.onResponderEnd,\n onResponderGrant = props.onResponderGrant,\n onResponderMove = props.onResponderMove,\n onResponderReject = props.onResponderReject,\n onResponderRelease = props.onResponderRelease,\n onResponderStart = props.onResponderStart,\n onResponderTerminate = props.onResponderTerminate,\n onResponderTerminationRequest = props.onResponderTerminationRequest,\n onScrollShouldSetResponder = props.onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture = props.onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder = props.onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture = props.onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder = props.onStartShouldSetResponder,\n onStartShouldSetResponderCapture = props.onStartShouldSetResponderCapture,\n selectable = props.selectable,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n if (selectable != null) {\n warnOnce('selectable', 'selectable prop is deprecated. Use styles.userSelect.');\n }\n var hasTextAncestor = React.useContext(TextAncestorContext);\n var hostRef = React.useRef(null);\n var _useLocaleContext = useLocaleContext(),\n contextDirection = _useLocaleContext.direction;\n useElementLayout(hostRef, onLayout);\n useResponderEvents(hostRef, {\n onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture,\n onResponderEnd,\n onResponderGrant,\n onResponderMove,\n onResponderReject,\n onResponderRelease,\n onResponderStart,\n onResponderTerminate,\n onResponderTerminationRequest,\n onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder,\n onStartShouldSetResponderCapture\n });\n var handleClick = React.useCallback(e => {\n if (onClick != null) {\n onClick(e);\n } else if (onPress != null) {\n e.stopPropagation();\n onPress(e);\n }\n }, [onClick, onPress]);\n var component = hasTextAncestor ? 'span' : 'div';\n var langDirection = props.lang != null ? getLocaleDirection(props.lang) : null;\n var componentDirection = props.dir || langDirection;\n var writingDirection = componentDirection || contextDirection;\n var supportedProps = pickProps(rest);\n supportedProps.dir = componentDirection;\n // 'auto' by default allows browsers to infer writing direction (root elements only)\n if (!hasTextAncestor) {\n supportedProps.dir = componentDirection != null ? componentDirection : 'auto';\n }\n if (onClick || onPress) {\n supportedProps.onClick = handleClick;\n }\n supportedProps.style = [numberOfLines != null && numberOfLines > 1 && {\n WebkitLineClamp: numberOfLines\n }, hasTextAncestor === true ? styles.textHasAncestor$raw : styles.text$raw, numberOfLines === 1 && styles.textOneLine, numberOfLines != null && numberOfLines > 1 && styles.textMultiLine, props.style, selectable === true && styles.selectable, selectable === false && styles.notSelectable, onPress && styles.pressable];\n if (props.href != null) {\n component = 'a';\n if (hrefAttrs != null) {\n var download = hrefAttrs.download,\n rel = hrefAttrs.rel,\n target = hrefAttrs.target;\n if (download != null) {\n supportedProps.download = download;\n }\n if (rel != null) {\n supportedProps.rel = rel;\n }\n if (typeof target === 'string') {\n supportedProps.target = target.charAt(0) !== '_' ? '_' + target : target;\n }\n }\n }\n var platformMethodsRef = usePlatformMethods(supportedProps);\n var setRef = useMergeRefs(hostRef, platformMethodsRef, forwardedRef);\n supportedProps.ref = setRef;\n var element = createElement(component, supportedProps, {\n writingDirection\n });\n return hasTextAncestor ? element : /*#__PURE__*/React.createElement(TextAncestorContext.Provider, {\n value: true\n }, element);\n});\nText.displayName = 'Text';\nvar textStyle = {\n backgroundColor: 'transparent',\n border: '0 solid black',\n boxSizing: 'border-box',\n color: 'black',\n display: 'inline',\n font: '14px System',\n listStyle: 'none',\n margin: 0,\n padding: 0,\n position: 'relative',\n textAlign: 'start',\n textDecoration: 'none',\n whiteSpace: 'pre-wrap',\n wordWrap: 'break-word'\n};\nvar styles = StyleSheet.create({\n text$raw: textStyle,\n textHasAncestor$raw: _objectSpread(_objectSpread({}, textStyle), {}, {\n color: 'inherit',\n font: 'inherit',\n textAlign: 'inherit',\n whiteSpace: 'inherit'\n }),\n textOneLine: {\n maxWidth: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n wordWrap: 'normal'\n },\n // See #13\n textMultiLine: {\n display: '-webkit-box',\n maxWidth: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n WebkitBoxOrient: 'vertical'\n },\n notSelectable: {\n userSelect: 'none'\n },\n selectable: {\n userSelect: 'text'\n },\n pressable: {\n cursor: 'pointer'\n }\n});\nexport default Text;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport * as forwardedProps from '../../modules/forwardedProps';\nimport pick from '../../modules/pick';\nimport useElementLayout from '../../modules/useElementLayout';\nimport useLayoutEffect from '../../modules/useLayoutEffect';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePlatformMethods from '../../modules/usePlatformMethods';\nimport useResponderEvents from '../../modules/useResponderEvents';\nimport { getLocaleDirection, useLocaleContext } from '../../modules/useLocale';\nimport StyleSheet from '../StyleSheet';\nimport TextInputState from '../../modules/TextInputState';\nimport { warnOnce } from '../../modules/warnOnce';\n\n/**\n * Determines whether a 'selection' prop differs from a node's existing\n * selection state.\n */\nvar isSelectionStale = (node, selection) => {\n var selectionEnd = node.selectionEnd,\n selectionStart = node.selectionStart;\n var start = selection.start,\n end = selection.end;\n return start !== selectionStart || end !== selectionEnd;\n};\n\n/**\n * Certain input types do no support 'selectSelectionRange' and will throw an\n * error.\n */\nvar setSelection = (node, selection) => {\n if (isSelectionStale(node, selection)) {\n var start = selection.start,\n end = selection.end;\n try {\n node.setSelectionRange(start, end || start);\n } catch (e) {}\n }\n};\nvar forwardPropsList = Object.assign({}, forwardedProps.defaultProps, forwardedProps.accessibilityProps, forwardedProps.clickProps, forwardedProps.focusProps, forwardedProps.keyboardProps, forwardedProps.mouseProps, forwardedProps.touchProps, forwardedProps.styleProps, {\n autoCapitalize: true,\n autoComplete: true,\n autoCorrect: true,\n autoFocus: true,\n defaultValue: true,\n disabled: true,\n lang: true,\n maxLength: true,\n onChange: true,\n onScroll: true,\n placeholder: true,\n pointerEvents: true,\n readOnly: true,\n rows: true,\n spellCheck: true,\n value: true,\n type: true\n});\nvar pickProps = props => pick(props, forwardPropsList);\n\n// If an Input Method Editor is processing key input, the 'keyCode' is 229.\n// https://www.w3.org/TR/uievents/#determine-keydown-keyup-keyCode\nfunction isEventComposing(nativeEvent) {\n return nativeEvent.isComposing || nativeEvent.keyCode === 229;\n}\nvar focusTimeout = null;\nvar TextInput = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var _props$autoCapitalize = props.autoCapitalize,\n autoCapitalize = _props$autoCapitalize === void 0 ? 'sentences' : _props$autoCapitalize,\n autoComplete = props.autoComplete,\n autoCompleteType = props.autoCompleteType,\n _props$autoCorrect = props.autoCorrect,\n autoCorrect = _props$autoCorrect === void 0 ? true : _props$autoCorrect,\n blurOnSubmit = props.blurOnSubmit,\n caretHidden = props.caretHidden,\n clearTextOnFocus = props.clearTextOnFocus,\n dir = props.dir,\n editable = props.editable,\n enterKeyHint = props.enterKeyHint,\n inputMode = props.inputMode,\n keyboardType = props.keyboardType,\n _props$multiline = props.multiline,\n multiline = _props$multiline === void 0 ? false : _props$multiline,\n numberOfLines = props.numberOfLines,\n onBlur = props.onBlur,\n onChange = props.onChange,\n onChangeText = props.onChangeText,\n onContentSizeChange = props.onContentSizeChange,\n onFocus = props.onFocus,\n onKeyPress = props.onKeyPress,\n onLayout = props.onLayout,\n onMoveShouldSetResponder = props.onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture = props.onMoveShouldSetResponderCapture,\n onResponderEnd = props.onResponderEnd,\n onResponderGrant = props.onResponderGrant,\n onResponderMove = props.onResponderMove,\n onResponderReject = props.onResponderReject,\n onResponderRelease = props.onResponderRelease,\n onResponderStart = props.onResponderStart,\n onResponderTerminate = props.onResponderTerminate,\n onResponderTerminationRequest = props.onResponderTerminationRequest,\n onScrollShouldSetResponder = props.onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture = props.onScrollShouldSetResponderCapture,\n onSelectionChange = props.onSelectionChange,\n onSelectionChangeShouldSetResponder = props.onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture = props.onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder = props.onStartShouldSetResponder,\n onStartShouldSetResponderCapture = props.onStartShouldSetResponderCapture,\n onSubmitEditing = props.onSubmitEditing,\n placeholderTextColor = props.placeholderTextColor,\n _props$readOnly = props.readOnly,\n readOnly = _props$readOnly === void 0 ? false : _props$readOnly,\n returnKeyType = props.returnKeyType,\n rows = props.rows,\n _props$secureTextEntr = props.secureTextEntry,\n secureTextEntry = _props$secureTextEntr === void 0 ? false : _props$secureTextEntr,\n selection = props.selection,\n selectTextOnFocus = props.selectTextOnFocus,\n showSoftInputOnFocus = props.showSoftInputOnFocus,\n spellCheck = props.spellCheck;\n var type;\n var _inputMode;\n if (inputMode != null) {\n _inputMode = inputMode;\n if (inputMode === 'email') {\n type = 'email';\n } else if (inputMode === 'tel') {\n type = 'tel';\n } else if (inputMode === 'search') {\n type = 'search';\n } else if (inputMode === 'url') {\n type = 'url';\n } else {\n type = 'text';\n }\n } else if (keyboardType != null) {\n warnOnce('keyboardType', 'keyboardType is deprecated. Use inputMode.');\n switch (keyboardType) {\n case 'email-address':\n type = 'email';\n break;\n case 'number-pad':\n case 'numeric':\n _inputMode = 'numeric';\n break;\n case 'decimal-pad':\n _inputMode = 'decimal';\n break;\n case 'phone-pad':\n type = 'tel';\n break;\n case 'search':\n case 'web-search':\n type = 'search';\n break;\n case 'url':\n type = 'url';\n break;\n default:\n type = 'text';\n }\n }\n if (secureTextEntry) {\n type = 'password';\n }\n var dimensions = React.useRef({\n height: null,\n width: null\n });\n var hostRef = React.useRef(null);\n var prevSelection = React.useRef(null);\n var prevSecureTextEntry = React.useRef(false);\n React.useEffect(() => {\n if (hostRef.current && prevSelection.current) {\n setSelection(hostRef.current, prevSelection.current);\n }\n prevSecureTextEntry.current = secureTextEntry;\n }, [secureTextEntry]);\n var handleContentSizeChange = React.useCallback(hostNode => {\n if (multiline && onContentSizeChange && hostNode != null) {\n var newHeight = hostNode.scrollHeight;\n var newWidth = hostNode.scrollWidth;\n if (newHeight !== dimensions.current.height || newWidth !== dimensions.current.width) {\n dimensions.current.height = newHeight;\n dimensions.current.width = newWidth;\n onContentSizeChange({\n nativeEvent: {\n contentSize: {\n height: dimensions.current.height,\n width: dimensions.current.width\n }\n }\n });\n }\n }\n }, [multiline, onContentSizeChange]);\n var imperativeRef = React.useMemo(() => hostNode => {\n // TextInput needs to add more methods to the hostNode in addition to those\n // added by `usePlatformMethods`. This is temporarily until an API like\n // `TextInput.clear(hostRef)` is added to React Native.\n if (hostNode != null) {\n hostNode.clear = function () {\n if (hostNode != null) {\n hostNode.value = '';\n }\n };\n hostNode.isFocused = function () {\n return hostNode != null && TextInputState.currentlyFocusedField() === hostNode;\n };\n handleContentSizeChange(hostNode);\n }\n }, [handleContentSizeChange]);\n function handleBlur(e) {\n TextInputState._currentlyFocusedNode = null;\n if (onBlur) {\n e.nativeEvent.text = e.target.value;\n onBlur(e);\n }\n }\n function handleChange(e) {\n var hostNode = e.target;\n var text = hostNode.value;\n e.nativeEvent.text = text;\n handleContentSizeChange(hostNode);\n if (onChange) {\n onChange(e);\n }\n if (onChangeText) {\n onChangeText(text);\n }\n }\n function handleFocus(e) {\n var hostNode = e.target;\n if (onFocus) {\n e.nativeEvent.text = hostNode.value;\n onFocus(e);\n }\n if (hostNode != null) {\n TextInputState._currentlyFocusedNode = hostNode;\n if (clearTextOnFocus) {\n hostNode.value = '';\n }\n if (selectTextOnFocus) {\n // Safari requires selection to occur in a setTimeout\n if (focusTimeout != null) {\n clearTimeout(focusTimeout);\n }\n focusTimeout = setTimeout(() => {\n if (hostNode != null) {\n hostNode.select();\n }\n }, 0);\n }\n }\n }\n function handleKeyDown(e) {\n var hostNode = e.target;\n // Prevent key events bubbling (see #612)\n e.stopPropagation();\n var blurOnSubmitDefault = !multiline;\n var shouldBlurOnSubmit = blurOnSubmit == null ? blurOnSubmitDefault : blurOnSubmit;\n var nativeEvent = e.nativeEvent;\n var isComposing = isEventComposing(nativeEvent);\n if (onKeyPress) {\n onKeyPress(e);\n }\n if (e.key === 'Enter' && !e.shiftKey &&\n // Do not call submit if composition is occuring.\n !isComposing && !e.isDefaultPrevented()) {\n if ((blurOnSubmit || !multiline) && onSubmitEditing) {\n // prevent \"Enter\" from inserting a newline or submitting a form\n e.preventDefault();\n nativeEvent.text = e.target.value;\n onSubmitEditing(e);\n }\n if (shouldBlurOnSubmit && hostNode != null) {\n setTimeout(() => hostNode.blur(), 0);\n }\n }\n }\n function handleSelectionChange(e) {\n try {\n var _e$target = e.target,\n selectionStart = _e$target.selectionStart,\n selectionEnd = _e$target.selectionEnd;\n var _selection = {\n start: selectionStart,\n end: selectionEnd\n };\n if (onSelectionChange) {\n e.nativeEvent.selection = _selection;\n e.nativeEvent.text = e.target.value;\n onSelectionChange(e);\n }\n if (prevSecureTextEntry.current === secureTextEntry) {\n prevSelection.current = _selection;\n }\n } catch (e) {}\n }\n useLayoutEffect(() => {\n var node = hostRef.current;\n if (node != null && selection != null) {\n setSelection(node, selection);\n }\n if (document.activeElement === node) {\n TextInputState._currentlyFocusedNode = node;\n }\n }, [hostRef, selection]);\n var component = multiline ? 'textarea' : 'input';\n useElementLayout(hostRef, onLayout);\n useResponderEvents(hostRef, {\n onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture,\n onResponderEnd,\n onResponderGrant,\n onResponderMove,\n onResponderReject,\n onResponderRelease,\n onResponderStart,\n onResponderTerminate,\n onResponderTerminationRequest,\n onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder,\n onStartShouldSetResponderCapture\n });\n var _useLocaleContext = useLocaleContext(),\n contextDirection = _useLocaleContext.direction;\n var supportedProps = pickProps(props);\n supportedProps.autoCapitalize = autoCapitalize;\n supportedProps.autoComplete = autoComplete || autoCompleteType || 'on';\n supportedProps.autoCorrect = autoCorrect ? 'on' : 'off';\n // 'auto' by default allows browsers to infer writing direction\n supportedProps.dir = dir !== undefined ? dir : 'auto';\n if (returnKeyType != null) {\n warnOnce('returnKeyType', 'returnKeyType is deprecated. Use enterKeyHint.');\n }\n supportedProps.enterKeyHint = enterKeyHint || returnKeyType;\n supportedProps.inputMode = _inputMode;\n supportedProps.onBlur = handleBlur;\n supportedProps.onChange = handleChange;\n supportedProps.onFocus = handleFocus;\n supportedProps.onKeyDown = handleKeyDown;\n supportedProps.onSelect = handleSelectionChange;\n if (editable != null) {\n warnOnce('editable', 'editable is deprecated. Use readOnly.');\n }\n supportedProps.readOnly = readOnly === true || editable === false;\n if (numberOfLines != null) {\n warnOnce('numberOfLines', 'TextInput numberOfLines is deprecated. Use rows.');\n }\n supportedProps.rows = multiline ? rows != null ? rows : numberOfLines : 1;\n supportedProps.spellCheck = spellCheck != null ? spellCheck : autoCorrect;\n supportedProps.style = [{\n '--placeholderTextColor': placeholderTextColor\n }, styles.textinput$raw, styles.placeholder, props.style, caretHidden && styles.caretHidden];\n supportedProps.type = multiline ? undefined : type;\n supportedProps.virtualkeyboardpolicy = showSoftInputOnFocus === false ? 'manual' : 'auto';\n var platformMethodsRef = usePlatformMethods(supportedProps);\n var setRef = useMergeRefs(hostRef, platformMethodsRef, imperativeRef, forwardedRef);\n supportedProps.ref = setRef;\n var langDirection = props.lang != null ? getLocaleDirection(props.lang) : null;\n var componentDirection = props.dir || langDirection;\n var writingDirection = componentDirection || contextDirection;\n var element = createElement(component, supportedProps, {\n writingDirection\n });\n return element;\n});\nTextInput.displayName = 'TextInput';\n// $FlowFixMe\nTextInput.State = TextInputState;\nvar styles = StyleSheet.create({\n textinput$raw: {\n MozAppearance: 'textfield',\n WebkitAppearance: 'none',\n backgroundColor: 'transparent',\n border: '0 solid black',\n borderRadius: 0,\n boxSizing: 'border-box',\n font: '14px System',\n margin: 0,\n padding: 0,\n resize: 'none'\n },\n placeholder: {\n placeholderTextColor: 'var(--placeholderTextColor)'\n },\n caretHidden: {\n caretColor: 'transparent'\n }\n});\nexport default TextInput;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"activeOpacity\", \"children\", \"delayPressIn\", \"delayPressOut\", \"delayLongPress\", \"disabled\", \"focusable\", \"onHideUnderlay\", \"onLongPress\", \"onPress\", \"onPressIn\", \"onPressOut\", \"onShowUnderlay\", \"rejectResponderTermination\", \"style\", \"testOnly_pressed\", \"underlayColor\"];\nimport * as React from 'react';\nimport { useCallback, useMemo, useState, useRef } from 'react';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePressEvents from '../../modules/usePressEvents';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nimport { warnOnce } from '../../modules/warnOnce';\nfunction createExtraStyles(activeOpacity, underlayColor) {\n return {\n child: {\n opacity: activeOpacity !== null && activeOpacity !== void 0 ? activeOpacity : 0.85\n },\n underlay: {\n backgroundColor: underlayColor === undefined ? 'black' : underlayColor\n }\n };\n}\nfunction hasPressHandler(props) {\n return props.onPress != null || props.onPressIn != null || props.onPressOut != null || props.onLongPress != null;\n}\n\n/**\n * A wrapper for making views respond properly to touches.\n * On press down, the opacity of the wrapped view is decreased, which allows\n * the underlay color to show through, darkening or tinting the view.\n *\n * The underlay comes from wrapping the child in a new View, which can affect\n * layout, and sometimes cause unwanted visual artifacts if not used correctly,\n * for example if the backgroundColor of the wrapped view isn't explicitly set\n * to an opaque color.\n *\n * TouchableHighlight must have one child (not zero or more than one).\n * If you wish to have several child components, wrap them in a View.\n */\nfunction TouchableHighlight(props, forwardedRef) {\n warnOnce('TouchableHighlight', 'TouchableHighlight is deprecated. Please use Pressable.');\n var activeOpacity = props.activeOpacity,\n children = props.children,\n delayPressIn = props.delayPressIn,\n delayPressOut = props.delayPressOut,\n delayLongPress = props.delayLongPress,\n disabled = props.disabled,\n focusable = props.focusable,\n onHideUnderlay = props.onHideUnderlay,\n onLongPress = props.onLongPress,\n onPress = props.onPress,\n onPressIn = props.onPressIn,\n onPressOut = props.onPressOut,\n onShowUnderlay = props.onShowUnderlay,\n rejectResponderTermination = props.rejectResponderTermination,\n style = props.style,\n testOnly_pressed = props.testOnly_pressed,\n underlayColor = props.underlayColor,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n var hostRef = useRef(null);\n var setRef = useMergeRefs(forwardedRef, hostRef);\n var _useState = useState(testOnly_pressed === true ? createExtraStyles(activeOpacity, underlayColor) : null),\n extraStyles = _useState[0],\n setExtraStyles = _useState[1];\n var showUnderlay = useCallback(() => {\n if (!hasPressHandler(props)) {\n return;\n }\n setExtraStyles(createExtraStyles(activeOpacity, underlayColor));\n if (onShowUnderlay != null) {\n onShowUnderlay();\n }\n }, [activeOpacity, onShowUnderlay, props, underlayColor]);\n var hideUnderlay = useCallback(() => {\n if (testOnly_pressed === true) {\n return;\n }\n if (hasPressHandler(props)) {\n setExtraStyles(null);\n if (onHideUnderlay != null) {\n onHideUnderlay();\n }\n }\n }, [onHideUnderlay, props, testOnly_pressed]);\n var pressConfig = useMemo(() => ({\n cancelable: !rejectResponderTermination,\n disabled,\n delayLongPress,\n delayPressStart: delayPressIn,\n delayPressEnd: delayPressOut,\n onLongPress,\n onPress,\n onPressStart(event) {\n showUnderlay();\n if (onPressIn != null) {\n onPressIn(event);\n }\n },\n onPressEnd(event) {\n hideUnderlay();\n if (onPressOut != null) {\n onPressOut(event);\n }\n }\n }), [delayLongPress, delayPressIn, delayPressOut, disabled, onLongPress, onPress, onPressIn, onPressOut, rejectResponderTermination, showUnderlay, hideUnderlay]);\n var pressEventHandlers = usePressEvents(hostRef, pressConfig);\n var child = React.Children.only(children);\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, pressEventHandlers, {\n accessibilityDisabled: disabled,\n focusable: !disabled && focusable !== false,\n pointerEvents: disabled ? 'box-none' : undefined,\n ref: setRef,\n style: [styles.root, style, !disabled && styles.actionable, extraStyles && extraStyles.underlay]\n }), /*#__PURE__*/React.cloneElement(child, {\n style: [child.props.style, extraStyles && extraStyles.child]\n }));\n}\nvar styles = StyleSheet.create({\n root: {\n userSelect: 'none'\n },\n actionable: {\n cursor: 'pointer',\n touchAction: 'manipulation'\n }\n});\nvar MemoedTouchableHighlight = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(TouchableHighlight));\nMemoedTouchableHighlight.displayName = 'TouchableHighlight';\nexport default MemoedTouchableHighlight;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"activeOpacity\", \"delayPressIn\", \"delayPressOut\", \"delayLongPress\", \"disabled\", \"focusable\", \"onLongPress\", \"onPress\", \"onPressIn\", \"onPressOut\", \"rejectResponderTermination\", \"style\"];\nimport * as React from 'react';\nimport { useCallback, useMemo, useState, useRef } from 'react';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePressEvents from '../../modules/usePressEvents';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nimport { warnOnce } from '../../modules/warnOnce';\n/**\n * A wrapper for making views respond properly to touches.\n * On press down, the opacity of the wrapped view is decreased, dimming it.\n */\nfunction TouchableOpacity(props, forwardedRef) {\n warnOnce('TouchableOpacity', 'TouchableOpacity is deprecated. Please use Pressable.');\n var activeOpacity = props.activeOpacity,\n delayPressIn = props.delayPressIn,\n delayPressOut = props.delayPressOut,\n delayLongPress = props.delayLongPress,\n disabled = props.disabled,\n focusable = props.focusable,\n onLongPress = props.onLongPress,\n onPress = props.onPress,\n onPressIn = props.onPressIn,\n onPressOut = props.onPressOut,\n rejectResponderTermination = props.rejectResponderTermination,\n style = props.style,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n var hostRef = useRef(null);\n var setRef = useMergeRefs(forwardedRef, hostRef);\n var _useState = useState('0s'),\n duration = _useState[0],\n setDuration = _useState[1];\n var _useState2 = useState(null),\n opacityOverride = _useState2[0],\n setOpacityOverride = _useState2[1];\n var setOpacityTo = useCallback((value, duration) => {\n setOpacityOverride(value);\n setDuration(duration ? duration / 1000 + \"s\" : '0s');\n }, [setOpacityOverride, setDuration]);\n var setOpacityActive = useCallback(duration => {\n setOpacityTo(activeOpacity !== null && activeOpacity !== void 0 ? activeOpacity : 0.2, duration);\n }, [activeOpacity, setOpacityTo]);\n var setOpacityInactive = useCallback(duration => {\n setOpacityTo(null, duration);\n }, [setOpacityTo]);\n var pressConfig = useMemo(() => ({\n cancelable: !rejectResponderTermination,\n disabled,\n delayLongPress,\n delayPressStart: delayPressIn,\n delayPressEnd: delayPressOut,\n onLongPress,\n onPress,\n onPressStart(event) {\n var isGrant = event.dispatchConfig != null ? event.dispatchConfig.registrationName === 'onResponderGrant' : event.type === 'keydown';\n setOpacityActive(isGrant ? 0 : 150);\n if (onPressIn != null) {\n onPressIn(event);\n }\n },\n onPressEnd(event) {\n setOpacityInactive(250);\n if (onPressOut != null) {\n onPressOut(event);\n }\n }\n }), [delayLongPress, delayPressIn, delayPressOut, disabled, onLongPress, onPress, onPressIn, onPressOut, rejectResponderTermination, setOpacityActive, setOpacityInactive]);\n var pressEventHandlers = usePressEvents(hostRef, pressConfig);\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, pressEventHandlers, {\n accessibilityDisabled: disabled,\n focusable: !disabled && focusable !== false,\n pointerEvents: disabled ? 'box-none' : undefined,\n ref: setRef,\n style: [styles.root, !disabled && styles.actionable, style, opacityOverride != null && {\n opacity: opacityOverride\n }, {\n transitionDuration: duration\n }]\n }));\n}\nvar styles = StyleSheet.create({\n root: {\n transitionProperty: 'opacity',\n transitionDuration: '0.15s',\n userSelect: 'none'\n },\n actionable: {\n cursor: 'pointer',\n touchAction: 'manipulation'\n }\n});\nvar MemoedTouchableOpacity = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(TouchableOpacity));\nMemoedTouchableOpacity.displayName = 'TouchableOpacity';\nexport default MemoedTouchableOpacity;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport * as React from 'react';\nimport { useMemo, useRef } from 'react';\nimport pick from '../../modules/pick';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePressEvents from '../../modules/usePressEvents';\nimport { warnOnce } from '../../modules/warnOnce';\nvar forwardPropsList = {\n accessibilityDisabled: true,\n accessibilityLabel: true,\n accessibilityLiveRegion: true,\n accessibilityRole: true,\n accessibilityState: true,\n accessibilityValue: true,\n children: true,\n disabled: true,\n focusable: true,\n nativeID: true,\n onBlur: true,\n onFocus: true,\n onLayout: true,\n testID: true\n};\nvar pickProps = props => pick(props, forwardPropsList);\nfunction TouchableWithoutFeedback(props, forwardedRef) {\n warnOnce('TouchableWithoutFeedback', 'TouchableWithoutFeedback is deprecated. Please use Pressable.');\n var delayPressIn = props.delayPressIn,\n delayPressOut = props.delayPressOut,\n delayLongPress = props.delayLongPress,\n disabled = props.disabled,\n focusable = props.focusable,\n onLongPress = props.onLongPress,\n onPress = props.onPress,\n onPressIn = props.onPressIn,\n onPressOut = props.onPressOut,\n rejectResponderTermination = props.rejectResponderTermination;\n var hostRef = useRef(null);\n var pressConfig = useMemo(() => ({\n cancelable: !rejectResponderTermination,\n disabled,\n delayLongPress,\n delayPressStart: delayPressIn,\n delayPressEnd: delayPressOut,\n onLongPress,\n onPress,\n onPressStart: onPressIn,\n onPressEnd: onPressOut\n }), [disabled, delayPressIn, delayPressOut, delayLongPress, onLongPress, onPress, onPressIn, onPressOut, rejectResponderTermination]);\n var pressEventHandlers = usePressEvents(hostRef, pressConfig);\n var element = React.Children.only(props.children);\n var children = [element.props.children];\n var supportedProps = pickProps(props);\n supportedProps.accessibilityDisabled = disabled;\n supportedProps.focusable = !disabled && focusable !== false;\n supportedProps.ref = useMergeRefs(forwardedRef, hostRef, element.ref);\n var elementProps = Object.assign(supportedProps, pressEventHandlers);\n return /*#__PURE__*/React.cloneElement(element, elementProps, ...children);\n}\nvar MemoedTouchableWithoutFeedback = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(TouchableWithoutFeedback));\nMemoedTouchableWithoutFeedback.displayName = 'TouchableWithoutFeedback';\nexport default MemoedTouchableWithoutFeedback;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar unitlessNumbers = {\n animationIterationCount: true,\n aspectRatio: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n flex: true,\n flexGrow: true,\n flexOrder: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n fontWeight: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowGap: true,\n gridRowStart: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnGap: true,\n gridColumnStart: true,\n lineClamp: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n // SVG-related\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true,\n // transform types\n scale: true,\n scaleX: true,\n scaleY: true,\n scaleZ: true,\n // RN properties\n shadowOpacity: true\n};\n\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\nvar prefixes = ['ms', 'Moz', 'O', 'Webkit'];\nvar prefixKey = (prefix, key) => {\n return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n};\nObject.keys(unitlessNumbers).forEach(prop => {\n prefixes.forEach(prefix => {\n unitlessNumbers[prefixKey(prefix, prop)] = unitlessNumbers[prop];\n });\n});\nexport default unitlessNumbers;","/* eslint-disable */\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * From React 16.0.0\n * \n */\n\nimport isUnitlessNumber from '../unitlessNumbers';\n\n/**\n * Convert a value into the proper css writable value. The style name `name`\n * should be logical (no hyphens), as specified\n * in `CSSProperty.isUnitlessNumber`.\n *\n * @param {string} name CSS property name such as `topMargin`.\n * @param {*} value CSS property value such as `10px`.\n * @return {string} Normalized style value with dimensions applied.\n */\nfunction dangerousStyleValue(name, value, isCustomProperty) {\n // Note that we've removed escapeTextForBrowser() calls here since the\n // whole string will be escaped when the attribute is injected into\n // the markup. If you provide unsafe user data here they can inject\n // arbitrary CSS which may be problematic (I couldn't repro this):\n // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet\n // http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/\n // This is not an XSS hole but instead a potential CSS injection issue\n // which has lead to a greater discussion about how we're going to\n // trust URLs moving forward. See #2115901\n\n var isEmpty = value == null || typeof value === 'boolean' || value === '';\n if (isEmpty) {\n return '';\n }\n if (!isCustomProperty && typeof value === 'number' && value !== 0 && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) {\n return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n }\n\n return ('' + value).trim();\n}\nexport default dangerousStyleValue;","/* eslint-disable */\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * From React 16.3.0\n * \n */\n\nimport dangerousStyleValue from './dangerousStyleValue';\n\n/**\n * Sets the value for multiple styles on a node. If a value is specified as\n * '' (empty string), the corresponding style property will be unset.\n *\n * @param {DOMElement} node\n * @param {object} styles\n */\nfunction setValueForStyles(node, styles) {\n var style = node.style;\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n var isCustomProperty = styleName.indexOf('--') === 0;\n var styleValue = dangerousStyleValue(styleName, styles[styleName], isCustomProperty);\n if (styleName === 'float') {\n styleName = 'cssFloat';\n }\n if (isCustomProperty) {\n style.setProperty(styleName, styleValue);\n } else {\n style[styleName] = styleValue;\n }\n }\n}\nexport default setValueForStyles;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport getBoundingClientRect from '../../modules/getBoundingClientRect';\nimport setValueForStyles from '../../modules/setValueForStyles';\nvar getRect = node => {\n var height = node.offsetHeight;\n var width = node.offsetWidth;\n var left = node.offsetLeft;\n var top = node.offsetTop;\n node = node.offsetParent;\n while (node && node.nodeType === 1 /* Node.ELEMENT_NODE */) {\n left += node.offsetLeft + node.clientLeft - node.scrollLeft;\n top += node.offsetTop + node.clientTop - node.scrollTop;\n node = node.offsetParent;\n }\n top -= window.scrollY;\n left -= window.scrollX;\n return {\n width,\n height,\n top,\n left\n };\n};\nvar measureLayout = (node, relativeToNativeNode, callback) => {\n var relativeNode = relativeToNativeNode || node && node.parentNode;\n if (node && relativeNode) {\n setTimeout(() => {\n if (node.isConnected && relativeNode.isConnected) {\n var relativeRect = getRect(relativeNode);\n var _getRect = getRect(node),\n height = _getRect.height,\n left = _getRect.left,\n top = _getRect.top,\n width = _getRect.width;\n var x = left - relativeRect.left;\n var y = top - relativeRect.top;\n callback(x, y, width, height, left, top);\n }\n }, 0);\n }\n};\nvar elementsToIgnore = {\n A: true,\n BODY: true,\n INPUT: true,\n SELECT: true,\n TEXTAREA: true\n};\nvar UIManager = {\n blur(node) {\n try {\n node.blur();\n } catch (err) {}\n },\n focus(node) {\n try {\n var name = node.nodeName;\n // A tabIndex of -1 allows element to be programmatically focused but\n // prevents keyboard focus. We don't want to set the tabindex value on\n // elements that should not prevent keyboard focus.\n if (node.getAttribute('tabIndex') == null && node.isContentEditable !== true && elementsToIgnore[name] == null) {\n node.setAttribute('tabIndex', '-1');\n }\n node.focus();\n } catch (err) {}\n },\n measure(node, callback) {\n measureLayout(node, null, callback);\n },\n measureInWindow(node, callback) {\n if (node) {\n setTimeout(() => {\n var _getBoundingClientRec = getBoundingClientRect(node),\n height = _getBoundingClientRec.height,\n left = _getBoundingClientRec.left,\n top = _getBoundingClientRec.top,\n width = _getBoundingClientRec.width;\n callback(left, top, width, height);\n }, 0);\n }\n },\n measureLayout(node, relativeToNativeNode, onFail, onSuccess) {\n measureLayout(node, relativeToNativeNode, onSuccess);\n },\n updateView(node, props) {\n for (var prop in props) {\n if (!Object.prototype.hasOwnProperty.call(props, prop)) {\n continue;\n }\n var value = props[prop];\n switch (prop) {\n case 'style':\n {\n setValueForStyles(node, value);\n break;\n }\n case 'class':\n case 'className':\n {\n node.setAttribute('class', value);\n break;\n }\n case 'text':\n case 'value':\n // native platforms use `text` prop to replace text input value\n node.value = value;\n break;\n default:\n node.setAttribute(prop, value);\n }\n }\n },\n configureNextLayoutAnimation(config, onAnimationDidEnd) {\n onAnimationDidEnd();\n },\n // mocks\n setLayoutAnimationEnabledExperimental() {}\n};\nexport default UIManager;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"hrefAttrs\", \"onLayout\", \"onMoveShouldSetResponder\", \"onMoveShouldSetResponderCapture\", \"onResponderEnd\", \"onResponderGrant\", \"onResponderMove\", \"onResponderReject\", \"onResponderRelease\", \"onResponderStart\", \"onResponderTerminate\", \"onResponderTerminationRequest\", \"onScrollShouldSetResponder\", \"onScrollShouldSetResponderCapture\", \"onSelectionChangeShouldSetResponder\", \"onSelectionChangeShouldSetResponderCapture\", \"onStartShouldSetResponder\", \"onStartShouldSetResponderCapture\"];\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport * as forwardedProps from '../../modules/forwardedProps';\nimport pick from '../../modules/pick';\nimport useElementLayout from '../../modules/useElementLayout';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePlatformMethods from '../../modules/usePlatformMethods';\nimport useResponderEvents from '../../modules/useResponderEvents';\nimport StyleSheet from '../StyleSheet';\nimport TextAncestorContext from '../Text/TextAncestorContext';\nimport { useLocaleContext, getLocaleDirection } from '../../modules/useLocale';\nvar forwardPropsList = Object.assign({}, forwardedProps.defaultProps, forwardedProps.accessibilityProps, forwardedProps.clickProps, forwardedProps.focusProps, forwardedProps.keyboardProps, forwardedProps.mouseProps, forwardedProps.touchProps, forwardedProps.styleProps, {\n href: true,\n lang: true,\n onScroll: true,\n onWheel: true,\n pointerEvents: true\n});\nvar pickProps = props => pick(props, forwardPropsList);\nvar View = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var hrefAttrs = props.hrefAttrs,\n onLayout = props.onLayout,\n onMoveShouldSetResponder = props.onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture = props.onMoveShouldSetResponderCapture,\n onResponderEnd = props.onResponderEnd,\n onResponderGrant = props.onResponderGrant,\n onResponderMove = props.onResponderMove,\n onResponderReject = props.onResponderReject,\n onResponderRelease = props.onResponderRelease,\n onResponderStart = props.onResponderStart,\n onResponderTerminate = props.onResponderTerminate,\n onResponderTerminationRequest = props.onResponderTerminationRequest,\n onScrollShouldSetResponder = props.onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture = props.onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder = props.onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture = props.onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder = props.onStartShouldSetResponder,\n onStartShouldSetResponderCapture = props.onStartShouldSetResponderCapture,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n if (process.env.NODE_ENV !== 'production') {\n React.Children.toArray(props.children).forEach(item => {\n if (typeof item === 'string') {\n console.error(\"Unexpected text node: \" + item + \". A text node cannot be a child of a .\");\n }\n });\n }\n var hasTextAncestor = React.useContext(TextAncestorContext);\n var hostRef = React.useRef(null);\n var _useLocaleContext = useLocaleContext(),\n contextDirection = _useLocaleContext.direction;\n useElementLayout(hostRef, onLayout);\n useResponderEvents(hostRef, {\n onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture,\n onResponderEnd,\n onResponderGrant,\n onResponderMove,\n onResponderReject,\n onResponderRelease,\n onResponderStart,\n onResponderTerminate,\n onResponderTerminationRequest,\n onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder,\n onStartShouldSetResponderCapture\n });\n var component = 'div';\n var langDirection = props.lang != null ? getLocaleDirection(props.lang) : null;\n var componentDirection = props.dir || langDirection;\n var writingDirection = componentDirection || contextDirection;\n var supportedProps = pickProps(rest);\n supportedProps.dir = componentDirection;\n supportedProps.style = [styles.view$raw, hasTextAncestor && styles.inline, props.style];\n if (props.href != null) {\n component = 'a';\n if (hrefAttrs != null) {\n var download = hrefAttrs.download,\n rel = hrefAttrs.rel,\n target = hrefAttrs.target;\n if (download != null) {\n supportedProps.download = download;\n }\n if (rel != null) {\n supportedProps.rel = rel;\n }\n if (typeof target === 'string') {\n supportedProps.target = target.charAt(0) !== '_' ? '_' + target : target;\n }\n }\n }\n var platformMethodsRef = usePlatformMethods(supportedProps);\n var setRef = useMergeRefs(hostRef, platformMethodsRef, forwardedRef);\n supportedProps.ref = setRef;\n return createElement(component, supportedProps, {\n writingDirection\n });\n});\nView.displayName = 'View';\nvar styles = StyleSheet.create({\n view$raw: {\n alignItems: 'stretch',\n backgroundColor: 'transparent',\n border: '0 solid black',\n boxSizing: 'border-box',\n display: 'flex',\n flexBasis: 'auto',\n flexDirection: 'column',\n flexShrink: 0,\n listStyle: 'none',\n margin: 0,\n minHeight: 0,\n minWidth: 0,\n padding: 0,\n position: 'relative',\n textDecoration: 'none',\n zIndex: 0\n },\n inline: {\n display: 'inline-flex'\n }\n});\nexport default View;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"aria-activedescendant\", \"accessibilityActiveDescendant\", \"aria-atomic\", \"accessibilityAtomic\", \"aria-autocomplete\", \"accessibilityAutoComplete\", \"aria-busy\", \"accessibilityBusy\", \"aria-checked\", \"accessibilityChecked\", \"aria-colcount\", \"accessibilityColumnCount\", \"aria-colindex\", \"accessibilityColumnIndex\", \"aria-colspan\", \"accessibilityColumnSpan\", \"aria-controls\", \"accessibilityControls\", \"aria-current\", \"accessibilityCurrent\", \"aria-describedby\", \"accessibilityDescribedBy\", \"aria-details\", \"accessibilityDetails\", \"aria-disabled\", \"accessibilityDisabled\", \"aria-errormessage\", \"accessibilityErrorMessage\", \"aria-expanded\", \"accessibilityExpanded\", \"aria-flowto\", \"accessibilityFlowTo\", \"aria-haspopup\", \"accessibilityHasPopup\", \"aria-hidden\", \"accessibilityHidden\", \"aria-invalid\", \"accessibilityInvalid\", \"aria-keyshortcuts\", \"accessibilityKeyShortcuts\", \"aria-label\", \"accessibilityLabel\", \"aria-labelledby\", \"accessibilityLabelledBy\", \"aria-level\", \"accessibilityLevel\", \"aria-live\", \"accessibilityLiveRegion\", \"aria-modal\", \"accessibilityModal\", \"aria-multiline\", \"accessibilityMultiline\", \"aria-multiselectable\", \"accessibilityMultiSelectable\", \"aria-orientation\", \"accessibilityOrientation\", \"aria-owns\", \"accessibilityOwns\", \"aria-placeholder\", \"accessibilityPlaceholder\", \"aria-posinset\", \"accessibilityPosInSet\", \"aria-pressed\", \"accessibilityPressed\", \"aria-readonly\", \"accessibilityReadOnly\", \"aria-required\", \"accessibilityRequired\", \"role\", \"accessibilityRole\", \"aria-roledescription\", \"accessibilityRoleDescription\", \"aria-rowcount\", \"accessibilityRowCount\", \"aria-rowindex\", \"accessibilityRowIndex\", \"aria-rowspan\", \"accessibilityRowSpan\", \"aria-selected\", \"accessibilitySelected\", \"aria-setsize\", \"accessibilitySetSize\", \"aria-sort\", \"accessibilitySort\", \"aria-valuemax\", \"accessibilityValueMax\", \"aria-valuemin\", \"accessibilityValueMin\", \"aria-valuenow\", \"accessibilityValueNow\", \"aria-valuetext\", \"accessibilityValueText\", \"dataSet\", \"focusable\", \"id\", \"nativeID\", \"pointerEvents\", \"style\", \"tabIndex\", \"testID\"];\n/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport AccessibilityUtil from '../AccessibilityUtil';\nimport StyleSheet from '../../exports/StyleSheet';\nimport { warnOnce } from '../warnOnce';\nvar emptyObject = {};\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\nvar uppercasePattern = /[A-Z]/g;\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase();\n}\nfunction hyphenateString(str) {\n return str.replace(uppercasePattern, toHyphenLower);\n}\nfunction processIDRefList(idRefList) {\n return isArray(idRefList) ? idRefList.join(' ') : idRefList;\n}\nvar pointerEventsStyles = StyleSheet.create({\n auto: {\n pointerEvents: 'auto'\n },\n 'box-none': {\n pointerEvents: 'box-none'\n },\n 'box-only': {\n pointerEvents: 'box-only'\n },\n none: {\n pointerEvents: 'none'\n }\n});\nvar createDOMProps = (elementType, props, options) => {\n if (!props) {\n props = emptyObject;\n }\n var _props = props,\n ariaActiveDescendant = _props['aria-activedescendant'],\n accessibilityActiveDescendant = _props.accessibilityActiveDescendant,\n ariaAtomic = _props['aria-atomic'],\n accessibilityAtomic = _props.accessibilityAtomic,\n ariaAutoComplete = _props['aria-autocomplete'],\n accessibilityAutoComplete = _props.accessibilityAutoComplete,\n ariaBusy = _props['aria-busy'],\n accessibilityBusy = _props.accessibilityBusy,\n ariaChecked = _props['aria-checked'],\n accessibilityChecked = _props.accessibilityChecked,\n ariaColumnCount = _props['aria-colcount'],\n accessibilityColumnCount = _props.accessibilityColumnCount,\n ariaColumnIndex = _props['aria-colindex'],\n accessibilityColumnIndex = _props.accessibilityColumnIndex,\n ariaColumnSpan = _props['aria-colspan'],\n accessibilityColumnSpan = _props.accessibilityColumnSpan,\n ariaControls = _props['aria-controls'],\n accessibilityControls = _props.accessibilityControls,\n ariaCurrent = _props['aria-current'],\n accessibilityCurrent = _props.accessibilityCurrent,\n ariaDescribedBy = _props['aria-describedby'],\n accessibilityDescribedBy = _props.accessibilityDescribedBy,\n ariaDetails = _props['aria-details'],\n accessibilityDetails = _props.accessibilityDetails,\n ariaDisabled = _props['aria-disabled'],\n accessibilityDisabled = _props.accessibilityDisabled,\n ariaErrorMessage = _props['aria-errormessage'],\n accessibilityErrorMessage = _props.accessibilityErrorMessage,\n ariaExpanded = _props['aria-expanded'],\n accessibilityExpanded = _props.accessibilityExpanded,\n ariaFlowTo = _props['aria-flowto'],\n accessibilityFlowTo = _props.accessibilityFlowTo,\n ariaHasPopup = _props['aria-haspopup'],\n accessibilityHasPopup = _props.accessibilityHasPopup,\n ariaHidden = _props['aria-hidden'],\n accessibilityHidden = _props.accessibilityHidden,\n ariaInvalid = _props['aria-invalid'],\n accessibilityInvalid = _props.accessibilityInvalid,\n ariaKeyShortcuts = _props['aria-keyshortcuts'],\n accessibilityKeyShortcuts = _props.accessibilityKeyShortcuts,\n ariaLabel = _props['aria-label'],\n accessibilityLabel = _props.accessibilityLabel,\n ariaLabelledBy = _props['aria-labelledby'],\n accessibilityLabelledBy = _props.accessibilityLabelledBy,\n ariaLevel = _props['aria-level'],\n accessibilityLevel = _props.accessibilityLevel,\n ariaLive = _props['aria-live'],\n accessibilityLiveRegion = _props.accessibilityLiveRegion,\n ariaModal = _props['aria-modal'],\n accessibilityModal = _props.accessibilityModal,\n ariaMultiline = _props['aria-multiline'],\n accessibilityMultiline = _props.accessibilityMultiline,\n ariaMultiSelectable = _props['aria-multiselectable'],\n accessibilityMultiSelectable = _props.accessibilityMultiSelectable,\n ariaOrientation = _props['aria-orientation'],\n accessibilityOrientation = _props.accessibilityOrientation,\n ariaOwns = _props['aria-owns'],\n accessibilityOwns = _props.accessibilityOwns,\n ariaPlaceholder = _props['aria-placeholder'],\n accessibilityPlaceholder = _props.accessibilityPlaceholder,\n ariaPosInSet = _props['aria-posinset'],\n accessibilityPosInSet = _props.accessibilityPosInSet,\n ariaPressed = _props['aria-pressed'],\n accessibilityPressed = _props.accessibilityPressed,\n ariaReadOnly = _props['aria-readonly'],\n accessibilityReadOnly = _props.accessibilityReadOnly,\n ariaRequired = _props['aria-required'],\n accessibilityRequired = _props.accessibilityRequired,\n ariaRole = _props.role,\n accessibilityRole = _props.accessibilityRole,\n ariaRoleDescription = _props['aria-roledescription'],\n accessibilityRoleDescription = _props.accessibilityRoleDescription,\n ariaRowCount = _props['aria-rowcount'],\n accessibilityRowCount = _props.accessibilityRowCount,\n ariaRowIndex = _props['aria-rowindex'],\n accessibilityRowIndex = _props.accessibilityRowIndex,\n ariaRowSpan = _props['aria-rowspan'],\n accessibilityRowSpan = _props.accessibilityRowSpan,\n ariaSelected = _props['aria-selected'],\n accessibilitySelected = _props.accessibilitySelected,\n ariaSetSize = _props['aria-setsize'],\n accessibilitySetSize = _props.accessibilitySetSize,\n ariaSort = _props['aria-sort'],\n accessibilitySort = _props.accessibilitySort,\n ariaValueMax = _props['aria-valuemax'],\n accessibilityValueMax = _props.accessibilityValueMax,\n ariaValueMin = _props['aria-valuemin'],\n accessibilityValueMin = _props.accessibilityValueMin,\n ariaValueNow = _props['aria-valuenow'],\n accessibilityValueNow = _props.accessibilityValueNow,\n ariaValueText = _props['aria-valuetext'],\n accessibilityValueText = _props.accessibilityValueText,\n dataSet = _props.dataSet,\n focusable = _props.focusable,\n id = _props.id,\n nativeID = _props.nativeID,\n pointerEvents = _props.pointerEvents,\n style = _props.style,\n tabIndex = _props.tabIndex,\n testID = _props.testID,\n domProps = _objectWithoutPropertiesLoose(_props, _excluded);\n if (accessibilityDisabled != null) {\n warnOnce('accessibilityDisabled', \"accessibilityDisabled is deprecated.\");\n }\n var disabled = ariaDisabled || accessibilityDisabled;\n var role = AccessibilityUtil.propsToAriaRole(props);\n\n // ACCESSIBILITY\n if (accessibilityActiveDescendant != null) {\n warnOnce('accessibilityActiveDescendant', \"accessibilityActiveDescendant is deprecated. Use aria-activedescendant.\");\n }\n var _ariaActiveDescendant = ariaActiveDescendant != null ? ariaActiveDescendant : accessibilityActiveDescendant;\n if (_ariaActiveDescendant != null) {\n domProps['aria-activedescendant'] = _ariaActiveDescendant;\n }\n if (accessibilityAtomic != null) {\n warnOnce('accessibilityAtomic', \"accessibilityAtomic is deprecated. Use aria-atomic.\");\n }\n var _ariaAtomic = ariaAtomic != null ? ariaActiveDescendant : accessibilityAtomic;\n if (_ariaAtomic != null) {\n domProps['aria-atomic'] = _ariaAtomic;\n }\n if (accessibilityAutoComplete != null) {\n warnOnce('accessibilityAutoComplete', \"accessibilityAutoComplete is deprecated. Use aria-autocomplete.\");\n }\n var _ariaAutoComplete = ariaAutoComplete != null ? ariaAutoComplete : accessibilityAutoComplete;\n if (_ariaAutoComplete != null) {\n domProps['aria-autocomplete'] = _ariaAutoComplete;\n }\n if (accessibilityBusy != null) {\n warnOnce('accessibilityBusy', \"accessibilityBusy is deprecated. Use aria-busy.\");\n }\n var _ariaBusy = ariaBusy != null ? ariaBusy : accessibilityBusy;\n if (_ariaBusy != null) {\n domProps['aria-busy'] = _ariaBusy;\n }\n if (accessibilityChecked != null) {\n warnOnce('accessibilityChecked', \"accessibilityChecked is deprecated. Use aria-checked.\");\n }\n var _ariaChecked = ariaChecked != null ? ariaChecked : accessibilityChecked;\n if (_ariaChecked != null) {\n domProps['aria-checked'] = _ariaChecked;\n }\n if (accessibilityColumnCount != null) {\n warnOnce('accessibilityColumnCount', \"accessibilityColumnCount is deprecated. Use aria-colcount.\");\n }\n var _ariaColumnCount = ariaColumnCount != null ? ariaColumnCount : accessibilityColumnCount;\n if (_ariaColumnCount != null) {\n domProps['aria-colcount'] = _ariaColumnCount;\n }\n if (accessibilityColumnIndex != null) {\n warnOnce('accessibilityColumnIndex', \"accessibilityColumnIndex is deprecated. Use aria-colindex.\");\n }\n var _ariaColumnIndex = ariaColumnIndex != null ? ariaColumnIndex : accessibilityColumnIndex;\n if (_ariaColumnIndex != null) {\n domProps['aria-colindex'] = _ariaColumnIndex;\n }\n if (accessibilityColumnSpan != null) {\n warnOnce('accessibilityColumnSpan', \"accessibilityColumnSpan is deprecated. Use aria-colspan.\");\n }\n var _ariaColumnSpan = ariaColumnSpan != null ? ariaColumnSpan : accessibilityColumnSpan;\n if (_ariaColumnSpan != null) {\n domProps['aria-colspan'] = _ariaColumnSpan;\n }\n if (accessibilityControls != null) {\n warnOnce('accessibilityControls', \"accessibilityControls is deprecated. Use aria-controls.\");\n }\n var _ariaControls = ariaControls != null ? ariaControls : accessibilityControls;\n if (_ariaControls != null) {\n domProps['aria-controls'] = processIDRefList(_ariaControls);\n }\n if (accessibilityCurrent != null) {\n warnOnce('accessibilityCurrent', \"accessibilityCurrent is deprecated. Use aria-current.\");\n }\n var _ariaCurrent = ariaCurrent != null ? ariaCurrent : accessibilityCurrent;\n if (_ariaCurrent != null) {\n domProps['aria-current'] = _ariaCurrent;\n }\n if (accessibilityDescribedBy != null) {\n warnOnce('accessibilityDescribedBy', \"accessibilityDescribedBy is deprecated. Use aria-describedby.\");\n }\n var _ariaDescribedBy = ariaDescribedBy != null ? ariaDescribedBy : accessibilityDescribedBy;\n if (_ariaDescribedBy != null) {\n domProps['aria-describedby'] = processIDRefList(_ariaDescribedBy);\n }\n if (accessibilityDetails != null) {\n warnOnce('accessibilityDetails', \"accessibilityDetails is deprecated. Use aria-details.\");\n }\n var _ariaDetails = ariaDetails != null ? ariaDetails : accessibilityDetails;\n if (_ariaDetails != null) {\n domProps['aria-details'] = _ariaDetails;\n }\n if (disabled === true) {\n domProps['aria-disabled'] = true;\n // Enhance with native semantics\n if (elementType === 'button' || elementType === 'form' || elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n domProps.disabled = true;\n }\n }\n if (accessibilityErrorMessage != null) {\n warnOnce('accessibilityErrorMessage', \"accessibilityErrorMessage is deprecated. Use aria-errormessage.\");\n }\n var _ariaErrorMessage = ariaErrorMessage != null ? ariaErrorMessage : accessibilityErrorMessage;\n if (_ariaErrorMessage != null) {\n domProps['aria-errormessage'] = _ariaErrorMessage;\n }\n if (accessibilityExpanded != null) {\n warnOnce('accessibilityExpanded', \"accessibilityExpanded is deprecated. Use aria-expanded.\");\n }\n var _ariaExpanded = ariaExpanded != null ? ariaExpanded : accessibilityExpanded;\n if (_ariaExpanded != null) {\n domProps['aria-expanded'] = _ariaExpanded;\n }\n if (accessibilityFlowTo != null) {\n warnOnce('accessibilityFlowTo', \"accessibilityFlowTo is deprecated. Use aria-flowto.\");\n }\n var _ariaFlowTo = ariaFlowTo != null ? ariaFlowTo : accessibilityFlowTo;\n if (_ariaFlowTo != null) {\n domProps['aria-flowto'] = processIDRefList(_ariaFlowTo);\n }\n if (accessibilityHasPopup != null) {\n warnOnce('accessibilityHasPopup', \"accessibilityHasPopup is deprecated. Use aria-haspopup.\");\n }\n var _ariaHasPopup = ariaHasPopup != null ? ariaHasPopup : accessibilityHasPopup;\n if (_ariaHasPopup != null) {\n domProps['aria-haspopup'] = _ariaHasPopup;\n }\n if (accessibilityHidden != null) {\n warnOnce('accessibilityHidden', \"accessibilityHidden is deprecated. Use aria-hidden.\");\n }\n var _ariaHidden = ariaHidden != null ? ariaHidden : accessibilityHidden;\n if (_ariaHidden === true) {\n domProps['aria-hidden'] = _ariaHidden;\n }\n if (accessibilityInvalid != null) {\n warnOnce('accessibilityInvalid', \"accessibilityInvalid is deprecated. Use aria-invalid.\");\n }\n var _ariaInvalid = ariaInvalid != null ? ariaInvalid : accessibilityInvalid;\n if (_ariaInvalid != null) {\n domProps['aria-invalid'] = _ariaInvalid;\n }\n if (accessibilityKeyShortcuts != null) {\n warnOnce('accessibilityKeyShortcuts', \"accessibilityKeyShortcuts is deprecated. Use aria-keyshortcuts.\");\n }\n var _ariaKeyShortcuts = ariaKeyShortcuts != null ? ariaKeyShortcuts : accessibilityKeyShortcuts;\n if (_ariaKeyShortcuts != null) {\n domProps['aria-keyshortcuts'] = processIDRefList(_ariaKeyShortcuts);\n }\n if (accessibilityLabel != null) {\n warnOnce('accessibilityLabel', \"accessibilityLabel is deprecated. Use aria-label.\");\n }\n var _ariaLabel = ariaLabel != null ? ariaLabel : accessibilityLabel;\n if (_ariaLabel != null) {\n domProps['aria-label'] = _ariaLabel;\n }\n if (accessibilityLabelledBy != null) {\n warnOnce('accessibilityLabelledBy', \"accessibilityLabelledBy is deprecated. Use aria-labelledby.\");\n }\n var _ariaLabelledBy = ariaLabelledBy != null ? ariaLabelledBy : accessibilityLabelledBy;\n if (_ariaLabelledBy != null) {\n domProps['aria-labelledby'] = processIDRefList(_ariaLabelledBy);\n }\n if (accessibilityLevel != null) {\n warnOnce('accessibilityLevel', \"accessibilityLevel is deprecated. Use aria-level.\");\n }\n var _ariaLevel = ariaLevel != null ? ariaLevel : accessibilityLevel;\n if (_ariaLevel != null) {\n domProps['aria-level'] = _ariaLevel;\n }\n if (accessibilityLiveRegion != null) {\n warnOnce('accessibilityLiveRegion', \"accessibilityLiveRegion is deprecated. Use aria-live.\");\n }\n var _ariaLive = ariaLive != null ? ariaLive : accessibilityLiveRegion;\n if (_ariaLive != null) {\n domProps['aria-live'] = _ariaLive === 'none' ? 'off' : _ariaLive;\n }\n if (accessibilityModal != null) {\n warnOnce('accessibilityModal', \"accessibilityModal is deprecated. Use aria-modal.\");\n }\n var _ariaModal = ariaModal != null ? ariaModal : accessibilityModal;\n if (_ariaModal != null) {\n domProps['aria-modal'] = _ariaModal;\n }\n if (accessibilityMultiline != null) {\n warnOnce('accessibilityMultiline', \"accessibilityMultiline is deprecated. Use aria-multiline.\");\n }\n var _ariaMultiline = ariaMultiline != null ? ariaMultiline : accessibilityMultiline;\n if (_ariaMultiline != null) {\n domProps['aria-multiline'] = _ariaMultiline;\n }\n if (accessibilityMultiSelectable != null) {\n warnOnce('accessibilityMultiSelectable', \"accessibilityMultiSelectable is deprecated. Use aria-multiselectable.\");\n }\n var _ariaMultiSelectable = ariaMultiSelectable != null ? ariaMultiSelectable : accessibilityMultiSelectable;\n if (_ariaMultiSelectable != null) {\n domProps['aria-multiselectable'] = _ariaMultiSelectable;\n }\n if (accessibilityOrientation != null) {\n warnOnce('accessibilityOrientation', \"accessibilityOrientation is deprecated. Use aria-orientation.\");\n }\n var _ariaOrientation = ariaOrientation != null ? ariaOrientation : accessibilityOrientation;\n if (_ariaOrientation != null) {\n domProps['aria-orientation'] = _ariaOrientation;\n }\n if (accessibilityOwns != null) {\n warnOnce('accessibilityOwns', \"accessibilityOwns is deprecated. Use aria-owns.\");\n }\n var _ariaOwns = ariaOwns != null ? ariaOwns : accessibilityOwns;\n if (_ariaOwns != null) {\n domProps['aria-owns'] = processIDRefList(_ariaOwns);\n }\n if (accessibilityPlaceholder != null) {\n warnOnce('accessibilityPlaceholder', \"accessibilityPlaceholder is deprecated. Use aria-placeholder.\");\n }\n var _ariaPlaceholder = ariaPlaceholder != null ? ariaPlaceholder : accessibilityPlaceholder;\n if (_ariaPlaceholder != null) {\n domProps['aria-placeholder'] = _ariaPlaceholder;\n }\n if (accessibilityPosInSet != null) {\n warnOnce('accessibilityPosInSet', \"accessibilityPosInSet is deprecated. Use aria-posinset.\");\n }\n var _ariaPosInSet = ariaPosInSet != null ? ariaPosInSet : accessibilityPosInSet;\n if (_ariaPosInSet != null) {\n domProps['aria-posinset'] = _ariaPosInSet;\n }\n if (accessibilityPressed != null) {\n warnOnce('accessibilityPressed', \"accessibilityPressed is deprecated. Use aria-pressed.\");\n }\n var _ariaPressed = ariaPressed != null ? ariaPressed : accessibilityPressed;\n if (_ariaPressed != null) {\n domProps['aria-pressed'] = _ariaPressed;\n }\n if (accessibilityReadOnly != null) {\n warnOnce('accessibilityReadOnly', \"accessibilityReadOnly is deprecated. Use aria-readonly.\");\n }\n var _ariaReadOnly = ariaReadOnly != null ? ariaReadOnly : accessibilityReadOnly;\n if (_ariaReadOnly != null) {\n domProps['aria-readonly'] = _ariaReadOnly;\n // Enhance with native semantics\n if (elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n domProps.readOnly = true;\n }\n }\n if (accessibilityRequired != null) {\n warnOnce('accessibilityRequired', \"accessibilityRequired is deprecated. Use aria-required.\");\n }\n var _ariaRequired = ariaRequired != null ? ariaRequired : accessibilityRequired;\n if (_ariaRequired != null) {\n domProps['aria-required'] = _ariaRequired;\n // Enhance with native semantics\n if (elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n domProps.required = accessibilityRequired;\n }\n }\n if (accessibilityRole != null) {\n warnOnce('accessibilityRole', \"accessibilityRole is deprecated. Use role.\");\n }\n if (role != null) {\n // 'presentation' synonym has wider browser support\n domProps['role'] = role === 'none' ? 'presentation' : role;\n }\n if (accessibilityRoleDescription != null) {\n warnOnce('accessibilityRoleDescription', \"accessibilityRoleDescription is deprecated. Use aria-roledescription.\");\n }\n var _ariaRoleDescription = ariaRoleDescription != null ? ariaRoleDescription : accessibilityRoleDescription;\n if (_ariaRoleDescription != null) {\n domProps['aria-roledescription'] = _ariaRoleDescription;\n }\n if (accessibilityRowCount != null) {\n warnOnce('accessibilityRowCount', \"accessibilityRowCount is deprecated. Use aria-rowcount.\");\n }\n var _ariaRowCount = ariaRowCount != null ? ariaRowCount : accessibilityRowCount;\n if (_ariaRowCount != null) {\n domProps['aria-rowcount'] = _ariaRowCount;\n }\n if (accessibilityRowIndex != null) {\n warnOnce('accessibilityRowIndex', \"accessibilityRowIndex is deprecated. Use aria-rowindex.\");\n }\n var _ariaRowIndex = ariaRowIndex != null ? ariaRowIndex : accessibilityRowIndex;\n if (_ariaRowIndex != null) {\n domProps['aria-rowindex'] = _ariaRowIndex;\n }\n if (accessibilityRowSpan != null) {\n warnOnce('accessibilityRowSpan', \"accessibilityRowSpan is deprecated. Use aria-rowspan.\");\n }\n var _ariaRowSpan = ariaRowSpan != null ? ariaRowSpan : accessibilityRowSpan;\n if (_ariaRowSpan != null) {\n domProps['aria-rowspan'] = _ariaRowSpan;\n }\n if (accessibilitySelected != null) {\n warnOnce('accessibilitySelected', \"accessibilitySelected is deprecated. Use aria-selected.\");\n }\n var _ariaSelected = ariaSelected != null ? ariaSelected : accessibilitySelected;\n if (_ariaSelected != null) {\n domProps['aria-selected'] = _ariaSelected;\n }\n if (accessibilitySetSize != null) {\n warnOnce('accessibilitySetSize', \"accessibilitySetSize is deprecated. Use aria-setsize.\");\n }\n var _ariaSetSize = ariaSetSize != null ? ariaSetSize : accessibilitySetSize;\n if (_ariaSetSize != null) {\n domProps['aria-setsize'] = _ariaSetSize;\n }\n if (accessibilitySort != null) {\n warnOnce('accessibilitySort', \"accessibilitySort is deprecated. Use aria-sort.\");\n }\n var _ariaSort = ariaSort != null ? ariaSort : accessibilitySort;\n if (_ariaSort != null) {\n domProps['aria-sort'] = _ariaSort;\n }\n if (accessibilityValueMax != null) {\n warnOnce('accessibilityValueMax', \"accessibilityValueMax is deprecated. Use aria-valuemax.\");\n }\n var _ariaValueMax = ariaValueMax != null ? ariaValueMax : accessibilityValueMax;\n if (_ariaValueMax != null) {\n domProps['aria-valuemax'] = _ariaValueMax;\n }\n if (accessibilityValueMin != null) {\n warnOnce('accessibilityValueMin', \"accessibilityValueMin is deprecated. Use aria-valuemin.\");\n }\n var _ariaValueMin = ariaValueMin != null ? ariaValueMin : accessibilityValueMin;\n if (_ariaValueMin != null) {\n domProps['aria-valuemin'] = _ariaValueMin;\n }\n if (accessibilityValueNow != null) {\n warnOnce('accessibilityValueNow', \"accessibilityValueNow is deprecated. Use aria-valuenow.\");\n }\n var _ariaValueNow = ariaValueNow != null ? ariaValueNow : accessibilityValueNow;\n if (_ariaValueNow != null) {\n domProps['aria-valuenow'] = _ariaValueNow;\n }\n if (accessibilityValueText != null) {\n warnOnce('accessibilityValueText', \"accessibilityValueText is deprecated. Use aria-valuetext.\");\n }\n var _ariaValueText = ariaValueText != null ? ariaValueText : accessibilityValueText;\n if (_ariaValueText != null) {\n domProps['aria-valuetext'] = _ariaValueText;\n }\n\n // \"dataSet\" replaced with \"data-*\"\n if (dataSet != null) {\n for (var dataProp in dataSet) {\n if (hasOwnProperty.call(dataSet, dataProp)) {\n var dataName = hyphenateString(dataProp);\n var dataValue = dataSet[dataProp];\n if (dataValue != null) {\n domProps[\"data-\" + dataName] = dataValue;\n }\n }\n }\n }\n\n // FOCUS\n if (tabIndex === 0 || tabIndex === '0' || tabIndex === -1 || tabIndex === '-1') {\n domProps.tabIndex = tabIndex;\n } else {\n if (focusable != null) {\n warnOnce('focusable', \"focusable is deprecated.\");\n }\n\n // \"focusable\" indicates that an element may be a keyboard tab-stop.\n if (focusable === false) {\n domProps.tabIndex = '-1';\n }\n if (\n // These native elements are keyboard focusable by default\n elementType === 'a' || elementType === 'button' || elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n if (focusable === false || accessibilityDisabled === true) {\n domProps.tabIndex = '-1';\n }\n } else if (\n // These roles are made keyboard focusable by default\n role === 'button' || role === 'checkbox' || role === 'link' || role === 'radio' || role === 'textbox' || role === 'switch') {\n if (focusable !== false) {\n domProps.tabIndex = '0';\n }\n } else {\n // Everything else must explicitly set the prop\n if (focusable === true) {\n domProps.tabIndex = '0';\n }\n }\n }\n\n // Resolve styles\n if (pointerEvents != null) {\n warnOnce('pointerEvents', \"props.pointerEvents is deprecated. Use style.pointerEvents\");\n }\n var _StyleSheet = StyleSheet([style, pointerEvents && pointerEventsStyles[pointerEvents]], _objectSpread({\n writingDirection: 'ltr'\n }, options)),\n className = _StyleSheet[0],\n inlineStyle = _StyleSheet[1];\n if (className) {\n domProps.className = className;\n }\n if (inlineStyle) {\n domProps.style = inlineStyle;\n }\n\n // OTHER\n // Native element ID\n if (nativeID != null) {\n warnOnce('nativeID', \"nativeID is deprecated. Use id.\");\n }\n var _id = id != null ? id : nativeID;\n if (_id != null) {\n domProps.id = _id;\n }\n // Automated test IDs\n if (testID != null) {\n domProps['data-testid'] = testID;\n }\n if (domProps.type == null && elementType === 'button') {\n domProps.type = 'button';\n }\n return domProps;\n};\nexport default createDOMProps;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport AccessibilityUtil from '../../modules/AccessibilityUtil';\nimport createDOMProps from '../../modules/createDOMProps';\nimport React from 'react';\nimport { LocaleProvider } from '../../modules/useLocale';\nvar createElement = (component, props, options) => {\n // Use equivalent platform elements where possible.\n var accessibilityComponent;\n if (component && component.constructor === String) {\n accessibilityComponent = AccessibilityUtil.propsToAccessibilityComponent(props);\n }\n var Component = accessibilityComponent || component;\n var domProps = createDOMProps(Component, props, options);\n var element = /*#__PURE__*/React.createElement(Component, domProps);\n\n // Update locale context if element's writing direction prop changes\n var elementWithLocaleProvider = domProps.dir ? /*#__PURE__*/React.createElement(LocaleProvider, {\n children: element,\n direction: domProps.dir,\n locale: domProps.lang\n }) : element;\n return elementWithLocaleProvider;\n};\nexport default createElement;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport normalizeColor from '@react-native/normalize-colors';\nvar processColor = color => {\n if (color === undefined || color === null) {\n return color;\n }\n\n // convert number and hex\n var int32Color = normalizeColor(color);\n if (int32Color === undefined || int32Color === null) {\n return undefined;\n }\n int32Color = (int32Color << 24 | int32Color >>> 8) >>> 0;\n return int32Color;\n};\nexport default processColor;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n\n'use strict';\n\nimport Dimensions from '../Dimensions';\nimport { useEffect, useState } from 'react';\nexport default function useWindowDimensions() {\n var _useState = useState(() => Dimensions.get('window')),\n dims = _useState[0],\n setDims = _useState[1];\n useEffect(() => {\n function handleChange(_ref) {\n var window = _ref.window;\n if (window != null) {\n setDims(window);\n }\n }\n Dimensions.addEventListener('change', handleChange);\n // We might have missed an update between calling `get` in render and\n // `addEventListener` in this handler, so we set it here. If there was\n // no change, React will filter out this update as a no-op.\n setDims(Dimensions.get('window'));\n return () => {\n Dimensions.removeEventListener('change', handleChange);\n };\n }, []);\n return dims;\n}","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport { findDOMNode } from 'react-dom';\n\n/**\n * @deprecated imperatively finding the DOM element of a react component has been deprecated in React 18.\n * You should use ref properties on the component instead.\n */\nvar findNodeHandle = component => {\n var node;\n try {\n node = findDOMNode(component);\n } catch (e) {}\n return node;\n};\nexport default findNodeHandle;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport { unmountComponentAtNode } from 'react-dom';\nexport default unmountComponentAtNode;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport { hydrate as domLegacyHydrate, render as domLegacyRender } from 'react-dom';\nimport { createRoot as domCreateRoot, hydrateRoot as domHydrateRoot } from 'react-dom/client';\nimport unmountComponentAtNode from '../unmountComponentAtNode';\nimport { createSheet } from '../StyleSheet/dom';\nexport function hydrate(element, root) {\n createSheet(root);\n return domHydrateRoot(root, element);\n}\nexport function render(element, root) {\n createSheet(root);\n var reactRoot = domCreateRoot(root);\n reactRoot.render(element);\n return reactRoot;\n}\nexport function hydrateLegacy(element, root, callback) {\n createSheet(root);\n domLegacyHydrate(element, root, callback);\n return {\n unmount: function unmount() {\n return unmountComponentAtNode(root);\n }\n };\n}\nexport default function renderLegacy(element, root, callback) {\n createSheet(root);\n domLegacyRender(element, root, callback);\n return {\n unmount: function unmount() {\n return unmountComponentAtNode(root);\n }\n };\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport canUseDOM from '../../modules/canUseDom';\nfunction isScreenReaderEnabled() {\n return new Promise((resolve, reject) => {\n resolve(true);\n });\n}\nvar prefersReducedMotionMedia = canUseDOM && typeof window.matchMedia === 'function' ? window.matchMedia('(prefers-reduced-motion: reduce)') : null;\nfunction isReduceMotionEnabled() {\n return new Promise((resolve, reject) => {\n resolve(prefersReducedMotionMedia ? prefersReducedMotionMedia.matches : true);\n });\n}\nfunction addChangeListener(fn) {\n if (prefersReducedMotionMedia != null) {\n prefersReducedMotionMedia.addEventListener != null ? prefersReducedMotionMedia.addEventListener('change', fn) : prefersReducedMotionMedia.addListener(fn);\n }\n}\nfunction removeChangeListener(fn) {\n if (prefersReducedMotionMedia != null) {\n prefersReducedMotionMedia.removeEventListener != null ? prefersReducedMotionMedia.removeEventListener('change', fn) : prefersReducedMotionMedia.removeListener(fn);\n }\n}\nvar handlers = {};\nvar AccessibilityInfo = {\n /**\n * Query whether a screen reader is currently enabled.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when a screen reader is enabled and `false` otherwise.\n */\n isScreenReaderEnabled,\n /**\n * Query whether the user prefers reduced motion.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when a screen reader is enabled and `false` otherwise.\n */\n isReduceMotionEnabled,\n /**\n * Deprecated\n */\n fetch: isScreenReaderEnabled,\n /**\n * Add an event handler. Supported events: reduceMotionChanged\n */\n addEventListener: function addEventListener(eventName, handler) {\n if (eventName === 'reduceMotionChanged') {\n if (!prefersReducedMotionMedia) {\n return;\n }\n var listener = event => {\n handler(event.matches);\n };\n addChangeListener(listener);\n handlers[handler] = listener;\n }\n return {\n remove: () => AccessibilityInfo.removeEventListener(eventName, handler)\n };\n },\n /**\n * Set accessibility focus to a react component.\n */\n setAccessibilityFocus: function setAccessibilityFocus(reactTag) {},\n /**\n * Post a string to be announced by the screen reader.\n */\n announceForAccessibility: function announceForAccessibility(announcement) {},\n /**\n * Remove an event handler.\n */\n removeEventListener: function removeEventListener(eventName, handler) {\n if (eventName === 'reduceMotionChanged') {\n var listener = handlers[handler];\n if (!listener || !prefersReducedMotionMedia) {\n return;\n }\n removeChangeListener(listener);\n }\n return;\n }\n};\nexport default AccessibilityInfo;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nclass Alert {\n static alert() {}\n}\nexport default Alert;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport canUseDOM from '../../modules/canUseDom';\nfunction getQuery() {\n return canUseDOM && window.matchMedia != null ? window.matchMedia('(prefers-color-scheme: dark)') : null;\n}\nvar query = getQuery();\nvar listenerMapping = new WeakMap();\nvar Appearance = {\n getColorScheme() {\n return query && query.matches ? 'dark' : 'light';\n },\n addChangeListener(listener) {\n var mappedListener = listenerMapping.get(listener);\n if (!mappedListener) {\n mappedListener = _ref => {\n var matches = _ref.matches;\n listener({\n colorScheme: matches ? 'dark' : 'light'\n });\n };\n listenerMapping.set(listener, mappedListener);\n }\n if (query) {\n query.addListener(mappedListener);\n }\n function remove() {\n var mappedListener = listenerMapping.get(listener);\n if (query && mappedListener) {\n query.removeListener(mappedListener);\n }\n listenerMapping.delete(listener);\n }\n return {\n remove\n };\n }\n};\nexport default Appearance;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar RootTagContext = /*#__PURE__*/React.createContext(null);\nvar AppContainer = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var children = props.children,\n WrapperComponent = props.WrapperComponent;\n var innerView = /*#__PURE__*/React.createElement(View, {\n children: children,\n key: 1,\n style: styles.appContainer\n });\n if (WrapperComponent) {\n innerView = /*#__PURE__*/React.createElement(WrapperComponent, null, innerView);\n }\n return /*#__PURE__*/React.createElement(RootTagContext.Provider, {\n value: props.rootTag\n }, /*#__PURE__*/React.createElement(View, {\n ref: forwardedRef,\n style: styles.appContainer\n }, innerView));\n});\nAppContainer.displayName = 'AppContainer';\nexport default AppContainer;\nvar styles = StyleSheet.create({\n appContainer: {\n flex: 1,\n pointerEvents: 'box-none'\n }\n});","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport invariant from 'fbjs/lib/invariant';\nimport unmountComponentAtNode from '../unmountComponentAtNode';\nimport renderApplication, { getApplication as _getApplication } from './renderApplication';\nvar emptyObject = {};\nvar runnables = {};\nvar componentProviderInstrumentationHook = component => component();\nvar wrapperComponentProvider;\n\n/**\n * `AppRegistry` is the JS entry point to running all React Native apps.\n */\nexport default class AppRegistry {\n static getAppKeys() {\n return Object.keys(runnables);\n }\n static getApplication(appKey, appParameters) {\n invariant(runnables[appKey] && runnables[appKey].getApplication, \"Application \" + appKey + \" has not been registered. \" + 'This is either due to an import error during initialization or failure to call AppRegistry.registerComponent.');\n return runnables[appKey].getApplication(appParameters);\n }\n static registerComponent(appKey, componentProvider) {\n runnables[appKey] = {\n getApplication: appParameters => _getApplication(componentProviderInstrumentationHook(componentProvider), appParameters ? appParameters.initialProps : emptyObject, wrapperComponentProvider && wrapperComponentProvider(appParameters)),\n run: appParameters => renderApplication(componentProviderInstrumentationHook(componentProvider), wrapperComponentProvider && wrapperComponentProvider(appParameters), appParameters.callback, {\n hydrate: appParameters.hydrate || false,\n initialProps: appParameters.initialProps || emptyObject,\n mode: appParameters.mode || 'concurrent',\n rootTag: appParameters.rootTag\n })\n };\n return appKey;\n }\n static registerConfig(config) {\n config.forEach(_ref => {\n var appKey = _ref.appKey,\n component = _ref.component,\n run = _ref.run;\n if (run) {\n AppRegistry.registerRunnable(appKey, run);\n } else {\n invariant(component, 'No component provider passed in');\n AppRegistry.registerComponent(appKey, component);\n }\n });\n }\n\n // TODO: fix style sheet creation when using this method\n static registerRunnable(appKey, run) {\n runnables[appKey] = {\n run\n };\n return appKey;\n }\n static runApplication(appKey, appParameters) {\n var isDevelopment = process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test';\n if (isDevelopment) {\n var params = _objectSpread({}, appParameters);\n params.rootTag = \"#\" + params.rootTag.id;\n console.log(\"Running application \\\"\" + appKey + \"\\\" with appParams:\\n\", params, \"\\nDevelopment-level warnings: \" + (isDevelopment ? 'ON' : 'OFF') + \".\" + (\"\\nPerformance optimizations: \" + (isDevelopment ? 'OFF' : 'ON') + \".\"));\n }\n invariant(runnables[appKey] && runnables[appKey].run, \"Application \\\"\" + appKey + \"\\\" has not been registered. \" + 'This is either due to an import error during initialization or failure to call AppRegistry.registerComponent.');\n return runnables[appKey].run(appParameters);\n }\n static setComponentProviderInstrumentationHook(hook) {\n componentProviderInstrumentationHook = hook;\n }\n static setWrapperComponentProvider(provider) {\n wrapperComponentProvider = provider;\n }\n static unmountApplicationComponentAtRootTag(rootTag) {\n unmountComponentAtNode(rootTag);\n }\n}","import _extends from \"@babel/runtime/helpers/extends\";\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport AppContainer from './AppContainer';\nimport invariant from 'fbjs/lib/invariant';\nimport renderLegacy, { hydrateLegacy, render, hydrate } from '../render';\nimport StyleSheet from '../StyleSheet';\nimport React from 'react';\nexport default function renderApplication(RootComponent, WrapperComponent, callback, options) {\n var shouldHydrate = options.hydrate,\n initialProps = options.initialProps,\n mode = options.mode,\n rootTag = options.rootTag;\n var renderFn = shouldHydrate ? mode === 'concurrent' ? hydrate : hydrateLegacy : mode === 'concurrent' ? render : renderLegacy;\n invariant(rootTag, 'Expect to have a valid rootTag, instead got ', rootTag);\n return renderFn( /*#__PURE__*/React.createElement(AppContainer, {\n WrapperComponent: WrapperComponent,\n ref: callback,\n rootTag: rootTag\n }, /*#__PURE__*/React.createElement(RootComponent, initialProps)), rootTag);\n}\nexport function getApplication(RootComponent, initialProps, WrapperComponent) {\n var element = /*#__PURE__*/React.createElement(AppContainer, {\n WrapperComponent: WrapperComponent,\n rootTag: {}\n }, /*#__PURE__*/React.createElement(RootComponent, initialProps));\n // Don't escape CSS text\n var getStyleElement = props => {\n var sheet = StyleSheet.getSheet();\n return /*#__PURE__*/React.createElement(\"style\", _extends({}, props, {\n dangerouslySetInnerHTML: {\n __html: sheet.textContent\n },\n id: sheet.id\n }));\n };\n return {\n element,\n getStyleElement\n };\n}","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport invariant from 'fbjs/lib/invariant';\nimport EventEmitter from '../../vendor/react-native/vendor/emitter/EventEmitter';\nimport canUseDOM from '../../modules/canUseDom';\n\n// Android 4.4 browser\nvar isPrefixed = canUseDOM && !document.hasOwnProperty('hidden') && document.hasOwnProperty('webkitHidden');\nvar EVENT_TYPES = ['change', 'memoryWarning'];\nvar VISIBILITY_CHANGE_EVENT = isPrefixed ? 'webkitvisibilitychange' : 'visibilitychange';\nvar VISIBILITY_STATE_PROPERTY = isPrefixed ? 'webkitVisibilityState' : 'visibilityState';\nvar AppStates = {\n BACKGROUND: 'background',\n ACTIVE: 'active'\n};\nvar changeEmitter = null;\nexport default class AppState {\n static get currentState() {\n if (!AppState.isAvailable) {\n return AppStates.ACTIVE;\n }\n switch (document[VISIBILITY_STATE_PROPERTY]) {\n case 'hidden':\n case 'prerender':\n case 'unloaded':\n return AppStates.BACKGROUND;\n default:\n return AppStates.ACTIVE;\n }\n }\n static addEventListener(type, handler) {\n if (AppState.isAvailable) {\n invariant(EVENT_TYPES.indexOf(type) !== -1, 'Trying to subscribe to unknown event: \"%s\"', type);\n if (type === 'change') {\n if (!changeEmitter) {\n changeEmitter = new EventEmitter();\n document.addEventListener(VISIBILITY_CHANGE_EVENT, () => {\n if (changeEmitter) {\n changeEmitter.emit('change', AppState.currentState);\n }\n }, false);\n }\n return changeEmitter.addListener(type, handler);\n }\n }\n }\n}\nAppState.isAvailable = canUseDOM && document[VISIBILITY_STATE_PROPERTY];","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction emptyFunction() {}\nvar BackHandler = {\n exitApp: emptyFunction,\n addEventListener() {\n console.error('BackHandler is not supported on web and should not be used.');\n return {\n remove: emptyFunction\n };\n },\n removeEventListener: emptyFunction\n};\nexport default BackHandler;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar clipboardAvailable;\nexport default class Clipboard {\n static isAvailable() {\n if (clipboardAvailable === undefined) {\n clipboardAvailable = typeof document.queryCommandSupported === 'function' && document.queryCommandSupported('copy');\n }\n return clipboardAvailable;\n }\n static getString() {\n return Promise.resolve('');\n }\n static setString(text) {\n var success = false;\n var body = document.body;\n if (body) {\n // add the text to a hidden node\n var node = document.createElement('span');\n node.textContent = text;\n node.style.opacity = '0';\n node.style.position = 'absolute';\n node.style.whiteSpace = 'pre-wrap';\n node.style.userSelect = 'auto';\n body.appendChild(node);\n\n // select the text\n var selection = window.getSelection();\n selection.removeAllRanges();\n var range = document.createRange();\n range.selectNodeContents(node);\n selection.addRange(range);\n\n // attempt to copy\n try {\n document.execCommand('copy');\n success = true;\n } catch (e) {}\n\n // remove selection and node\n selection.removeAllRanges();\n body.removeChild(node);\n }\n return success;\n }\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport Platform from '../../../exports/Platform';\nimport UIManager from '../../../exports/UIManager';\nvar __DEV__ = process.env.NODE_ENV !== 'production';\nfunction configureNext(config, onAnimationDidEnd) {\n if (!Platform.isTesting) {\n UIManager.configureNextLayoutAnimation(config, onAnimationDidEnd !== null && onAnimationDidEnd !== void 0 ? onAnimationDidEnd : function () {}, function () {} /* unused onError */);\n }\n}\n\nfunction create(duration, type, property) {\n return {\n duration,\n create: {\n type,\n property\n },\n update: {\n type\n },\n delete: {\n type,\n property\n }\n };\n}\nvar Presets = {\n easeInEaseOut: create(300, 'easeInEaseOut', 'opacity'),\n linear: create(500, 'linear', 'opacity'),\n spring: {\n duration: 700,\n create: {\n type: 'linear',\n property: 'opacity'\n },\n update: {\n type: 'spring',\n springDamping: 0.4\n },\n delete: {\n type: 'linear',\n property: 'opacity'\n }\n }\n};\n\n/**\n * Automatically animates views to their new positions when the\n * next layout happens.\n *\n * A common way to use this API is to call it before calling `setState`.\n *\n * Note that in order to get this to work on **Android** you need to set the following flags via `UIManager`:\n *\n * UIManager.setLayoutAnimationEnabledExperimental && UIManager.setLayoutAnimationEnabledExperimental(true);\n */\nvar LayoutAnimation = {\n /**\n * Schedules an animation to happen on the next layout.\n *\n * @param config Specifies animation properties:\n *\n * - `duration` in milliseconds\n * - `create`, `AnimationConfig` for animating in new views\n * - `update`, `AnimationConfig` for animating views that have been updated\n *\n * @param onAnimationDidEnd Called when the animation finished.\n * Only supported on iOS.\n * @param onError Called on error. Only supported on iOS.\n */\n configureNext,\n /**\n * Helper for creating a config for `configureNext`.\n */\n create,\n Types: Object.freeze({\n spring: 'spring',\n linear: 'linear',\n easeInEaseOut: 'easeInEaseOut',\n easeIn: 'easeIn',\n easeOut: 'easeOut',\n keyboard: 'keyboard'\n }),\n Properties: Object.freeze({\n opacity: 'opacity',\n scaleX: 'scaleX',\n scaleY: 'scaleY',\n scaleXY: 'scaleXY'\n }),\n checkConfig() {\n console.error('LayoutAnimation.checkConfig(...) has been disabled.');\n },\n Presets,\n easeInEaseOut: configureNext.bind(null, Presets.easeInEaseOut),\n linear: configureNext.bind(null, Presets.linear),\n spring: configureNext.bind(null, Presets.spring)\n};\nexport default LayoutAnimation;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport LayoutAnimation from '../../vendor/react-native/LayoutAnimation';\nexport default LayoutAnimation;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport invariant from 'fbjs/lib/invariant';\nimport canUseDOM from '../../modules/canUseDom';\nvar initialURL = canUseDOM ? window.location.href : '';\nclass Linking {\n constructor() {\n this._eventCallbacks = {};\n }\n /**\n * An object mapping of event name\n * and all the callbacks subscribing to it\n */\n _dispatchEvent(event) {\n for (var _len = arguments.length, data = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n data[_key - 1] = arguments[_key];\n }\n var listeners = this._eventCallbacks[event];\n if (listeners != null && Array.isArray(listeners)) {\n listeners.map(listener => {\n listener(...data);\n });\n }\n }\n\n /**\n * Adds a event listener for the specified event. The callback will be called when the\n * said event is dispatched.\n */\n addEventListener(eventType, callback) {\n var _this = this;\n if (!_this._eventCallbacks[eventType]) {\n _this._eventCallbacks[eventType] = [callback];\n }\n _this._eventCallbacks[eventType].push(callback);\n return {\n remove() {\n var callbacks = _this._eventCallbacks[eventType];\n var filteredCallbacks = callbacks.filter(c => c.toString() !== callback.toString());\n _this._eventCallbacks[eventType] = filteredCallbacks;\n }\n };\n }\n\n /**\n * Removes a previously added event listener for the specified event. The callback must\n * be the same object as the one passed to `addEventListener`.\n */\n removeEventListener(eventType, callback) {\n console.error(\"Linking.removeEventListener('\" + eventType + \"', ...): Method has been \" + 'deprecated. Please instead use `remove()` on the subscription ' + 'returned by `Linking.addEventListener`.');\n var callbacks = this._eventCallbacks[eventType];\n var filteredCallbacks = callbacks.filter(c => c.toString() !== callback.toString());\n this._eventCallbacks[eventType] = filteredCallbacks;\n }\n canOpenURL() {\n return Promise.resolve(true);\n }\n getInitialURL() {\n return Promise.resolve(initialURL);\n }\n\n /**\n * Try to open the given url in a secure fashion. The method returns a Promise object.\n * If a target is passed (including undefined) that target will be used, otherwise '_blank'.\n * If the url opens, the promise is resolved. If not, the promise is rejected.\n * Dispatches the `onOpen` event if `url` is opened successfully.\n */\n openURL(url, target) {\n if (arguments.length === 1) {\n target = '_blank';\n }\n try {\n open(url, target);\n this._dispatchEvent('onOpen', url);\n return Promise.resolve();\n } catch (e) {\n return Promise.reject(e);\n }\n }\n _validateURL(url) {\n invariant(typeof url === 'string', 'Invalid URL: should be a string. Was: ' + url);\n invariant(url, 'Invalid URL: cannot be empty');\n }\n}\nvar open = (url, target) => {\n if (canUseDOM) {\n var urlToOpen = new URL(url, window.location).toString();\n if (urlToOpen.indexOf('tel:') === 0) {\n window.location = urlToOpen;\n } else {\n window.open(urlToOpen, target, 'noopener');\n }\n }\n};\nexport default new Linking();","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nvar TouchHistoryMath = {\n /**\n * This code is optimized and not intended to look beautiful. This allows\n * computing of touch centroids that have moved after `touchesChangedAfter`\n * timeStamp. You can compute the current centroid involving all touches\n * moves after `touchesChangedAfter`, or you can compute the previous\n * centroid of all touches that were moved after `touchesChangedAfter`.\n *\n * @param {TouchHistoryMath} touchHistory Standard Responder touch track\n * data.\n * @param {number} touchesChangedAfter timeStamp after which moved touches\n * are considered \"actively moving\" - not just \"active\".\n * @param {boolean} isXAxis Consider `x` dimension vs. `y` dimension.\n * @param {boolean} ofCurrent Compute current centroid for actively moving\n * touches vs. previous centroid of now actively moving touches.\n * @return {number} value of centroid in specified dimension.\n */\n centroidDimension: function centroidDimension(touchHistory, touchesChangedAfter, isXAxis, ofCurrent) {\n var touchBank = touchHistory.touchBank;\n var total = 0;\n var count = 0;\n var oneTouchData = touchHistory.numberActiveTouches === 1 ? touchHistory.touchBank[touchHistory.indexOfSingleActiveTouch] : null;\n if (oneTouchData !== null) {\n if (oneTouchData.touchActive && oneTouchData.currentTimeStamp > touchesChangedAfter) {\n total += ofCurrent && isXAxis ? oneTouchData.currentPageX : ofCurrent && !isXAxis ? oneTouchData.currentPageY : !ofCurrent && isXAxis ? oneTouchData.previousPageX : oneTouchData.previousPageY;\n count = 1;\n }\n } else {\n for (var i = 0; i < touchBank.length; i++) {\n var touchTrack = touchBank[i];\n if (touchTrack !== null && touchTrack !== undefined && touchTrack.touchActive && touchTrack.currentTimeStamp >= touchesChangedAfter) {\n var toAdd = void 0; // Yuck, program temporarily in invalid state.\n if (ofCurrent && isXAxis) {\n toAdd = touchTrack.currentPageX;\n } else if (ofCurrent && !isXAxis) {\n toAdd = touchTrack.currentPageY;\n } else if (!ofCurrent && isXAxis) {\n toAdd = touchTrack.previousPageX;\n } else {\n toAdd = touchTrack.previousPageY;\n }\n total += toAdd;\n count++;\n }\n }\n }\n return count > 0 ? total / count : TouchHistoryMath.noCentroid;\n },\n currentCentroidXOfTouchesChangedAfter: function currentCentroidXOfTouchesChangedAfter(touchHistory, touchesChangedAfter) {\n return TouchHistoryMath.centroidDimension(touchHistory, touchesChangedAfter, true,\n // isXAxis\n true // ofCurrent\n );\n },\n\n currentCentroidYOfTouchesChangedAfter: function currentCentroidYOfTouchesChangedAfter(touchHistory, touchesChangedAfter) {\n return TouchHistoryMath.centroidDimension(touchHistory, touchesChangedAfter, false,\n // isXAxis\n true // ofCurrent\n );\n },\n\n previousCentroidXOfTouchesChangedAfter: function previousCentroidXOfTouchesChangedAfter(touchHistory, touchesChangedAfter) {\n return TouchHistoryMath.centroidDimension(touchHistory, touchesChangedAfter, true,\n // isXAxis\n false // ofCurrent\n );\n },\n\n previousCentroidYOfTouchesChangedAfter: function previousCentroidYOfTouchesChangedAfter(touchHistory, touchesChangedAfter) {\n return TouchHistoryMath.centroidDimension(touchHistory, touchesChangedAfter, false,\n // isXAxis\n false // ofCurrent\n );\n },\n\n currentCentroidX: function currentCentroidX(touchHistory) {\n return TouchHistoryMath.centroidDimension(touchHistory, 0,\n // touchesChangedAfter\n true,\n // isXAxis\n true // ofCurrent\n );\n },\n\n currentCentroidY: function currentCentroidY(touchHistory) {\n return TouchHistoryMath.centroidDimension(touchHistory, 0,\n // touchesChangedAfter\n false,\n // isXAxis\n true // ofCurrent\n );\n },\n\n noCentroid: -1\n};\nexport default TouchHistoryMath;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport InteractionManager from '../../../exports/InteractionManager';\nimport TouchHistoryMath from '../TouchHistoryMath';\nvar currentCentroidXOfTouchesChangedAfter = TouchHistoryMath.currentCentroidXOfTouchesChangedAfter;\nvar currentCentroidYOfTouchesChangedAfter = TouchHistoryMath.currentCentroidYOfTouchesChangedAfter;\nvar previousCentroidXOfTouchesChangedAfter = TouchHistoryMath.previousCentroidXOfTouchesChangedAfter;\nvar previousCentroidYOfTouchesChangedAfter = TouchHistoryMath.previousCentroidYOfTouchesChangedAfter;\nvar currentCentroidX = TouchHistoryMath.currentCentroidX;\nvar currentCentroidY = TouchHistoryMath.currentCentroidY;\n\n/**\n * `PanResponder` reconciles several touches into a single gesture. It makes\n * single-touch gestures resilient to extra touches, and can be used to\n * recognize simple multi-touch gestures.\n *\n * By default, `PanResponder` holds an `InteractionManager` handle to block\n * long-running JS events from interrupting active gestures.\n *\n * It provides a predictable wrapper of the responder handlers provided by the\n * [gesture responder system](docs/gesture-responder-system.html).\n * For each handler, it provides a new `gestureState` object alongside the\n * native event object:\n *\n * ```\n * onPanResponderMove: (event, gestureState) => {}\n * ```\n *\n * A native event is a synthetic touch event with the following form:\n *\n * - `nativeEvent`\n * + `changedTouches` - Array of all touch events that have changed since the last event\n * + `identifier` - The ID of the touch\n * + `locationX` - The X position of the touch, relative to the element\n * + `locationY` - The Y position of the touch, relative to the element\n * + `pageX` - The X position of the touch, relative to the root element\n * + `pageY` - The Y position of the touch, relative to the root element\n * + `target` - The node id of the element receiving the touch event\n * + `timestamp` - A time identifier for the touch, useful for velocity calculation\n * + `touches` - Array of all current touches on the screen\n *\n * A `gestureState` object has the following:\n *\n * - `stateID` - ID of the gestureState- persisted as long as there at least\n * one touch on screen\n * - `moveX` - the latest screen coordinates of the recently-moved touch\n * - `moveY` - the latest screen coordinates of the recently-moved touch\n * - `x0` - the screen coordinates of the responder grant\n * - `y0` - the screen coordinates of the responder grant\n * - `dx` - accumulated distance of the gesture since the touch started\n * - `dy` - accumulated distance of the gesture since the touch started\n * - `vx` - current velocity of the gesture\n * - `vy` - current velocity of the gesture\n * - `numberActiveTouches` - Number of touches currently on screen\n *\n * ### Basic Usage\n *\n * ```\n * componentWillMount: function() {\n * this._panResponder = PanResponder.create({\n * // Ask to be the responder:\n * onStartShouldSetPanResponder: (evt, gestureState) => true,\n * onStartShouldSetPanResponderCapture: (evt, gestureState) => true,\n * onMoveShouldSetPanResponder: (evt, gestureState) => true,\n * onMoveShouldSetPanResponderCapture: (evt, gestureState) => true,\n *\n * onPanResponderGrant: (evt, gestureState) => {\n * // The gesture has started. Show visual feedback so the user knows\n * // what is happening!\n *\n * // gestureState.d{x,y} will be set to zero now\n * },\n * onPanResponderMove: (evt, gestureState) => {\n * // The most recent move distance is gestureState.move{X,Y}\n *\n * // The accumulated gesture distance since becoming responder is\n * // gestureState.d{x,y}\n * },\n * onPanResponderTerminationRequest: (evt, gestureState) => true,\n * onPanResponderRelease: (evt, gestureState) => {\n * // The user has released all touches while this view is the\n * // responder. This typically means a gesture has succeeded\n * },\n * onPanResponderTerminate: (evt, gestureState) => {\n * // Another component has become the responder, so this gesture\n * // should be cancelled\n * },\n * onShouldBlockNativeResponder: (evt, gestureState) => {\n * // Returns whether this component should block native components from becoming the JS\n * // responder. Returns true by default. Is currently only supported on android.\n * return true;\n * },\n * });\n * },\n *\n * render: function() {\n * return (\n * \n * );\n * },\n *\n * ```\n *\n * ### Working Example\n *\n * To see it in action, try the\n * [PanResponder example in RNTester](https://github.com/facebook/react-native/blob/master/RNTester/js/PanResponderExample.js)\n */\n\nvar PanResponder = {\n /**\n *\n * A graphical explanation of the touch data flow:\n *\n * +----------------------------+ +--------------------------------+\n * | ResponderTouchHistoryStore | |TouchHistoryMath |\n * +----------------------------+ +----------+---------------------+\n * |Global store of touchHistory| |Allocation-less math util |\n * |including activeness, start | |on touch history (centroids |\n * |position, prev/cur position.| |and multitouch movement etc) |\n * | | | |\n * +----^-----------------------+ +----^---------------------------+\n * | |\n * | (records relevant history |\n * | of touches relevant for |\n * | implementing higher level |\n * | gestures) |\n * | |\n * +----+-----------------------+ +----|---------------------------+\n * | ResponderEventPlugin | | | Your App/Component |\n * +----------------------------+ +----|---------------------------+\n * |Negotiates which view gets | Low level | | High level |\n * |onResponderMove events. | events w/ | +-+-------+ events w/ |\n * |Also records history into | touchHistory| | Pan | multitouch + |\n * |ResponderTouchHistoryStore. +---------------->Responder+-----> accumulative|\n * +----------------------------+ attached to | | | distance and |\n * each event | +---------+ velocity. |\n * | |\n * | |\n * +--------------------------------+\n *\n *\n *\n * Gesture that calculates cumulative movement over time in a way that just\n * \"does the right thing\" for multiple touches. The \"right thing\" is very\n * nuanced. When moving two touches in opposite directions, the cumulative\n * distance is zero in each dimension. When two touches move in parallel five\n * pixels in the same direction, the cumulative distance is five, not ten. If\n * two touches start, one moves five in a direction, then stops and the other\n * touch moves fives in the same direction, the cumulative distance is ten.\n *\n * This logic requires a kind of processing of time \"clusters\" of touch events\n * so that two touch moves that essentially occur in parallel but move every\n * other frame respectively, are considered part of the same movement.\n *\n * Explanation of some of the non-obvious fields:\n *\n * - moveX/moveY: If no move event has been observed, then `(moveX, moveY)` is\n * invalid. If a move event has been observed, `(moveX, moveY)` is the\n * centroid of the most recently moved \"cluster\" of active touches.\n * (Currently all move have the same timeStamp, but later we should add some\n * threshold for what is considered to be \"moving\"). If a palm is\n * accidentally counted as a touch, but a finger is moving greatly, the palm\n * will move slightly, but we only want to count the single moving touch.\n * - x0/y0: Centroid location (non-cumulative) at the time of becoming\n * responder.\n * - dx/dy: Cumulative touch distance - not the same thing as sum of each touch\n * distance. Accounts for touch moves that are clustered together in time,\n * moving the same direction. Only valid when currently responder (otherwise,\n * it only represents the drag distance below the threshold).\n * - vx/vy: Velocity.\n */\n\n _initializeGestureState(gestureState) {\n gestureState.moveX = 0;\n gestureState.moveY = 0;\n gestureState.x0 = 0;\n gestureState.y0 = 0;\n gestureState.dx = 0;\n gestureState.dy = 0;\n gestureState.vx = 0;\n gestureState.vy = 0;\n gestureState.numberActiveTouches = 0;\n // All `gestureState` accounts for timeStamps up until:\n gestureState._accountsForMovesUpTo = 0;\n },\n /**\n * This is nuanced and is necessary. It is incorrect to continuously take all\n * active *and* recently moved touches, find the centroid, and track how that\n * result changes over time. Instead, we must take all recently moved\n * touches, and calculate how the centroid has changed just for those\n * recently moved touches, and append that change to an accumulator. This is\n * to (at least) handle the case where the user is moving three fingers, and\n * then one of the fingers stops but the other two continue.\n *\n * This is very different than taking all of the recently moved touches and\n * storing their centroid as `dx/dy`. For correctness, we must *accumulate\n * changes* in the centroid of recently moved touches.\n *\n * There is also some nuance with how we handle multiple moved touches in a\n * single event. With the way `ReactNativeEventEmitter` dispatches touches as\n * individual events, multiple touches generate two 'move' events, each of\n * them triggering `onResponderMove`. But with the way `PanResponder` works,\n * all of the gesture inference is performed on the first dispatch, since it\n * looks at all of the touches (even the ones for which there hasn't been a\n * native dispatch yet). Therefore, `PanResponder` does not call\n * `onResponderMove` passed the first dispatch. This diverges from the\n * typical responder callback pattern (without using `PanResponder`), but\n * avoids more dispatches than necessary.\n */\n _updateGestureStateOnMove(gestureState, touchHistory) {\n gestureState.numberActiveTouches = touchHistory.numberActiveTouches;\n gestureState.moveX = currentCentroidXOfTouchesChangedAfter(touchHistory, gestureState._accountsForMovesUpTo);\n gestureState.moveY = currentCentroidYOfTouchesChangedAfter(touchHistory, gestureState._accountsForMovesUpTo);\n var movedAfter = gestureState._accountsForMovesUpTo;\n var prevX = previousCentroidXOfTouchesChangedAfter(touchHistory, movedAfter);\n var x = currentCentroidXOfTouchesChangedAfter(touchHistory, movedAfter);\n var prevY = previousCentroidYOfTouchesChangedAfter(touchHistory, movedAfter);\n var y = currentCentroidYOfTouchesChangedAfter(touchHistory, movedAfter);\n var nextDX = gestureState.dx + (x - prevX);\n var nextDY = gestureState.dy + (y - prevY);\n\n // TODO: This must be filtered intelligently.\n var dt = touchHistory.mostRecentTimeStamp - gestureState._accountsForMovesUpTo;\n gestureState.vx = (nextDX - gestureState.dx) / dt;\n gestureState.vy = (nextDY - gestureState.dy) / dt;\n gestureState.dx = nextDX;\n gestureState.dy = nextDY;\n gestureState._accountsForMovesUpTo = touchHistory.mostRecentTimeStamp;\n },\n /**\n * @param {object} config Enhanced versions of all of the responder callbacks\n * that provide not only the typical `ResponderSyntheticEvent`, but also the\n * `PanResponder` gesture state. Simply replace the word `Responder` with\n * `PanResponder` in each of the typical `onResponder*` callbacks. For\n * example, the `config` object would look like:\n *\n * - `onMoveShouldSetPanResponder: (e, gestureState) => {...}`\n * - `onMoveShouldSetPanResponderCapture: (e, gestureState) => {...}`\n * - `onStartShouldSetPanResponder: (e, gestureState) => {...}`\n * - `onStartShouldSetPanResponderCapture: (e, gestureState) => {...}`\n * - `onPanResponderReject: (e, gestureState) => {...}`\n * - `onPanResponderGrant: (e, gestureState) => {...}`\n * - `onPanResponderStart: (e, gestureState) => {...}`\n * - `onPanResponderEnd: (e, gestureState) => {...}`\n * - `onPanResponderRelease: (e, gestureState) => {...}`\n * - `onPanResponderMove: (e, gestureState) => {...}`\n * - `onPanResponderTerminate: (e, gestureState) => {...}`\n * - `onPanResponderTerminationRequest: (e, gestureState) => {...}`\n * - `onShouldBlockNativeResponder: (e, gestureState) => {...}`\n *\n * In general, for events that have capture equivalents, we update the\n * gestureState once in the capture phase and can use it in the bubble phase\n * as well.\n *\n * Be careful with onStartShould* callbacks. They only reflect updated\n * `gestureState` for start/end events that bubble/capture to the Node.\n * Once the node is the responder, you can rely on every start/end event\n * being processed by the gesture and `gestureState` being updated\n * accordingly. (numberActiveTouches) may not be totally accurate unless you\n * are the responder.\n */\n create(config) {\n var interactionState = {\n handle: null,\n shouldCancelClick: false,\n timeout: null\n };\n var gestureState = {\n // Useful for debugging\n stateID: Math.random(),\n moveX: 0,\n moveY: 0,\n x0: 0,\n y0: 0,\n dx: 0,\n dy: 0,\n vx: 0,\n vy: 0,\n numberActiveTouches: 0,\n _accountsForMovesUpTo: 0\n };\n var panHandlers = {\n onStartShouldSetResponder(event) {\n return config.onStartShouldSetPanResponder == null ? false : config.onStartShouldSetPanResponder(event, gestureState);\n },\n onMoveShouldSetResponder(event) {\n return config.onMoveShouldSetPanResponder == null ? false : config.onMoveShouldSetPanResponder(event, gestureState);\n },\n onStartShouldSetResponderCapture(event) {\n // TODO: Actually, we should reinitialize the state any time\n // touches.length increases from 0 active to > 0 active.\n if (event.nativeEvent.touches.length === 1) {\n PanResponder._initializeGestureState(gestureState);\n }\n gestureState.numberActiveTouches = event.touchHistory.numberActiveTouches;\n return config.onStartShouldSetPanResponderCapture != null ? config.onStartShouldSetPanResponderCapture(event, gestureState) : false;\n },\n onMoveShouldSetResponderCapture(event) {\n var touchHistory = event.touchHistory;\n // Responder system incorrectly dispatches should* to current responder\n // Filter out any touch moves past the first one - we would have\n // already processed multi-touch geometry during the first event.\n if (gestureState._accountsForMovesUpTo === touchHistory.mostRecentTimeStamp) {\n return false;\n }\n PanResponder._updateGestureStateOnMove(gestureState, touchHistory);\n return config.onMoveShouldSetPanResponderCapture ? config.onMoveShouldSetPanResponderCapture(event, gestureState) : false;\n },\n onResponderGrant(event) {\n if (!interactionState.handle) {\n interactionState.handle = InteractionManager.createInteractionHandle();\n }\n if (interactionState.timeout) {\n clearInteractionTimeout(interactionState);\n }\n interactionState.shouldCancelClick = true;\n gestureState.x0 = currentCentroidX(event.touchHistory);\n gestureState.y0 = currentCentroidY(event.touchHistory);\n gestureState.dx = 0;\n gestureState.dy = 0;\n if (config.onPanResponderGrant) {\n config.onPanResponderGrant(event, gestureState);\n }\n // TODO: t7467124 investigate if this can be removed\n return config.onShouldBlockNativeResponder == null ? true : config.onShouldBlockNativeResponder(event, gestureState);\n },\n onResponderReject(event) {\n clearInteractionHandle(interactionState, config.onPanResponderReject, event, gestureState);\n },\n onResponderRelease(event) {\n clearInteractionHandle(interactionState, config.onPanResponderRelease, event, gestureState);\n setInteractionTimeout(interactionState);\n PanResponder._initializeGestureState(gestureState);\n },\n onResponderStart(event) {\n var touchHistory = event.touchHistory;\n gestureState.numberActiveTouches = touchHistory.numberActiveTouches;\n if (config.onPanResponderStart) {\n config.onPanResponderStart(event, gestureState);\n }\n },\n onResponderMove(event) {\n var touchHistory = event.touchHistory;\n // Guard against the dispatch of two touch moves when there are two\n // simultaneously changed touches.\n if (gestureState._accountsForMovesUpTo === touchHistory.mostRecentTimeStamp) {\n return;\n }\n // Filter out any touch moves past the first one - we would have\n // already processed multi-touch geometry during the first event.\n PanResponder._updateGestureStateOnMove(gestureState, touchHistory);\n if (config.onPanResponderMove) {\n config.onPanResponderMove(event, gestureState);\n }\n },\n onResponderEnd(event) {\n var touchHistory = event.touchHistory;\n gestureState.numberActiveTouches = touchHistory.numberActiveTouches;\n clearInteractionHandle(interactionState, config.onPanResponderEnd, event, gestureState);\n },\n onResponderTerminate(event) {\n clearInteractionHandle(interactionState, config.onPanResponderTerminate, event, gestureState);\n setInteractionTimeout(interactionState);\n PanResponder._initializeGestureState(gestureState);\n },\n onResponderTerminationRequest(event) {\n return config.onPanResponderTerminationRequest == null ? true : config.onPanResponderTerminationRequest(event, gestureState);\n },\n // We do not want to trigger 'click' activated gestures or native behaviors\n // on any pan target that is under a mouse cursor when it is released.\n // Browsers will natively cancel 'click' events on a target if a non-mouse\n // active pointer moves.\n onClickCapture: event => {\n if (interactionState.shouldCancelClick === true) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n };\n return {\n panHandlers,\n getInteractionHandle() {\n return interactionState.handle;\n }\n };\n }\n};\nfunction clearInteractionHandle(interactionState, callback, event, gestureState) {\n if (interactionState.handle) {\n InteractionManager.clearInteractionHandle(interactionState.handle);\n interactionState.handle = null;\n }\n if (callback) {\n callback(event, gestureState);\n }\n}\nfunction clearInteractionTimeout(interactionState) {\n clearTimeout(interactionState.timeout);\n}\nfunction setInteractionTimeout(interactionState) {\n interactionState.timeout = setTimeout(() => {\n interactionState.shouldCancelClick = false;\n }, 250);\n}\nexport default PanResponder;","import PanResponder from '../../vendor/react-native/PanResponder';\nexport default PanResponder;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport invariant from 'fbjs/lib/invariant';\nclass Share {\n static share(content, options) {\n if (options === void 0) {\n options = {};\n }\n invariant(typeof content === 'object' && content !== null, 'Content to share must be a valid object');\n invariant(typeof content.url === 'string' || typeof content.message === 'string', 'At least one of URL and message is required');\n invariant(typeof options === 'object' && options !== null, 'Options must be a valid object');\n invariant(!content.title || typeof content.title === 'string', 'Invalid title: title should be a string.');\n if (window.navigator.share !== undefined) {\n return window.navigator.share({\n title: content.title,\n text: content.message,\n url: content.url\n });\n } else {\n return Promise.reject(new Error('Share is not supported in this browser'));\n }\n }\n\n /**\n * The content was successfully shared.\n */\n static get sharedAction() {\n return 'sharedAction';\n }\n\n /**\n * The dialog has been dismissed.\n * @platform ios\n */\n static get dismissedAction() {\n return 'dismissedAction';\n }\n}\nexport default Share;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar vibrate = pattern => {\n if ('vibrate' in window.navigator) {\n window.navigator.vibrate(pattern);\n }\n};\nvar Vibration = {\n cancel() {\n vibrate(0);\n },\n vibrate(pattern) {\n if (pattern === void 0) {\n pattern = 400;\n }\n vibrate(pattern);\n }\n};\nexport default Vibration;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport TouchableOpacity from '../TouchableOpacity';\nimport Text from '../Text';\nimport { warnOnce } from '../../modules/warnOnce';\nvar Button = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n warnOnce('Button', 'Button is deprecated. Please use Pressable.');\n var accessibilityLabel = props.accessibilityLabel,\n color = props.color,\n disabled = props.disabled,\n onPress = props.onPress,\n testID = props.testID,\n title = props.title;\n return /*#__PURE__*/React.createElement(TouchableOpacity, {\n accessibilityLabel: accessibilityLabel,\n accessibilityRole: \"button\",\n disabled: disabled,\n focusable: !disabled,\n onPress: onPress,\n ref: forwardedRef,\n style: [styles.button, color && {\n backgroundColor: color\n }, disabled && styles.buttonDisabled],\n testID: testID\n }, /*#__PURE__*/React.createElement(Text, {\n style: [styles.text, disabled && styles.textDisabled]\n }, title));\n});\nButton.displayName = 'Button';\nvar styles = StyleSheet.create({\n button: {\n backgroundColor: '#2196F3',\n borderRadius: 2\n },\n text: {\n color: '#fff',\n fontWeight: '500',\n padding: 8,\n textAlign: 'center',\n textTransform: 'uppercase'\n },\n buttonDisabled: {\n backgroundColor: '#dfdfdf'\n },\n textDisabled: {\n color: '#a1a1a1'\n }\n});\nexport default Button;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"aria-readonly\", \"color\", \"disabled\", \"onChange\", \"onValueChange\", \"readOnly\", \"style\", \"value\"];\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar CheckBox = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var ariaReadOnly = props['aria-readonly'],\n color = props.color,\n disabled = props.disabled,\n onChange = props.onChange,\n onValueChange = props.onValueChange,\n readOnly = props.readOnly,\n style = props.style,\n value = props.value,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n function handleChange(event) {\n var value = event.nativeEvent.target.checked;\n event.nativeEvent.value = value;\n onChange && onChange(event);\n onValueChange && onValueChange(value);\n }\n var fakeControl = /*#__PURE__*/React.createElement(View, {\n style: [styles.fakeControl, value && styles.fakeControlChecked,\n // custom color\n value && color && {\n backgroundColor: color,\n borderColor: color\n }, disabled && styles.fakeControlDisabled, value && disabled && styles.fakeControlCheckedAndDisabled]\n });\n var nativeControl = createElement('input', {\n checked: value,\n disabled: disabled,\n onChange: handleChange,\n readOnly: readOnly === true || ariaReadOnly === true || other.accessibilityReadOnly === true,\n ref: forwardedRef,\n style: [styles.nativeControl, styles.cursorInherit],\n type: 'checkbox'\n });\n return /*#__PURE__*/React.createElement(View, _extends({}, other, {\n \"aria-disabled\": disabled,\n \"aria-readonly\": ariaReadOnly,\n style: [styles.root, style, disabled && styles.cursorDefault]\n }), fakeControl, nativeControl);\n});\nCheckBox.displayName = 'CheckBox';\nvar styles = StyleSheet.create({\n root: {\n cursor: 'pointer',\n height: 16,\n userSelect: 'none',\n width: 16\n },\n cursorDefault: {\n cursor: 'default'\n },\n cursorInherit: {\n cursor: 'inherit'\n },\n fakeControl: {\n alignItems: 'center',\n backgroundColor: '#fff',\n borderColor: '#657786',\n borderRadius: 2,\n borderStyle: 'solid',\n borderWidth: 2,\n height: '100%',\n justifyContent: 'center',\n width: '100%'\n },\n fakeControlChecked: {\n backgroundColor: '#009688',\n backgroundImage: 'url(\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8cGF0aAogICAgIGQ9Ik0gMC4wNDAzODA1OSwwLjYyNjc3NjcgMC4xNDY0NDY2MSwwLjUyMDcxMDY4IDAuNDI5Mjg5MzIsMC44MDM1NTMzOSAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IE0gMC4yMTcxNTcyOSwwLjgwMzU1MzM5IDAuODUzNTUzMzksMC4xNjcxNTcyOSAwLjk1OTYxOTQxLDAuMjczMjIzMyAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IgogICAgIGlkPSJyZWN0Mzc4MCIKICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIiAvPgo8L3N2Zz4K\")',\n backgroundRepeat: 'no-repeat',\n borderColor: '#009688'\n },\n fakeControlDisabled: {\n borderColor: '#CCD6DD'\n },\n fakeControlCheckedAndDisabled: {\n backgroundColor: '#AAB8C2',\n borderColor: '#AAB8C2'\n },\n nativeControl: _objectSpread(_objectSpread({}, StyleSheet.absoluteFillObject), {}, {\n height: '100%',\n margin: 0,\n appearance: 'none',\n padding: 0,\n width: '100%'\n })\n});\nexport default CheckBox;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"children\", \"style\", \"imageStyle\", \"imageRef\"];\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport Image from '../Image';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar emptyObject = {};\n\n/**\n * Very simple drop-in replacement for which supports nesting views.\n */\nvar ImageBackground = /*#__PURE__*/forwardRef((props, forwardedRef) => {\n var children = props.children,\n _props$style = props.style,\n style = _props$style === void 0 ? emptyObject : _props$style,\n imageStyle = props.imageStyle,\n imageRef = props.imageRef,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n var _StyleSheet$flatten = StyleSheet.flatten(style),\n height = _StyleSheet$flatten.height,\n width = _StyleSheet$flatten.width;\n return /*#__PURE__*/React.createElement(View, {\n ref: forwardedRef,\n style: style\n }, /*#__PURE__*/React.createElement(Image, _extends({}, rest, {\n ref: imageRef,\n style: [{\n // Temporary Workaround:\n // Current (imperfect yet) implementation of overwrites width and height styles\n // (which is not quite correct), and these styles conflict with explicitly set styles\n // of and with our internal layout model here.\n // So, we have to proxy/reapply these styles explicitly for actual component.\n // This workaround should be removed after implementing proper support of\n // intrinsic content size of the .\n width,\n height,\n zIndex: -1\n }, StyleSheet.absoluteFill, imageStyle]\n })), children);\n});\nImageBackground.displayName = 'ImageBackground';\nexport default ImageBackground;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"behavior\", \"contentContainerStyle\", \"keyboardVerticalOffset\"];\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport * as React from 'react';\nimport View from '../View';\nclass KeyboardAvoidingView extends React.Component {\n constructor() {\n super(...arguments);\n this.frame = null;\n this.onLayout = event => {\n this.frame = event.nativeEvent.layout;\n };\n }\n relativeKeyboardHeight(keyboardFrame) {\n var frame = this.frame;\n if (!frame || !keyboardFrame) {\n return 0;\n }\n var keyboardY = keyboardFrame.screenY - (this.props.keyboardVerticalOffset || 0);\n return Math.max(frame.y + frame.height - keyboardY, 0);\n }\n onKeyboardChange(event) {}\n render() {\n var _this$props = this.props,\n behavior = _this$props.behavior,\n contentContainerStyle = _this$props.contentContainerStyle,\n keyboardVerticalOffset = _this$props.keyboardVerticalOffset,\n rest = _objectWithoutPropertiesLoose(_this$props, _excluded);\n return /*#__PURE__*/React.createElement(View, _extends({\n onLayout: this.onLayout\n }, rest));\n }\n}\nexport default KeyboardAvoidingView;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"children\", \"enabled\", \"onValueChange\", \"selectedValue\", \"style\", \"testID\", \"itemStyle\", \"mode\", \"prompt\"];\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePlatformMethods from '../../modules/usePlatformMethods';\nimport PickerItem from './PickerItem';\nimport StyleSheet from '../StyleSheet';\nvar Picker = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var children = props.children,\n enabled = props.enabled,\n onValueChange = props.onValueChange,\n selectedValue = props.selectedValue,\n style = props.style,\n testID = props.testID,\n itemStyle = props.itemStyle,\n mode = props.mode,\n prompt = props.prompt,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n var hostRef = React.useRef(null);\n function handleChange(e) {\n var _e$target = e.target,\n selectedIndex = _e$target.selectedIndex,\n value = _e$target.value;\n if (onValueChange) {\n onValueChange(value, selectedIndex);\n }\n }\n\n // $FlowFixMe\n var supportedProps = _objectSpread({\n children,\n disabled: enabled === false ? true : undefined,\n onChange: handleChange,\n style: [styles.initial, style],\n testID,\n value: selectedValue\n }, other);\n var platformMethodsRef = usePlatformMethods(supportedProps);\n var setRef = useMergeRefs(hostRef, platformMethodsRef, forwardedRef);\n supportedProps.ref = setRef;\n return createElement('select', supportedProps);\n});\n\n// $FlowFixMe\nPicker.Item = PickerItem;\nvar styles = StyleSheet.create({\n initial: {\n fontFamily: 'System',\n fontSize: 'inherit',\n margin: 0\n }\n});\nexport default Picker;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport createElement from '../createElement';\nexport default function PickerItem(props) {\n var color = props.color,\n label = props.label,\n testID = props.testID,\n value = props.value;\n var style = {\n color\n };\n return createElement('option', {\n children: label,\n style,\n testID,\n value\n });\n}","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"color\", \"indeterminate\", \"progress\", \"trackColor\", \"style\"];\n/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar ProgressBar = /*#__PURE__*/React.forwardRef((props, ref) => {\n var _props$color = props.color,\n color = _props$color === void 0 ? '#1976D2' : _props$color,\n _props$indeterminate = props.indeterminate,\n indeterminate = _props$indeterminate === void 0 ? false : _props$indeterminate,\n _props$progress = props.progress,\n progress = _props$progress === void 0 ? 0 : _props$progress,\n _props$trackColor = props.trackColor,\n trackColor = _props$trackColor === void 0 ? 'transparent' : _props$trackColor,\n style = props.style,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n var percentageProgress = progress * 100;\n var width = indeterminate ? '25%' : percentageProgress + \"%\";\n return /*#__PURE__*/React.createElement(View, _extends({}, other, {\n \"aria-valuemax\": 100,\n \"aria-valuemin\": 0,\n \"aria-valuenow\": indeterminate ? null : percentageProgress,\n ref: ref,\n role: \"progressbar\",\n style: [styles.track, style, {\n backgroundColor: trackColor\n }]\n }), /*#__PURE__*/React.createElement(View, {\n style: [{\n backgroundColor: color,\n width\n }, styles.progress, indeterminate && styles.animation]\n }));\n});\nProgressBar.displayName = 'ProgressBar';\nvar styles = StyleSheet.create({\n track: {\n forcedColorAdjust: 'none',\n height: 5,\n overflow: 'hidden',\n userSelect: 'none',\n zIndex: 0\n },\n progress: {\n forcedColorAdjust: 'none',\n height: '100%',\n zIndex: -1\n },\n animation: {\n animationDuration: '1s',\n animationKeyframes: [{\n '0%': {\n transform: 'translateX(-100%)'\n },\n '100%': {\n transform: 'translateX(400%)'\n }\n }],\n animationTimingFunction: 'linear',\n animationIterationCount: 'infinite'\n }\n});\nexport default ProgressBar;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"style\"];\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nimport canUseDOM from '../../modules/canUseDom';\nvar cssFunction = function () {\n if (canUseDOM && window.CSS && window.CSS.supports && window.CSS.supports('top: constant(safe-area-inset-top)')) {\n return 'constant';\n }\n return 'env';\n}();\nvar SafeAreaView = /*#__PURE__*/React.forwardRef((props, ref) => {\n var style = props.style,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, {\n ref: ref,\n style: [styles.root, style]\n }));\n});\nSafeAreaView.displayName = 'SafeAreaView';\nvar styles = StyleSheet.create({\n root: {\n paddingTop: cssFunction + \"(safe-area-inset-top)\",\n paddingRight: cssFunction + \"(safe-area-inset-right)\",\n paddingBottom: cssFunction + \"(safe-area-inset-bottom)\",\n paddingLeft: cssFunction + \"(safe-area-inset-left)\"\n }\n});\nexport default SafeAreaView;","/* eslint-disable */\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * From React 16.0.0\n */\n\nimport invariant from 'fbjs/lib/invariant';\nvar twoArgumentPooler = function twoArgumentPooler(a1, a2) {\n var Klass = this;\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2);\n return instance;\n } else {\n return new Klass(a1, a2);\n }\n};\nvar standardReleaser = function standardReleaser(instance) {\n var Klass = this;\n instance.destructor();\n if (Klass.instancePool.length < Klass.poolSize) {\n Klass.instancePool.push(instance);\n }\n};\nvar DEFAULT_POOL_SIZE = 10;\nvar DEFAULT_POOLER = twoArgumentPooler;\n\n/**\n * Augments `CopyConstructor` to be a poolable class, augmenting only the class\n * itself (statically) not adding any prototypical fields. Any CopyConstructor\n * you give this may have a `poolSize` property, and will look for a\n * prototypical `destructor` on instances.\n *\n * @param {Function} CopyConstructor Constructor that can be used to reset.\n * @param {Function} pooler Customizable pooler.\n */\nvar addPoolingTo = function addPoolingTo(CopyConstructor, pooler) {\n // Casting as any so that flow ignores the actual implementation and trusts\n // it to match the type we declared\n var NewKlass = CopyConstructor;\n NewKlass.instancePool = [];\n NewKlass.getPooled = pooler || DEFAULT_POOLER;\n if (!NewKlass.poolSize) {\n NewKlass.poolSize = DEFAULT_POOL_SIZE;\n }\n NewKlass.release = standardReleaser;\n return NewKlass;\n};\nvar PooledClass = {\n addPoolingTo: addPoolingTo,\n twoArgumentPooler: twoArgumentPooler\n};\nexport default PooledClass;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport PooledClass from '../../vendor/react-native/PooledClass';\nvar twoArgumentPooler = PooledClass.twoArgumentPooler;\n\n/**\n * PooledClass representing the bounding rectangle of a region.\n */\nfunction BoundingDimensions(width, height) {\n this.width = width;\n this.height = height;\n}\nBoundingDimensions.prototype.destructor = function () {\n this.width = null;\n this.height = null;\n};\nBoundingDimensions.getPooledFromElement = function (element) {\n return BoundingDimensions.getPooled(element.offsetWidth, element.offsetHeight);\n};\nPooledClass.addPoolingTo(BoundingDimensions, twoArgumentPooler);\nexport default BoundingDimensions;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport PooledClass from '../../vendor/react-native/PooledClass';\nvar twoArgumentPooler = PooledClass.twoArgumentPooler;\nfunction Position(left, top) {\n this.left = left;\n this.top = top;\n}\nPosition.prototype.destructor = function () {\n this.left = null;\n this.top = null;\n};\nPooledClass.addPoolingTo(Position, twoArgumentPooler);\nexport default Position;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport AccessibilityUtil from '../../modules/AccessibilityUtil';\nimport BoundingDimensions from './BoundingDimensions';\nimport normalizeColor from '@react-native/normalize-colors';\nimport Position from './Position';\nimport React from 'react';\nimport UIManager from '../UIManager';\nimport View from '../View';\nimport { warnOnce } from '../../modules/warnOnce';\nvar extractSingleTouch = nativeEvent => {\n var touches = nativeEvent.touches;\n var changedTouches = nativeEvent.changedTouches;\n var hasTouches = touches && touches.length > 0;\n var hasChangedTouches = changedTouches && changedTouches.length > 0;\n return !hasTouches && hasChangedTouches ? changedTouches[0] : hasTouches ? touches[0] : nativeEvent;\n};\n\n/**\n * `Touchable`: Taps done right.\n *\n * You hook your `ResponderEventPlugin` events into `Touchable`. `Touchable`\n * will measure time/geometry and tells you when to give feedback to the user.\n *\n * ====================== Touchable Tutorial ===============================\n * The `Touchable` mixin helps you handle the \"press\" interaction. It analyzes\n * the geometry of elements, and observes when another responder (scroll view\n * etc) has stolen the touch lock. It notifies your component when it should\n * give feedback to the user. (bouncing/highlighting/unhighlighting).\n *\n * - When a touch was activated (typically you highlight)\n * - When a touch was deactivated (typically you unhighlight)\n * - When a touch was \"pressed\" - a touch ended while still within the geometry\n * of the element, and no other element (like scroller) has \"stolen\" touch\n * lock (\"responder\") (Typically you bounce the element).\n *\n * A good tap interaction isn't as simple as you might think. There should be a\n * slight delay before showing a highlight when starting a touch. If a\n * subsequent touch move exceeds the boundary of the element, it should\n * unhighlight, but if that same touch is brought back within the boundary, it\n * should rehighlight again. A touch can move in and out of that boundary\n * several times, each time toggling highlighting, but a \"press\" is only\n * triggered if that touch ends while within the element's boundary and no\n * scroller (or anything else) has stolen the lock on touches.\n *\n * To create a new type of component that handles interaction using the\n * `Touchable` mixin, do the following:\n *\n * - Initialize the `Touchable` state.\n *\n * getInitialState: function() {\n * return merge(this.touchableGetInitialState(), yourComponentState);\n * }\n *\n * - Add a method to get your touchable component's node.\n * getTouchableNode: function() {\n * return this.touchableRef.current\n * }\n *\n * - Choose the rendered component who's touches should start the interactive\n * sequence. On that rendered node, forward all `Touchable` responder\n * handlers. You can choose any rendered node you like. Choose a node whose\n * hit target you'd like to instigate the interaction sequence:\n *\n * // In render function:\n * return (\n * \n * \n * Even though the hit detection/interactions are triggered by the\n * wrapping (typically larger) node, we usually end up implementing\n * custom logic that highlights this inner one.\n * \n * \n * );\n *\n * - You may set up your own handlers for each of these events, so long as you\n * also invoke the `touchable*` handlers inside of your custom handler.\n *\n * - Implement the handlers on your component class in order to provide\n * feedback to the user. See documentation for each of these class methods\n * that you should implement.\n *\n * touchableHandlePress: function() {\n * this.performBounceAnimation(); // or whatever you want to do.\n * },\n * touchableHandleActivePressIn: function() {\n * this.beginHighlighting(...); // Whatever you like to convey activation\n * },\n * touchableHandleActivePressOut: function() {\n * this.endHighlighting(...); // Whatever you like to convey deactivation\n * },\n *\n * - There are more advanced methods you can implement (see documentation below):\n * touchableGetHighlightDelayMS: function() {\n * return 20;\n * }\n * // In practice, *always* use a predeclared constant (conserve memory).\n * touchableGetPressRectOffset: function() {\n * return {top: 20, left: 20, right: 20, bottom: 100};\n * }\n */\n\n/**\n * Touchable states.\n */\n\nvar States = {\n NOT_RESPONDER: 'NOT_RESPONDER',\n // Not the responder\n RESPONDER_INACTIVE_PRESS_IN: 'RESPONDER_INACTIVE_PRESS_IN',\n // Responder, inactive, in the `PressRect`\n RESPONDER_INACTIVE_PRESS_OUT: 'RESPONDER_INACTIVE_PRESS_OUT',\n // Responder, inactive, out of `PressRect`\n RESPONDER_ACTIVE_PRESS_IN: 'RESPONDER_ACTIVE_PRESS_IN',\n // Responder, active, in the `PressRect`\n RESPONDER_ACTIVE_PRESS_OUT: 'RESPONDER_ACTIVE_PRESS_OUT',\n // Responder, active, out of `PressRect`\n RESPONDER_ACTIVE_LONG_PRESS_IN: 'RESPONDER_ACTIVE_LONG_PRESS_IN',\n // Responder, active, in the `PressRect`, after long press threshold\n RESPONDER_ACTIVE_LONG_PRESS_OUT: 'RESPONDER_ACTIVE_LONG_PRESS_OUT',\n // Responder, active, out of `PressRect`, after long press threshold\n ERROR: 'ERROR'\n};\n/*\n * Quick lookup map for states that are considered to be \"active\"\n */\n\nvar baseStatesConditions = {\n NOT_RESPONDER: false,\n RESPONDER_INACTIVE_PRESS_IN: false,\n RESPONDER_INACTIVE_PRESS_OUT: false,\n RESPONDER_ACTIVE_PRESS_IN: false,\n RESPONDER_ACTIVE_PRESS_OUT: false,\n RESPONDER_ACTIVE_LONG_PRESS_IN: false,\n RESPONDER_ACTIVE_LONG_PRESS_OUT: false,\n ERROR: false\n};\nvar IsActive = _objectSpread(_objectSpread({}, baseStatesConditions), {}, {\n RESPONDER_ACTIVE_PRESS_OUT: true,\n RESPONDER_ACTIVE_PRESS_IN: true\n});\n\n/**\n * Quick lookup for states that are considered to be \"pressing\" and are\n * therefore eligible to result in a \"selection\" if the press stops.\n */\nvar IsPressingIn = _objectSpread(_objectSpread({}, baseStatesConditions), {}, {\n RESPONDER_INACTIVE_PRESS_IN: true,\n RESPONDER_ACTIVE_PRESS_IN: true,\n RESPONDER_ACTIVE_LONG_PRESS_IN: true\n});\nvar IsLongPressingIn = _objectSpread(_objectSpread({}, baseStatesConditions), {}, {\n RESPONDER_ACTIVE_LONG_PRESS_IN: true\n});\n\n/**\n * Inputs to the state machine.\n */\nvar Signals = {\n DELAY: 'DELAY',\n RESPONDER_GRANT: 'RESPONDER_GRANT',\n RESPONDER_RELEASE: 'RESPONDER_RELEASE',\n RESPONDER_TERMINATED: 'RESPONDER_TERMINATED',\n ENTER_PRESS_RECT: 'ENTER_PRESS_RECT',\n LEAVE_PRESS_RECT: 'LEAVE_PRESS_RECT',\n LONG_PRESS_DETECTED: 'LONG_PRESS_DETECTED'\n};\n/**\n * Mapping from States x Signals => States\n */\nvar Transitions = {\n NOT_RESPONDER: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.RESPONDER_INACTIVE_PRESS_IN,\n RESPONDER_RELEASE: States.ERROR,\n RESPONDER_TERMINATED: States.ERROR,\n ENTER_PRESS_RECT: States.ERROR,\n LEAVE_PRESS_RECT: States.ERROR,\n LONG_PRESS_DETECTED: States.ERROR\n },\n RESPONDER_INACTIVE_PRESS_IN: {\n DELAY: States.RESPONDER_ACTIVE_PRESS_IN,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR\n },\n RESPONDER_INACTIVE_PRESS_OUT: {\n DELAY: States.RESPONDER_ACTIVE_PRESS_OUT,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR\n },\n RESPONDER_ACTIVE_PRESS_IN: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.RESPONDER_ACTIVE_LONG_PRESS_IN\n },\n RESPONDER_ACTIVE_PRESS_OUT: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR\n },\n RESPONDER_ACTIVE_LONG_PRESS_IN: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_OUT,\n LONG_PRESS_DETECTED: States.RESPONDER_ACTIVE_LONG_PRESS_IN\n },\n RESPONDER_ACTIVE_LONG_PRESS_OUT: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR\n },\n error: {\n DELAY: States.NOT_RESPONDER,\n RESPONDER_GRANT: States.RESPONDER_INACTIVE_PRESS_IN,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.NOT_RESPONDER,\n LEAVE_PRESS_RECT: States.NOT_RESPONDER,\n LONG_PRESS_DETECTED: States.NOT_RESPONDER\n }\n};\n\n// ==== Typical Constants for integrating into UI components ====\n// var HIT_EXPAND_PX = 20;\n// var HIT_VERT_OFFSET_PX = 10;\nvar HIGHLIGHT_DELAY_MS = 130;\nvar PRESS_EXPAND_PX = 20;\nvar LONG_PRESS_THRESHOLD = 500;\nvar LONG_PRESS_DELAY_MS = LONG_PRESS_THRESHOLD - HIGHLIGHT_DELAY_MS;\nvar LONG_PRESS_ALLOWED_MOVEMENT = 10;\n\n// Default amount \"active\" region protrudes beyond box\n\n/**\n * By convention, methods prefixed with underscores are meant to be @private,\n * and not @protected. Mixers shouldn't access them - not even to provide them\n * as callback handlers.\n *\n *\n * ========== Geometry =========\n * `Touchable` only assumes that there exists a `HitRect` node. The `PressRect`\n * is an abstract box that is extended beyond the `HitRect`.\n *\n * +--------------------------+\n * | | - \"Start\" events in `HitRect` cause `HitRect`\n * | +--------------------+ | to become the responder.\n * | | +--------------+ | | - `HitRect` is typically expanded around\n * | | | | | | the `VisualRect`, but shifted downward.\n * | | | VisualRect | | | - After pressing down, after some delay,\n * | | | | | | and before letting up, the Visual React\n * | | +--------------+ | | will become \"active\". This makes it eligible\n * | | HitRect | | for being highlighted (so long as the\n * | +--------------------+ | press remains in the `PressRect`).\n * | PressRect o |\n * +----------------------|---+\n * Out Region |\n * +-----+ This gap between the `HitRect` and\n * `PressRect` allows a touch to move far away\n * from the original hit rect, and remain\n * highlighted, and eligible for a \"Press\".\n * Customize this via\n * `touchableGetPressRectOffset()`.\n *\n *\n *\n * ======= State Machine =======\n *\n * +-------------+ <---+ RESPONDER_RELEASE\n * |NOT_RESPONDER|\n * +-------------+ <---+ RESPONDER_TERMINATED\n * +\n * | RESPONDER_GRANT (HitRect)\n * v\n * +---------------------------+ DELAY +-------------------------+ T + DELAY +------------------------------+\n * |RESPONDER_INACTIVE_PRESS_IN|+-------->|RESPONDER_ACTIVE_PRESS_IN| +------------> |RESPONDER_ACTIVE_LONG_PRESS_IN|\n * +---------------------------+ +-------------------------+ +------------------------------+\n * + ^ + ^ + ^\n * |LEAVE_ |ENTER_ |LEAVE_ |ENTER_ |LEAVE_ |ENTER_\n * |PRESS_RECT |PRESS_RECT |PRESS_RECT |PRESS_RECT |PRESS_RECT |PRESS_RECT\n * | | | | | |\n * v + v + v +\n * +----------------------------+ DELAY +--------------------------+ +-------------------------------+\n * |RESPONDER_INACTIVE_PRESS_OUT|+------->|RESPONDER_ACTIVE_PRESS_OUT| |RESPONDER_ACTIVE_LONG_PRESS_OUT|\n * +----------------------------+ +--------------------------+ +-------------------------------+\n *\n * T + DELAY => LONG_PRESS_DELAY_MS + DELAY\n *\n * Not drawn are the side effects of each transition. The most important side\n * effect is the `touchableHandlePress` abstract method invocation that occurs\n * when a responder is released while in either of the \"Press\" states.\n *\n * The other important side effects are the highlight abstract method\n * invocations (internal callbacks) to be implemented by the mixer.\n *\n *\n * @lends Touchable.prototype\n */\nvar TouchableMixin = {\n // HACK (part 1): basic support for touchable interactions using a keyboard\n componentDidMount: function componentDidMount() {\n warnOnce('TouchableMixin', 'TouchableMixin is deprecated. Please use Pressable.');\n var touchableNode = this.getTouchableNode && this.getTouchableNode();\n if (touchableNode && touchableNode.addEventListener) {\n this._touchableBlurListener = e => {\n if (this._isTouchableKeyboardActive) {\n if (this.state.touchable.touchState && this.state.touchable.touchState !== States.NOT_RESPONDER) {\n this.touchableHandleResponderTerminate({\n nativeEvent: e\n });\n }\n this._isTouchableKeyboardActive = false;\n }\n };\n touchableNode.addEventListener('blur', this._touchableBlurListener);\n }\n },\n /**\n * Clear all timeouts on unmount\n */\n componentWillUnmount: function componentWillUnmount() {\n var touchableNode = this.getTouchableNode && this.getTouchableNode();\n if (touchableNode && touchableNode.addEventListener) {\n touchableNode.removeEventListener('blur', this._touchableBlurListener);\n }\n this.touchableDelayTimeout && clearTimeout(this.touchableDelayTimeout);\n this.longPressDelayTimeout && clearTimeout(this.longPressDelayTimeout);\n this.pressOutDelayTimeout && clearTimeout(this.pressOutDelayTimeout);\n // Clear DOM nodes\n this.pressInLocation = null;\n this.state.touchable.responderID = null;\n },\n /**\n * It's prefer that mixins determine state in this way, having the class\n * explicitly mix the state in the one and only `getInitialState` method.\n *\n * @return {object} State object to be placed inside of\n * `this.state.touchable`.\n */\n touchableGetInitialState: function touchableGetInitialState() {\n return {\n touchable: {\n touchState: undefined,\n responderID: null\n }\n };\n },\n // ==== Hooks to Gesture Responder system ====\n /**\n * Must return true if embedded in a native platform scroll view.\n */\n touchableHandleResponderTerminationRequest: function touchableHandleResponderTerminationRequest() {\n return !this.props.rejectResponderTermination;\n },\n /**\n * Must return true to start the process of `Touchable`.\n */\n touchableHandleStartShouldSetResponder: function touchableHandleStartShouldSetResponder() {\n return !this.props.disabled;\n },\n /**\n * Return true to cancel press on long press.\n */\n touchableLongPressCancelsPress: function touchableLongPressCancelsPress() {\n return true;\n },\n /**\n * Place as callback for a DOM element's `onResponderGrant` event.\n * @param {SyntheticEvent} e Synthetic event from event system.\n *\n */\n touchableHandleResponderGrant: function touchableHandleResponderGrant(e) {\n var dispatchID = e.currentTarget;\n // Since e is used in a callback invoked on another event loop\n // (as in setTimeout etc), we need to call e.persist() on the\n // event to make sure it doesn't get reused in the event object pool.\n e.persist();\n this.pressOutDelayTimeout && clearTimeout(this.pressOutDelayTimeout);\n this.pressOutDelayTimeout = null;\n this.state.touchable.touchState = States.NOT_RESPONDER;\n this.state.touchable.responderID = dispatchID;\n this._receiveSignal(Signals.RESPONDER_GRANT, e);\n var delayMS = this.touchableGetHighlightDelayMS !== undefined ? Math.max(this.touchableGetHighlightDelayMS(), 0) : HIGHLIGHT_DELAY_MS;\n delayMS = isNaN(delayMS) ? HIGHLIGHT_DELAY_MS : delayMS;\n if (delayMS !== 0) {\n this.touchableDelayTimeout = setTimeout(this._handleDelay.bind(this, e), delayMS);\n } else {\n this._handleDelay(e);\n }\n var longDelayMS = this.touchableGetLongPressDelayMS !== undefined ? Math.max(this.touchableGetLongPressDelayMS(), 10) : LONG_PRESS_DELAY_MS;\n longDelayMS = isNaN(longDelayMS) ? LONG_PRESS_DELAY_MS : longDelayMS;\n this.longPressDelayTimeout = setTimeout(this._handleLongDelay.bind(this, e), longDelayMS + delayMS);\n },\n /**\n * Place as callback for a DOM element's `onResponderRelease` event.\n */\n touchableHandleResponderRelease: function touchableHandleResponderRelease(e) {\n this.pressInLocation = null;\n this._receiveSignal(Signals.RESPONDER_RELEASE, e);\n },\n /**\n * Place as callback for a DOM element's `onResponderTerminate` event.\n */\n touchableHandleResponderTerminate: function touchableHandleResponderTerminate(e) {\n this.pressInLocation = null;\n this._receiveSignal(Signals.RESPONDER_TERMINATED, e);\n },\n /**\n * Place as callback for a DOM element's `onResponderMove` event.\n */\n touchableHandleResponderMove: function touchableHandleResponderMove(e) {\n // Measurement may not have returned yet.\n if (!this.state.touchable.positionOnActivate) {\n return;\n }\n var positionOnActivate = this.state.touchable.positionOnActivate;\n var dimensionsOnActivate = this.state.touchable.dimensionsOnActivate;\n var pressRectOffset = this.touchableGetPressRectOffset ? this.touchableGetPressRectOffset() : {\n left: PRESS_EXPAND_PX,\n right: PRESS_EXPAND_PX,\n top: PRESS_EXPAND_PX,\n bottom: PRESS_EXPAND_PX\n };\n var pressExpandLeft = pressRectOffset.left;\n var pressExpandTop = pressRectOffset.top;\n var pressExpandRight = pressRectOffset.right;\n var pressExpandBottom = pressRectOffset.bottom;\n var hitSlop = this.touchableGetHitSlop ? this.touchableGetHitSlop() : null;\n if (hitSlop) {\n pressExpandLeft += hitSlop.left || 0;\n pressExpandTop += hitSlop.top || 0;\n pressExpandRight += hitSlop.right || 0;\n pressExpandBottom += hitSlop.bottom || 0;\n }\n var touch = extractSingleTouch(e.nativeEvent);\n var pageX = touch && touch.pageX;\n var pageY = touch && touch.pageY;\n if (this.pressInLocation) {\n var movedDistance = this._getDistanceBetweenPoints(pageX, pageY, this.pressInLocation.pageX, this.pressInLocation.pageY);\n if (movedDistance > LONG_PRESS_ALLOWED_MOVEMENT) {\n this._cancelLongPressDelayTimeout();\n }\n }\n var isTouchWithinActive = pageX > positionOnActivate.left - pressExpandLeft && pageY > positionOnActivate.top - pressExpandTop && pageX < positionOnActivate.left + dimensionsOnActivate.width + pressExpandRight && pageY < positionOnActivate.top + dimensionsOnActivate.height + pressExpandBottom;\n if (isTouchWithinActive) {\n var prevState = this.state.touchable.touchState;\n this._receiveSignal(Signals.ENTER_PRESS_RECT, e);\n var curState = this.state.touchable.touchState;\n if (curState === States.RESPONDER_INACTIVE_PRESS_IN && prevState !== States.RESPONDER_INACTIVE_PRESS_IN) {\n // fix for t7967420\n this._cancelLongPressDelayTimeout();\n }\n } else {\n this._cancelLongPressDelayTimeout();\n this._receiveSignal(Signals.LEAVE_PRESS_RECT, e);\n }\n },\n /**\n * Invoked when the item receives focus. Mixers might override this to\n * visually distinguish the `VisualRect` so that the user knows that it\n * currently has the focus. Most platforms only support a single element being\n * focused at a time, in which case there may have been a previously focused\n * element that was blurred just prior to this. This can be overridden when\n * using `Touchable.Mixin.withoutDefaultFocusAndBlur`.\n */\n touchableHandleFocus: function touchableHandleFocus(e) {\n this.props.onFocus && this.props.onFocus(e);\n },\n /**\n * Invoked when the item loses focus. Mixers might override this to\n * visually distinguish the `VisualRect` so that the user knows that it\n * no longer has focus. Most platforms only support a single element being\n * focused at a time, in which case the focus may have moved to another.\n * This can be overridden when using\n * `Touchable.Mixin.withoutDefaultFocusAndBlur`.\n */\n touchableHandleBlur: function touchableHandleBlur(e) {\n this.props.onBlur && this.props.onBlur(e);\n },\n // ==== Abstract Application Callbacks ====\n\n /**\n * Invoked when the item should be highlighted. Mixers should implement this\n * to visually distinguish the `VisualRect` so that the user knows that\n * releasing a touch will result in a \"selection\" (analog to click).\n *\n * @abstract\n * touchableHandleActivePressIn: function,\n */\n\n /**\n * Invoked when the item is \"active\" (in that it is still eligible to become\n * a \"select\") but the touch has left the `PressRect`. Usually the mixer will\n * want to unhighlight the `VisualRect`. If the user (while pressing) moves\n * back into the `PressRect` `touchableHandleActivePressIn` will be invoked\n * again and the mixer should probably highlight the `VisualRect` again. This\n * event will not fire on an `touchEnd/mouseUp` event, only move events while\n * the user is depressing the mouse/touch.\n *\n * @abstract\n * touchableHandleActivePressOut: function\n */\n\n /**\n * Invoked when the item is \"selected\" - meaning the interaction ended by\n * letting up while the item was either in the state\n * `RESPONDER_ACTIVE_PRESS_IN` or `RESPONDER_INACTIVE_PRESS_IN`.\n *\n * @abstract\n * touchableHandlePress: function\n */\n\n /**\n * Invoked when the item is long pressed - meaning the interaction ended by\n * letting up while the item was in `RESPONDER_ACTIVE_LONG_PRESS_IN`. If\n * `touchableHandleLongPress` is *not* provided, `touchableHandlePress` will\n * be called as it normally is. If `touchableHandleLongPress` is provided, by\n * default any `touchableHandlePress` callback will not be invoked. To\n * override this default behavior, override `touchableLongPressCancelsPress`\n * to return false. As a result, `touchableHandlePress` will be called when\n * lifting up, even if `touchableHandleLongPress` has also been called.\n *\n * @abstract\n * touchableHandleLongPress: function\n */\n\n /**\n * Returns the number of millis to wait before triggering a highlight.\n *\n * @abstract\n * touchableGetHighlightDelayMS: function\n */\n\n /**\n * Returns the amount to extend the `HitRect` into the `PressRect`. Positive\n * numbers mean the size expands outwards.\n *\n * @abstract\n * touchableGetPressRectOffset: function\n */\n\n // ==== Internal Logic ====\n\n /**\n * Measures the `HitRect` node on activation. The Bounding rectangle is with\n * respect to viewport - not page, so adding the `pageXOffset/pageYOffset`\n * should result in points that are in the same coordinate system as an\n * event's `globalX/globalY` data values.\n *\n * - Consider caching this for the lifetime of the component, or possibly\n * being able to share this cache between any `ScrollMap` view.\n *\n * @sideeffects\n * @private\n */\n _remeasureMetricsOnActivation: function _remeasureMetricsOnActivation() {\n var tag = this.state.touchable.responderID;\n if (tag == null) {\n return;\n }\n UIManager.measure(tag, this._handleQueryLayout);\n },\n _handleQueryLayout: function _handleQueryLayout(l, t, w, h, globalX, globalY) {\n //don't do anything UIManager failed to measure node\n if (!l && !t && !w && !h && !globalX && !globalY) {\n return;\n }\n this.state.touchable.positionOnActivate && Position.release(this.state.touchable.positionOnActivate);\n this.state.touchable.dimensionsOnActivate &&\n // $FlowFixMe\n BoundingDimensions.release(this.state.touchable.dimensionsOnActivate);\n this.state.touchable.positionOnActivate = Position.getPooled(globalX, globalY);\n // $FlowFixMe\n this.state.touchable.dimensionsOnActivate = BoundingDimensions.getPooled(w, h);\n },\n _handleDelay: function _handleDelay(e) {\n this.touchableDelayTimeout = null;\n this._receiveSignal(Signals.DELAY, e);\n },\n _handleLongDelay: function _handleLongDelay(e) {\n this.longPressDelayTimeout = null;\n var curState = this.state.touchable.touchState;\n if (curState !== States.RESPONDER_ACTIVE_PRESS_IN && curState !== States.RESPONDER_ACTIVE_LONG_PRESS_IN) {\n console.error('Attempted to transition from state `' + curState + '` to `' + States.RESPONDER_ACTIVE_LONG_PRESS_IN + '`, which is not supported. This is ' + 'most likely due to `Touchable.longPressDelayTimeout` not being cancelled.');\n } else {\n this._receiveSignal(Signals.LONG_PRESS_DETECTED, e);\n }\n },\n /**\n * Receives a state machine signal, performs side effects of the transition\n * and stores the new state. Validates the transition as well.\n *\n * @param {Signals} signal State machine signal.\n * @throws Error if invalid state transition or unrecognized signal.\n * @sideeffects\n */\n _receiveSignal: function _receiveSignal(signal, e) {\n var responderID = this.state.touchable.responderID;\n var curState = this.state.touchable.touchState;\n var nextState = Transitions[curState] && Transitions[curState][signal];\n if (!responderID && signal === Signals.RESPONDER_RELEASE) {\n return;\n }\n if (!nextState) {\n throw new Error('Unrecognized signal `' + signal + '` or state `' + curState + '` for Touchable responder `' + responderID + '`');\n }\n if (nextState === States.ERROR) {\n throw new Error('Touchable cannot transition from `' + curState + '` to `' + signal + '` for responder `' + responderID + '`');\n }\n if (curState !== nextState) {\n this._performSideEffectsForTransition(curState, nextState, signal, e);\n this.state.touchable.touchState = nextState;\n }\n },\n _cancelLongPressDelayTimeout: function _cancelLongPressDelayTimeout() {\n this.longPressDelayTimeout && clearTimeout(this.longPressDelayTimeout);\n this.longPressDelayTimeout = null;\n },\n _isHighlight: function _isHighlight(state) {\n return state === States.RESPONDER_ACTIVE_PRESS_IN || state === States.RESPONDER_ACTIVE_LONG_PRESS_IN;\n },\n _savePressInLocation: function _savePressInLocation(e) {\n var touch = extractSingleTouch(e.nativeEvent);\n var pageX = touch && touch.pageX;\n var pageY = touch && touch.pageY;\n var locationX = touch && touch.locationX;\n var locationY = touch && touch.locationY;\n this.pressInLocation = {\n pageX,\n pageY,\n locationX,\n locationY\n };\n },\n _getDistanceBetweenPoints: function _getDistanceBetweenPoints(aX, aY, bX, bY) {\n var deltaX = aX - bX;\n var deltaY = aY - bY;\n return Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n },\n /**\n * Will perform a transition between touchable states, and identify any\n * highlighting or unhighlighting that must be performed for this particular\n * transition.\n *\n * @param {States} curState Current Touchable state.\n * @param {States} nextState Next Touchable state.\n * @param {Signal} signal Signal that triggered the transition.\n * @param {Event} e Native event.\n * @sideeffects\n */\n _performSideEffectsForTransition: function _performSideEffectsForTransition(curState, nextState, signal, e) {\n var curIsHighlight = this._isHighlight(curState);\n var newIsHighlight = this._isHighlight(nextState);\n var isFinalSignal = signal === Signals.RESPONDER_TERMINATED || signal === Signals.RESPONDER_RELEASE;\n if (isFinalSignal) {\n this._cancelLongPressDelayTimeout();\n }\n var isInitialTransition = curState === States.NOT_RESPONDER && nextState === States.RESPONDER_INACTIVE_PRESS_IN;\n var isActiveTransition = !IsActive[curState] && IsActive[nextState];\n if (isInitialTransition || isActiveTransition) {\n this._remeasureMetricsOnActivation();\n }\n if (IsPressingIn[curState] && signal === Signals.LONG_PRESS_DETECTED) {\n this.touchableHandleLongPress && this.touchableHandleLongPress(e);\n }\n if (newIsHighlight && !curIsHighlight) {\n this._startHighlight(e);\n } else if (!newIsHighlight && curIsHighlight) {\n this._endHighlight(e);\n }\n if (IsPressingIn[curState] && signal === Signals.RESPONDER_RELEASE) {\n var hasLongPressHandler = !!this.props.onLongPress;\n var pressIsLongButStillCallOnPress = IsLongPressingIn[curState] && (\n // We *are* long pressing.. // But either has no long handler\n !hasLongPressHandler || !this.touchableLongPressCancelsPress()); // or we're told to ignore it.\n\n var shouldInvokePress = !IsLongPressingIn[curState] || pressIsLongButStillCallOnPress;\n if (shouldInvokePress && this.touchableHandlePress) {\n if (!newIsHighlight && !curIsHighlight) {\n // we never highlighted because of delay, but we should highlight now\n this._startHighlight(e);\n this._endHighlight(e);\n }\n this.touchableHandlePress(e);\n }\n }\n this.touchableDelayTimeout && clearTimeout(this.touchableDelayTimeout);\n this.touchableDelayTimeout = null;\n },\n _playTouchSound: function _playTouchSound() {\n UIManager.playTouchSound();\n },\n _startHighlight: function _startHighlight(e) {\n this._savePressInLocation(e);\n this.touchableHandleActivePressIn && this.touchableHandleActivePressIn(e);\n },\n _endHighlight: function _endHighlight(e) {\n if (this.touchableHandleActivePressOut) {\n if (this.touchableGetPressOutDelayMS && this.touchableGetPressOutDelayMS()) {\n this.pressOutDelayTimeout = setTimeout(() => {\n this.touchableHandleActivePressOut(e);\n }, this.touchableGetPressOutDelayMS());\n } else {\n this.touchableHandleActivePressOut(e);\n }\n }\n },\n // HACK (part 2): basic support for touchable interactions using a keyboard (including\n // delays and longPress)\n touchableHandleKeyEvent: function touchableHandleKeyEvent(e) {\n var type = e.type,\n key = e.key;\n if (key === 'Enter' || key === ' ') {\n if (type === 'keydown') {\n if (!this._isTouchableKeyboardActive) {\n if (!this.state.touchable.touchState || this.state.touchable.touchState === States.NOT_RESPONDER) {\n this.touchableHandleResponderGrant(e);\n this._isTouchableKeyboardActive = true;\n }\n }\n } else if (type === 'keyup') {\n if (this._isTouchableKeyboardActive) {\n if (this.state.touchable.touchState && this.state.touchable.touchState !== States.NOT_RESPONDER) {\n this.touchableHandleResponderRelease(e);\n this._isTouchableKeyboardActive = false;\n }\n }\n }\n e.stopPropagation();\n // prevent the default behaviour unless the Touchable functions as a link\n // and Enter is pressed\n if (!(key === 'Enter' && AccessibilityUtil.propsToAriaRole(this.props) === 'link')) {\n e.preventDefault();\n }\n }\n },\n withoutDefaultFocusAndBlur: {}\n};\n\n/**\n * Provide an optional version of the mixin where `touchableHandleFocus` and\n * `touchableHandleBlur` can be overridden. This allows appropriate defaults to\n * be set on TV platforms, without breaking existing implementations of\n * `Touchable`.\n */\nvar touchableHandleFocus = TouchableMixin.touchableHandleFocus,\n touchableHandleBlur = TouchableMixin.touchableHandleBlur,\n TouchableMixinWithoutDefaultFocusAndBlur = _objectWithoutPropertiesLoose(TouchableMixin, [\"touchableHandleFocus\", \"touchableHandleBlur\"]);\nTouchableMixin.withoutDefaultFocusAndBlur = TouchableMixinWithoutDefaultFocusAndBlur;\nvar Touchable = {\n Mixin: TouchableMixin,\n TOUCH_TARGET_DEBUG: false,\n // Highlights all touchable targets. Toggle with Inspector.\n /**\n * Renders a debugging overlay to visualize touch target with hitSlop (might not work on Android).\n */\n renderDebugView: _ref => {\n var color = _ref.color,\n hitSlop = _ref.hitSlop;\n if (!Touchable.TOUCH_TARGET_DEBUG) {\n return null;\n }\n if (process.env.NODE_ENV !== 'production') {\n throw Error('Touchable.TOUCH_TARGET_DEBUG should not be enabled in prod!');\n }\n var debugHitSlopStyle = {};\n hitSlop = hitSlop || {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0\n };\n for (var key in hitSlop) {\n debugHitSlopStyle[key] = -hitSlop[key];\n }\n var normalizedColor = normalizeColor(color);\n if (typeof normalizedColor !== 'number') {\n return null;\n }\n var hexColor = '#' + ('00000000' + normalizedColor.toString(16)).substr(-8);\n return /*#__PURE__*/React.createElement(View, {\n pointerEvents: \"none\",\n style: _objectSpread({\n position: 'absolute',\n borderColor: hexColor.slice(0, -2) + '55',\n // More opaque\n borderWidth: 1,\n borderStyle: 'dashed',\n backgroundColor: hexColor.slice(0, -2) + '0F'\n }, debugHitSlopStyle)\n });\n }\n};\nexport default Touchable;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport View from '../../exports/View';\nimport React from 'react';\n\n/**\n * Common implementation for a simple stubbed view.\n */\nclass UnimplementedView extends React.Component {\n render() {\n return /*#__PURE__*/React.createElement(View, {\n style: [unimplementedViewStyles, this.props.style]\n }, this.props.children);\n }\n}\nvar unimplementedViewStyles = process.env.NODE_ENV !== 'production' ? {\n alignSelf: 'flex-start',\n borderColor: 'red',\n borderWidth: 1\n} : {};\nexport default UnimplementedView;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport UnimplementedView from '../../modules/UnimplementedView';\nexport default UnimplementedView;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport VirtualizedList from '../../vendor/react-native/VirtualizedList';\nexport default VirtualizedList;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport React from 'react';\nimport UnimplementedView from '../../modules/UnimplementedView';\nfunction YellowBox(props) {\n return /*#__PURE__*/React.createElement(UnimplementedView, props);\n}\nYellowBox.ignoreWarnings = () => {};\nexport default YellowBox;","/**\n * Copyright (c) 2016-present, Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar LogBox = {\n ignoreLogs() {},\n ignoreAllLogs() {},\n uninstall() {},\n install() {}\n};\nexport default LogBox;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport * as React from 'react';\nimport Appearance from '../Appearance';\nexport default function useColorScheme() {\n var _React$useState = React.useState(Appearance.getColorScheme()),\n colorScheme = _React$useState[0],\n setColorScheme = _React$useState[1];\n React.useEffect(() => {\n function listener(appearance) {\n setColorScheme(appearance.colorScheme);\n }\n var _Appearance$addChange = Appearance.addChangeListener(listener),\n remove = _Appearance$addChange.remove;\n return remove;\n });\n return colorScheme;\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport { useLocaleContext } from '../../modules/useLocale';\nexport default useLocaleContext;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar accessibilityRoleToWebRole = {\n adjustable: 'slider',\n button: 'button',\n header: 'heading',\n image: 'img',\n imagebutton: null,\n keyboardkey: null,\n label: null,\n link: 'link',\n none: 'presentation',\n search: 'search',\n summary: 'region',\n text: null\n};\nvar propsToAriaRole = _ref => {\n var accessibilityRole = _ref.accessibilityRole,\n role = _ref.role;\n var _role = role || accessibilityRole;\n if (_role) {\n var inferredRole = accessibilityRoleToWebRole[_role];\n if (inferredRole !== null) {\n // ignore roles that don't map to web\n return inferredRole || _role;\n }\n }\n};\nexport default propsToAriaRole;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport propsToAriaRole from './propsToAriaRole';\nvar roleComponents = {\n article: 'article',\n banner: 'header',\n blockquote: 'blockquote',\n button: 'button',\n code: 'code',\n complementary: 'aside',\n contentinfo: 'footer',\n deletion: 'del',\n emphasis: 'em',\n figure: 'figure',\n insertion: 'ins',\n form: 'form',\n list: 'ul',\n listitem: 'li',\n main: 'main',\n navigation: 'nav',\n paragraph: 'p',\n region: 'section',\n strong: 'strong'\n};\nvar emptyObject = {};\nvar propsToAccessibilityComponent = function propsToAccessibilityComponent(props) {\n if (props === void 0) {\n props = emptyObject;\n }\n var roleProp = props.role || props.accessibilityRole;\n // special-case for \"label\" role which doesn't map to an ARIA role\n if (roleProp === 'label') {\n return 'label';\n }\n var role = propsToAriaRole(props);\n if (role) {\n if (role === 'heading') {\n var level = props.accessibilityLevel || props['aria-level'];\n if (level != null) {\n return \"h\" + level;\n }\n return 'h1';\n }\n return roleComponents[role];\n }\n};\nexport default propsToAccessibilityComponent;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport isDisabled from './isDisabled';\nimport propsToAccessibilityComponent from './propsToAccessibilityComponent';\nimport propsToAriaRole from './propsToAriaRole';\nvar AccessibilityUtil = {\n isDisabled,\n propsToAccessibilityComponent,\n propsToAriaRole\n};\nexport default AccessibilityUtil;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar isDisabled = props => props.disabled || Array.isArray(props.accessibilityStates) && props.accessibilityStates.indexOf('disabled') > -1;\nexport default isDisabled;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport UIManager from '../../exports/UIManager';\n\n/**\n * This class is responsible for coordinating the \"focused\"\n * state for TextInputs. All calls relating to the keyboard\n * should be funneled through here\n */\nvar TextInputState = {\n /**\n * Internal state\n */\n _currentlyFocusedNode: null,\n /**\n * Returns the ID of the currently focused text field, if one exists\n * If no text field is focused it returns null\n */\n currentlyFocusedField() {\n if (document.activeElement !== this._currentlyFocusedNode) {\n this._currentlyFocusedNode = null;\n }\n return this._currentlyFocusedNode;\n },\n /**\n * @param {Object} TextInputID id of the text field to focus\n * Focuses the specified text field\n * noop if the text field was already focused\n */\n focusTextInput(textFieldNode) {\n if (textFieldNode !== null) {\n this._currentlyFocusedNode = textFieldNode;\n if (document.activeElement !== textFieldNode) {\n UIManager.focus(textFieldNode);\n }\n }\n },\n /**\n * @param {Object} textFieldNode id of the text field to focus\n * Unfocuses the specified text field\n * noop if it wasn't focused\n */\n blurTextInput(textFieldNode) {\n if (textFieldNode !== null) {\n this._currentlyFocusedNode = null;\n if (document.activeElement === textFieldNode) {\n UIManager.blur(textFieldNode);\n }\n }\n }\n};\nexport default TextInputState;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nexport default canUseDOM;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport TextInputState from '../TextInputState';\nvar dismissKeyboard = () => {\n TextInputState.blurTextInput(TextInputState.currentlyFocusedField());\n};\nexport default dismissKeyboard;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nexport var defaultProps = {\n children: true,\n dataSet: true,\n dir: true,\n id: true,\n ref: true,\n suppressHydrationWarning: true,\n tabIndex: true,\n testID: true,\n // @deprecated\n focusable: true,\n nativeID: true\n};\nexport var accessibilityProps = {\n 'aria-activedescendant': true,\n 'aria-atomic': true,\n 'aria-autocomplete': true,\n 'aria-busy': true,\n 'aria-checked': true,\n 'aria-colcount': true,\n 'aria-colindex': true,\n 'aria-colspan': true,\n 'aria-controls': true,\n 'aria-current': true,\n 'aria-describedby': true,\n 'aria-details': true,\n 'aria-disabled': true,\n 'aria-errormessage': true,\n 'aria-expanded': true,\n 'aria-flowto': true,\n 'aria-haspopup': true,\n 'aria-hidden': true,\n 'aria-invalid': true,\n 'aria-keyshortcuts': true,\n 'aria-label': true,\n 'aria-labelledby': true,\n 'aria-level': true,\n 'aria-live': true,\n 'aria-modal': true,\n 'aria-multiline': true,\n 'aria-multiselectable': true,\n 'aria-orientation': true,\n 'aria-owns': true,\n 'aria-placeholder': true,\n 'aria-posinset': true,\n 'aria-pressed': true,\n 'aria-readonly': true,\n 'aria-required': true,\n role: true,\n 'aria-roledescription': true,\n 'aria-rowcount': true,\n 'aria-rowindex': true,\n 'aria-rowspan': true,\n 'aria-selected': true,\n 'aria-setsize': true,\n 'aria-sort': true,\n 'aria-valuemax': true,\n 'aria-valuemin': true,\n 'aria-valuenow': true,\n 'aria-valuetext': true,\n // @deprecated\n accessibilityActiveDescendant: true,\n accessibilityAtomic: true,\n accessibilityAutoComplete: true,\n accessibilityBusy: true,\n accessibilityChecked: true,\n accessibilityColumnCount: true,\n accessibilityColumnIndex: true,\n accessibilityColumnSpan: true,\n accessibilityControls: true,\n accessibilityCurrent: true,\n accessibilityDescribedBy: true,\n accessibilityDetails: true,\n accessibilityDisabled: true,\n accessibilityErrorMessage: true,\n accessibilityExpanded: true,\n accessibilityFlowTo: true,\n accessibilityHasPopup: true,\n accessibilityHidden: true,\n accessibilityInvalid: true,\n accessibilityKeyShortcuts: true,\n accessibilityLabel: true,\n accessibilityLabelledBy: true,\n accessibilityLevel: true,\n accessibilityLiveRegion: true,\n accessibilityModal: true,\n accessibilityMultiline: true,\n accessibilityMultiSelectable: true,\n accessibilityOrientation: true,\n accessibilityOwns: true,\n accessibilityPlaceholder: true,\n accessibilityPosInSet: true,\n accessibilityPressed: true,\n accessibilityReadOnly: true,\n accessibilityRequired: true,\n accessibilityRole: true,\n accessibilityRoleDescription: true,\n accessibilityRowCount: true,\n accessibilityRowIndex: true,\n accessibilityRowSpan: true,\n accessibilitySelected: true,\n accessibilitySetSize: true,\n accessibilitySort: true,\n accessibilityValueMax: true,\n accessibilityValueMin: true,\n accessibilityValueNow: true,\n accessibilityValueText: true\n};\nexport var clickProps = {\n onClick: true,\n onAuxClick: true,\n onContextMenu: true,\n onGotPointerCapture: true,\n onLostPointerCapture: true,\n onPointerCancel: true,\n onPointerDown: true,\n onPointerEnter: true,\n onPointerMove: true,\n onPointerLeave: true,\n onPointerOut: true,\n onPointerOver: true,\n onPointerUp: true\n};\nexport var focusProps = {\n onBlur: true,\n onFocus: true\n};\nexport var keyboardProps = {\n onKeyDown: true,\n onKeyDownCapture: true,\n onKeyUp: true,\n onKeyUpCapture: true\n};\nexport var mouseProps = {\n onMouseDown: true,\n onMouseEnter: true,\n onMouseLeave: true,\n onMouseMove: true,\n onMouseOver: true,\n onMouseOut: true,\n onMouseUp: true\n};\nexport var touchProps = {\n onTouchCancel: true,\n onTouchCancelCapture: true,\n onTouchEnd: true,\n onTouchEndCapture: true,\n onTouchMove: true,\n onTouchMoveCapture: true,\n onTouchStart: true,\n onTouchStartCapture: true\n};\nexport var styleProps = {\n style: true\n};","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar getBoundingClientRect = node => {\n if (node != null) {\n var isElement = node.nodeType === 1; /* Node.ELEMENT_NODE */\n if (isElement && typeof node.getBoundingClientRect === 'function') {\n return node.getBoundingClientRect();\n }\n }\n};\nexport default getBoundingClientRect;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport * as React from 'react';\nexport default function mergeRefs() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return function forwardRef(node) {\n args.forEach(ref => {\n if (ref == null) {\n return;\n }\n if (typeof ref === 'function') {\n ref(node);\n return;\n }\n if (typeof ref === 'object') {\n ref.current = node;\n return;\n }\n console.error(\"mergeRefs cannot handle Refs of type boolean, number or string, received ref \" + String(ref));\n });\n };\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nexport default function pick(obj, list) {\n var nextObj = {};\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n if (list[key] === true) {\n nextObj[key] = obj[key];\n }\n }\n }\n return nextObj;\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport useLayoutEffect from '../useLayoutEffect';\nimport UIManager from '../../exports/UIManager';\nimport canUseDOM from '../canUseDom';\nvar DOM_LAYOUT_HANDLER_NAME = '__reactLayoutHandler';\nvar didWarn = !canUseDOM;\nvar resizeObserver = null;\nfunction getResizeObserver() {\n if (canUseDOM && typeof window.ResizeObserver !== 'undefined') {\n if (resizeObserver == null) {\n resizeObserver = new window.ResizeObserver(function (entries) {\n entries.forEach(entry => {\n var node = entry.target;\n var onLayout = node[DOM_LAYOUT_HANDLER_NAME];\n if (typeof onLayout === 'function') {\n // We still need to measure the view because browsers don't yet provide\n // border-box dimensions in the entry\n UIManager.measure(node, (x, y, width, height, left, top) => {\n var event = {\n // $FlowFixMe\n nativeEvent: {\n layout: {\n x,\n y,\n width,\n height,\n left,\n top\n }\n },\n timeStamp: Date.now()\n };\n Object.defineProperty(event.nativeEvent, 'target', {\n enumerable: true,\n get: () => entry.target\n });\n onLayout(event);\n });\n }\n });\n });\n }\n } else if (!didWarn) {\n if (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test') {\n console.warn('onLayout relies on ResizeObserver which is not supported by your browser. ' + 'Please include a polyfill, e.g., https://github.com/que-etc/resize-observer-polyfill.');\n didWarn = true;\n }\n }\n return resizeObserver;\n}\nexport default function useElementLayout(ref, onLayout) {\n var observer = getResizeObserver();\n useLayoutEffect(() => {\n var node = ref.current;\n if (node != null) {\n node[DOM_LAYOUT_HANDLER_NAME] = onLayout;\n }\n }, [ref, onLayout]);\n\n // Observing is done in a separate effect to avoid this effect running\n // when 'onLayout' changes.\n useLayoutEffect(() => {\n var node = ref.current;\n if (node != null && observer != null) {\n if (typeof node[DOM_LAYOUT_HANDLER_NAME] === 'function') {\n observer.observe(node);\n } else {\n observer.unobserve(node);\n }\n }\n return () => {\n if (node != null && observer != null) {\n observer.unobserve(node);\n }\n };\n }, [ref, observer]);\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * useLayoutEffect throws an error on the server. On the few occasions where is\n * problematic, use this hook.\n *\n * \n */\n\nimport { useEffect, useLayoutEffect } from 'react';\nimport canUseDOM from '../canUseDom';\nvar useLayoutEffectImpl = canUseDOM ? useLayoutEffect : useEffect;\nexport default useLayoutEffectImpl;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar rtlScripts = new Set(['Arab', 'Syrc', 'Samr', 'Mand', 'Thaa', 'Mend', 'Nkoo', 'Adlm', 'Rohg', 'Hebr']);\nvar rtlLangs = new Set(['ae',\n// Avestan\n'ar',\n// Arabic\n'arc',\n// Aramaic\n'bcc',\n// Southern Balochi\n'bqi',\n// Bakthiari\n'ckb',\n// Sorani\n'dv',\n// Dhivehi\n'fa', 'far',\n// Persian\n'glk',\n// Gilaki\n'he', 'iw',\n// Hebrew\n'khw',\n// Khowar\n'ks',\n// Kashmiri\n'ku',\n// Kurdish\n'mzn',\n// Mazanderani\n'nqo',\n// N'Ko\n'pnb',\n// Western Punjabi\n'ps',\n// Pashto\n'sd',\n// Sindhi\n'ug',\n// Uyghur\n'ur',\n// Urdu\n'yi' // Yiddish\n]);\n\nvar cache = new Map();\n\n/**\n * Determine the writing direction of a locale\n */\nexport function isLocaleRTL(locale) {\n var cachedRTL = cache.get(locale);\n if (cachedRTL) {\n return cachedRTL;\n }\n var isRTL = false;\n // $FlowFixMe\n if (Intl.Locale) {\n // $FlowFixMe\n var script = new Intl.Locale(locale).maximize().script;\n isRTL = rtlScripts.has(script);\n } else {\n // Fallback to inferring from language\n var lang = locale.split('-')[0];\n isRTL = rtlLangs.has(lang);\n }\n cache.set(locale, isRTL);\n return isRTL;\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport React, { createContext, useContext } from 'react';\nimport { isLocaleRTL } from './isLocaleRTL';\nvar defaultLocale = {\n direction: 'ltr',\n locale: 'en-US'\n};\nvar LocaleContext = /*#__PURE__*/createContext(defaultLocale);\nexport function getLocaleDirection(locale) {\n return isLocaleRTL(locale) ? 'rtl' : 'ltr';\n}\nexport function LocaleProvider(props) {\n var direction = props.direction,\n locale = props.locale,\n children = props.children;\n var needsContext = direction || locale;\n return needsContext ? /*#__PURE__*/React.createElement(LocaleContext.Provider, {\n children: children,\n value: {\n direction: locale ? getLocaleDirection(locale) : direction,\n locale\n }\n }) : children;\n}\nexport function useLocaleContext() {\n return useContext(LocaleContext);\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport * as React from 'react';\nimport mergeRefs from '../mergeRefs';\nexport default function useMergeRefs() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return React.useMemo(() => mergeRefs(...args),\n // eslint-disable-next-line\n [...args]);\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport UIManager from '../../exports/UIManager';\nimport useStable from '../useStable';\n\n/**\n * Adds non-standard methods to the hode element. This is temporarily until an\n * API like `ReactNative.measure(hostRef, callback)` is added to React Native.\n */\nexport default function usePlatformMethods(_ref) {\n var pointerEvents = _ref.pointerEvents,\n style = _ref.style;\n // Avoid creating a new ref on every render.\n var ref = useStable(() => hostNode => {\n if (hostNode != null) {\n hostNode.measure = callback => UIManager.measure(hostNode, callback);\n hostNode.measureLayout = (relativeToNode, success, failure) => UIManager.measureLayout(hostNode, relativeToNode, failure, success);\n hostNode.measureInWindow = callback => UIManager.measureInWindow(hostNode, callback);\n }\n });\n return ref;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nvar DELAY = 'DELAY';\nvar ERROR = 'ERROR';\nvar LONG_PRESS_DETECTED = 'LONG_PRESS_DETECTED';\nvar NOT_RESPONDER = 'NOT_RESPONDER';\nvar RESPONDER_ACTIVE_LONG_PRESS_START = 'RESPONDER_ACTIVE_LONG_PRESS_START';\nvar RESPONDER_ACTIVE_PRESS_START = 'RESPONDER_ACTIVE_PRESS_START';\nvar RESPONDER_INACTIVE_PRESS_START = 'RESPONDER_INACTIVE_PRESS_START';\nvar RESPONDER_GRANT = 'RESPONDER_GRANT';\nvar RESPONDER_RELEASE = 'RESPONDER_RELEASE';\nvar RESPONDER_TERMINATED = 'RESPONDER_TERMINATED';\nvar Transitions = Object.freeze({\n NOT_RESPONDER: {\n DELAY: ERROR,\n RESPONDER_GRANT: RESPONDER_INACTIVE_PRESS_START,\n RESPONDER_RELEASE: ERROR,\n RESPONDER_TERMINATED: ERROR,\n LONG_PRESS_DETECTED: ERROR\n },\n RESPONDER_INACTIVE_PRESS_START: {\n DELAY: RESPONDER_ACTIVE_PRESS_START,\n RESPONDER_GRANT: ERROR,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: ERROR\n },\n RESPONDER_ACTIVE_PRESS_START: {\n DELAY: ERROR,\n RESPONDER_GRANT: ERROR,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: RESPONDER_ACTIVE_LONG_PRESS_START\n },\n RESPONDER_ACTIVE_LONG_PRESS_START: {\n DELAY: ERROR,\n RESPONDER_GRANT: ERROR,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: RESPONDER_ACTIVE_LONG_PRESS_START\n },\n ERROR: {\n DELAY: NOT_RESPONDER,\n RESPONDER_GRANT: RESPONDER_INACTIVE_PRESS_START,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: NOT_RESPONDER\n }\n});\nvar getElementRole = element => element.getAttribute('role');\nvar getElementType = element => element.tagName.toLowerCase();\nvar isActiveSignal = signal => signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START;\nvar isButtonRole = element => getElementRole(element) === 'button';\nvar isPressStartSignal = signal => signal === RESPONDER_INACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START;\nvar isTerminalSignal = signal => signal === RESPONDER_TERMINATED || signal === RESPONDER_RELEASE;\nvar isValidKeyPress = event => {\n var key = event.key,\n target = event.target;\n var isSpacebar = key === ' ' || key === 'Spacebar';\n var isButtonish = getElementType(target) === 'button' || isButtonRole(target);\n return key === 'Enter' || isSpacebar && isButtonish;\n};\nvar DEFAULT_LONG_PRESS_DELAY_MS = 450; // 500 - 50\nvar DEFAULT_PRESS_DELAY_MS = 50;\n\n/**\n * =========================== PressResponder Tutorial ===========================\n *\n * The `PressResponder` class helps you create press interactions by analyzing the\n * geometry of elements and observing when another responder (e.g. ScrollView)\n * has stolen the touch lock. It offers hooks for your component to provide\n * interaction feedback to the user:\n *\n * - When a press has activated (e.g. highlight an element)\n * - When a press has deactivated (e.g. un-highlight an element)\n * - When a press sould trigger an action, meaning it activated and deactivated\n * while within the geometry of the element without the lock being stolen.\n *\n * A high quality interaction isn't as simple as you might think. There should\n * be a slight delay before activation. Moving your finger beyond an element's\n * bounds should trigger deactivation, but moving the same finger back within an\n * element's bounds should trigger reactivation.\n *\n * In order to use `PressResponder`, do the following:\n *\n * const pressResponder = new PressResponder(config);\n *\n * 2. Choose the rendered component who should collect the press events. On that\n * element, spread `pressability.getEventHandlers()` into its props.\n *\n * return (\n * \n * );\n *\n * 3. Reset `PressResponder` when your component unmounts.\n *\n * componentWillUnmount() {\n * this.state.pressResponder.reset();\n * }\n *\n * ==================== Implementation Details ====================\n *\n * `PressResponder` only assumes that there exists a `HitRect` node. The `PressRect`\n * is an abstract box that is extended beyond the `HitRect`.\n *\n * # Geometry\n *\n * ┌────────────────────────┐\n * │ ┌──────────────────┐ │ - Presses start anywhere within `HitRect`.\n * │ │ ┌────────────┐ │ │\n * │ │ │ VisualRect │ │ │\n * │ │ └────────────┘ │ │ - When pressed down for sufficient amount of time\n * │ │ HitRect │ │ before letting up, `VisualRect` activates.\n * │ └──────────────────┘ │\n * │ Out Region o │\n * └────────────────────│───┘\n * └────── When the press is released outside the `HitRect`,\n * the responder is NOT eligible for a \"press\".\n *\n * # State Machine\n *\n * ┌───────────────┐ ◀──── RESPONDER_RELEASE\n * │ NOT_RESPONDER │\n * └───┬───────────┘ ◀──── RESPONDER_TERMINATED\n * │\n * │ RESPONDER_GRANT (HitRect)\n * │\n * ▼\n * ┌─────────────────────┐ ┌───────────────────┐ ┌───────────────────┐\n * │ RESPONDER_INACTIVE_ │ DELAY │ RESPONDER_ACTIVE_ │ T + DELAY │ RESPONDER_ACTIVE_ │\n * │ PRESS_START ├────────▶ │ PRESS_START ├────────────▶ │ LONG_PRESS_START │\n * └─────────────────────┘ └───────────────────┘ └───────────────────┘\n *\n * T + DELAY => LONG_PRESS_DELAY + DELAY\n *\n * Not drawn are the side effects of each transition. The most important side\n * effect is the invocation of `onLongPress`. Only when the browser produces a\n * `click` event is `onPress` invoked.\n */\nexport default class PressResponder {\n constructor(config) {\n this._eventHandlers = null;\n this._isPointerTouch = false;\n this._longPressDelayTimeout = null;\n this._longPressDispatched = false;\n this._pressDelayTimeout = null;\n this._pressOutDelayTimeout = null;\n this._touchState = NOT_RESPONDER;\n this._responderElement = null;\n this.configure(config);\n }\n configure(config) {\n this._config = config;\n }\n\n /**\n * Resets any pending timers. This should be called on unmount.\n */\n reset() {\n this._cancelLongPressDelayTimeout();\n this._cancelPressDelayTimeout();\n this._cancelPressOutDelayTimeout();\n }\n\n /**\n * Returns a set of props to spread into the interactive element.\n */\n getEventHandlers() {\n if (this._eventHandlers == null) {\n this._eventHandlers = this._createEventHandlers();\n }\n return this._eventHandlers;\n }\n _createEventHandlers() {\n var start = (event, shouldDelay) => {\n event.persist();\n this._cancelPressOutDelayTimeout();\n this._longPressDispatched = false;\n this._selectionTerminated = false;\n this._touchState = NOT_RESPONDER;\n this._isPointerTouch = event.nativeEvent.type === 'touchstart';\n this._receiveSignal(RESPONDER_GRANT, event);\n var delayPressStart = normalizeDelay(this._config.delayPressStart, 0, DEFAULT_PRESS_DELAY_MS);\n if (shouldDelay !== false && delayPressStart > 0) {\n this._pressDelayTimeout = setTimeout(() => {\n this._receiveSignal(DELAY, event);\n }, delayPressStart);\n } else {\n this._receiveSignal(DELAY, event);\n }\n var delayLongPress = normalizeDelay(this._config.delayLongPress, 10, DEFAULT_LONG_PRESS_DELAY_MS);\n this._longPressDelayTimeout = setTimeout(() => {\n this._handleLongPress(event);\n }, delayLongPress + delayPressStart);\n };\n var end = event => {\n this._receiveSignal(RESPONDER_RELEASE, event);\n };\n var keyupHandler = event => {\n var onPress = this._config.onPress;\n var target = event.target;\n if (this._touchState !== NOT_RESPONDER && isValidKeyPress(event)) {\n end(event);\n document.removeEventListener('keyup', keyupHandler);\n var role = target.getAttribute('role');\n var elementType = getElementType(target);\n var isNativeInteractiveElement = role === 'link' || elementType === 'a' || elementType === 'button' || elementType === 'input' || elementType === 'select' || elementType === 'textarea';\n var isActiveElement = this._responderElement === target;\n if (onPress != null && !isNativeInteractiveElement && isActiveElement) {\n onPress(event);\n }\n this._responderElement = null;\n }\n };\n return {\n onStartShouldSetResponder: event => {\n var disabled = this._config.disabled;\n if (disabled && isButtonRole(event.currentTarget)) {\n event.stopPropagation();\n }\n if (disabled == null) {\n return true;\n }\n return !disabled;\n },\n onKeyDown: event => {\n var disabled = this._config.disabled;\n var key = event.key,\n target = event.target;\n if (!disabled && isValidKeyPress(event)) {\n if (this._touchState === NOT_RESPONDER) {\n start(event, false);\n this._responderElement = target;\n // Listen to 'keyup' on document to account for situations where\n // focus is moved to another element during 'keydown'.\n document.addEventListener('keyup', keyupHandler);\n }\n var isSpacebarKey = key === ' ' || key === 'Spacebar';\n var role = getElementRole(target);\n var isButtonLikeRole = role === 'button' || role === 'menuitem';\n if (isSpacebarKey && isButtonLikeRole && getElementType(target) !== 'button') {\n // Prevent spacebar scrolling the window if using non-native button\n event.preventDefault();\n }\n event.stopPropagation();\n }\n },\n onResponderGrant: event => start(event),\n onResponderMove: event => {\n if (this._config.onPressMove != null) {\n this._config.onPressMove(event);\n }\n var touch = getTouchFromResponderEvent(event);\n if (this._touchActivatePosition != null) {\n var deltaX = this._touchActivatePosition.pageX - touch.pageX;\n var deltaY = this._touchActivatePosition.pageY - touch.pageY;\n if (Math.hypot(deltaX, deltaY) > 10) {\n this._cancelLongPressDelayTimeout();\n }\n }\n },\n onResponderRelease: event => end(event),\n onResponderTerminate: event => {\n if (event.nativeEvent.type === 'selectionchange') {\n this._selectionTerminated = true;\n }\n this._receiveSignal(RESPONDER_TERMINATED, event);\n },\n onResponderTerminationRequest: event => {\n var _this$_config = this._config,\n cancelable = _this$_config.cancelable,\n disabled = _this$_config.disabled,\n onLongPress = _this$_config.onLongPress;\n // If `onLongPress` is provided, don't terminate on `contextmenu` as default\n // behavior will be prevented for non-mouse pointers.\n if (!disabled && onLongPress != null && this._isPointerTouch && event.nativeEvent.type === 'contextmenu') {\n return false;\n }\n if (cancelable == null) {\n return true;\n }\n return cancelable;\n },\n // NOTE: this diverges from react-native in 3 significant ways:\n // * The `onPress` callback is not connected to the responder system (the native\n // `click` event must be used but is dispatched in many scenarios where no pointers\n // are on the screen.) Therefore, it's possible for `onPress` to be called without\n // `onPress{Start,End}` being called first.\n // * The `onPress` callback is only be called on the first ancestor of the native\n // `click` target that is using the PressResponder.\n // * The event's `nativeEvent` is a `MouseEvent` not a `TouchEvent`.\n onClick: event => {\n var _this$_config2 = this._config,\n disabled = _this$_config2.disabled,\n onPress = _this$_config2.onPress;\n if (!disabled) {\n // If long press dispatched, cancel default click behavior.\n // If the responder terminated because text was selected during the gesture,\n // cancel the default click behavior.\n event.stopPropagation();\n if (this._longPressDispatched || this._selectionTerminated) {\n event.preventDefault();\n } else if (onPress != null && event.altKey === false) {\n onPress(event);\n }\n } else {\n if (isButtonRole(event.currentTarget)) {\n event.stopPropagation();\n }\n }\n },\n // If `onLongPress` is provided and a touch pointer is being used, prevent the\n // default context menu from opening.\n onContextMenu: event => {\n var _this$_config3 = this._config,\n disabled = _this$_config3.disabled,\n onLongPress = _this$_config3.onLongPress;\n if (!disabled) {\n if (onLongPress != null && this._isPointerTouch && !event.defaultPrevented) {\n event.preventDefault();\n event.stopPropagation();\n }\n } else {\n if (isButtonRole(event.currentTarget)) {\n event.stopPropagation();\n }\n }\n }\n };\n }\n\n /**\n * Receives a state machine signal, performs side effects of the transition\n * and stores the new state. Validates the transition as well.\n */\n _receiveSignal(signal, event) {\n var prevState = this._touchState;\n var nextState = null;\n if (Transitions[prevState] != null) {\n nextState = Transitions[prevState][signal];\n }\n if (this._touchState === NOT_RESPONDER && signal === RESPONDER_RELEASE) {\n return;\n }\n if (nextState == null || nextState === ERROR) {\n console.error(\"PressResponder: Invalid signal \" + signal + \" for state \" + prevState + \" on responder\");\n } else if (prevState !== nextState) {\n this._performTransitionSideEffects(prevState, nextState, signal, event);\n this._touchState = nextState;\n }\n }\n\n /**\n * Performs a transition between touchable states and identify any activations\n * or deactivations (and callback invocations).\n */\n _performTransitionSideEffects(prevState, nextState, signal, event) {\n if (isTerminalSignal(signal)) {\n // Pressable suppression of contextmenu on windows.\n // On Windows, the contextmenu is displayed after pointerup.\n // https://github.com/necolas/react-native-web/issues/2296\n setTimeout(() => {\n this._isPointerTouch = false;\n }, 0);\n this._touchActivatePosition = null;\n this._cancelLongPressDelayTimeout();\n }\n if (isPressStartSignal(prevState) && signal === LONG_PRESS_DETECTED) {\n var onLongPress = this._config.onLongPress;\n // Long press is not supported for keyboards because 'click' can be dispatched\n // immediately (and multiple times) after 'keydown'.\n if (onLongPress != null && event.nativeEvent.key == null) {\n onLongPress(event);\n this._longPressDispatched = true;\n }\n }\n var isPrevActive = isActiveSignal(prevState);\n var isNextActive = isActiveSignal(nextState);\n if (!isPrevActive && isNextActive) {\n this._activate(event);\n } else if (isPrevActive && !isNextActive) {\n this._deactivate(event);\n }\n if (isPressStartSignal(prevState) && signal === RESPONDER_RELEASE) {\n var _this$_config4 = this._config,\n _onLongPress = _this$_config4.onLongPress,\n onPress = _this$_config4.onPress;\n if (onPress != null) {\n var isPressCanceledByLongPress = _onLongPress != null && prevState === RESPONDER_ACTIVE_LONG_PRESS_START;\n if (!isPressCanceledByLongPress) {\n // If we never activated (due to delays), activate and deactivate now.\n if (!isNextActive && !isPrevActive) {\n this._activate(event);\n this._deactivate(event);\n }\n }\n }\n }\n this._cancelPressDelayTimeout();\n }\n _activate(event) {\n var _this$_config5 = this._config,\n onPressChange = _this$_config5.onPressChange,\n onPressStart = _this$_config5.onPressStart;\n var touch = getTouchFromResponderEvent(event);\n this._touchActivatePosition = {\n pageX: touch.pageX,\n pageY: touch.pageY\n };\n if (onPressStart != null) {\n onPressStart(event);\n }\n if (onPressChange != null) {\n onPressChange(true);\n }\n }\n _deactivate(event) {\n var _this$_config6 = this._config,\n onPressChange = _this$_config6.onPressChange,\n onPressEnd = _this$_config6.onPressEnd;\n function end() {\n if (onPressEnd != null) {\n onPressEnd(event);\n }\n if (onPressChange != null) {\n onPressChange(false);\n }\n }\n var delayPressEnd = normalizeDelay(this._config.delayPressEnd);\n if (delayPressEnd > 0) {\n this._pressOutDelayTimeout = setTimeout(() => {\n end();\n }, delayPressEnd);\n } else {\n end();\n }\n }\n _handleLongPress(event) {\n if (this._touchState === RESPONDER_ACTIVE_PRESS_START || this._touchState === RESPONDER_ACTIVE_LONG_PRESS_START) {\n this._receiveSignal(LONG_PRESS_DETECTED, event);\n }\n }\n _cancelLongPressDelayTimeout() {\n if (this._longPressDelayTimeout != null) {\n clearTimeout(this._longPressDelayTimeout);\n this._longPressDelayTimeout = null;\n }\n }\n _cancelPressDelayTimeout() {\n if (this._pressDelayTimeout != null) {\n clearTimeout(this._pressDelayTimeout);\n this._pressDelayTimeout = null;\n }\n }\n _cancelPressOutDelayTimeout() {\n if (this._pressOutDelayTimeout != null) {\n clearTimeout(this._pressOutDelayTimeout);\n this._pressOutDelayTimeout = null;\n }\n }\n}\nfunction normalizeDelay(delay, min, fallback) {\n if (min === void 0) {\n min = 0;\n }\n if (fallback === void 0) {\n fallback = 0;\n }\n return Math.max(min, delay !== null && delay !== void 0 ? delay : fallback);\n}\nfunction getTouchFromResponderEvent(event) {\n var _event$nativeEvent = event.nativeEvent,\n changedTouches = _event$nativeEvent.changedTouches,\n touches = _event$nativeEvent.touches;\n if (touches != null && touches.length > 0) {\n return touches[0];\n }\n if (changedTouches != null && changedTouches.length > 0) {\n return changedTouches[0];\n }\n return event.nativeEvent;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport PressResponder from './PressResponder';\nimport { useDebugValue, useEffect, useRef } from 'react';\nexport default function usePressEvents(hostRef, config) {\n var pressResponderRef = useRef(null);\n if (pressResponderRef.current == null) {\n pressResponderRef.current = new PressResponder(config);\n }\n var pressResponder = pressResponderRef.current;\n\n // Re-configure to use the current node and configuration.\n useEffect(() => {\n pressResponder.configure(config);\n }, [config, pressResponder]);\n\n // Reset the `pressResponder` when cleanup needs to occur. This is\n // a separate effect because we do not want to rest the responder when `config` changes.\n useEffect(() => {\n return () => {\n pressResponder.reset();\n };\n }, [pressResponder]);\n useDebugValue(config);\n return pressResponder.getEventHandlers();\n}","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport getBoundingClientRect from '../../modules/getBoundingClientRect';\nvar emptyFunction = () => {};\nvar emptyObject = {};\nvar emptyArray = [];\n\n/**\n * Safari produces very large identifiers that would cause the `touchBank` array\n * length to be so large as to crash the browser, if not normalized like this.\n * In the future the `touchBank` should use an object/map instead.\n */\nfunction normalizeIdentifier(identifier) {\n return identifier > 20 ? identifier % 20 : identifier;\n}\n\n/**\n * Converts a native DOM event to a ResponderEvent.\n * Mouse events are transformed into fake touch events.\n */\nexport default function createResponderEvent(domEvent, responderTouchHistoryStore) {\n var rect;\n var propagationWasStopped = false;\n var changedTouches;\n var touches;\n var domEventChangedTouches = domEvent.changedTouches;\n var domEventType = domEvent.type;\n var metaKey = domEvent.metaKey === true;\n var shiftKey = domEvent.shiftKey === true;\n var force = domEventChangedTouches && domEventChangedTouches[0].force || 0;\n var identifier = normalizeIdentifier(domEventChangedTouches && domEventChangedTouches[0].identifier || 0);\n var clientX = domEventChangedTouches && domEventChangedTouches[0].clientX || domEvent.clientX;\n var clientY = domEventChangedTouches && domEventChangedTouches[0].clientY || domEvent.clientY;\n var pageX = domEventChangedTouches && domEventChangedTouches[0].pageX || domEvent.pageX;\n var pageY = domEventChangedTouches && domEventChangedTouches[0].pageY || domEvent.pageY;\n var preventDefault = typeof domEvent.preventDefault === 'function' ? domEvent.preventDefault.bind(domEvent) : emptyFunction;\n var timestamp = domEvent.timeStamp;\n function normalizeTouches(touches) {\n return Array.prototype.slice.call(touches).map(touch => {\n return {\n force: touch.force,\n identifier: normalizeIdentifier(touch.identifier),\n get locationX() {\n return locationX(touch.clientX);\n },\n get locationY() {\n return locationY(touch.clientY);\n },\n pageX: touch.pageX,\n pageY: touch.pageY,\n target: touch.target,\n timestamp\n };\n });\n }\n if (domEventChangedTouches != null) {\n changedTouches = normalizeTouches(domEventChangedTouches);\n touches = normalizeTouches(domEvent.touches);\n } else {\n var emulatedTouches = [{\n force,\n identifier,\n get locationX() {\n return locationX(clientX);\n },\n get locationY() {\n return locationY(clientY);\n },\n pageX,\n pageY,\n target: domEvent.target,\n timestamp\n }];\n changedTouches = emulatedTouches;\n touches = domEventType === 'mouseup' || domEventType === 'dragstart' ? emptyArray : emulatedTouches;\n }\n var responderEvent = {\n bubbles: true,\n cancelable: true,\n // `currentTarget` is set before dispatch\n currentTarget: null,\n defaultPrevented: domEvent.defaultPrevented,\n dispatchConfig: emptyObject,\n eventPhase: domEvent.eventPhase,\n isDefaultPrevented() {\n return domEvent.defaultPrevented;\n },\n isPropagationStopped() {\n return propagationWasStopped;\n },\n isTrusted: domEvent.isTrusted,\n nativeEvent: {\n altKey: false,\n ctrlKey: false,\n metaKey,\n shiftKey,\n changedTouches,\n force,\n identifier,\n get locationX() {\n return locationX(clientX);\n },\n get locationY() {\n return locationY(clientY);\n },\n pageX,\n pageY,\n target: domEvent.target,\n timestamp,\n touches,\n type: domEventType\n },\n persist: emptyFunction,\n preventDefault,\n stopPropagation() {\n propagationWasStopped = true;\n },\n target: domEvent.target,\n timeStamp: timestamp,\n touchHistory: responderTouchHistoryStore.touchHistory\n };\n\n // Using getters and functions serves two purposes:\n // 1) The value of `currentTarget` is not initially available.\n // 2) Measuring the clientRect may cause layout jank and should only be done on-demand.\n function locationX(x) {\n rect = rect || getBoundingClientRect(responderEvent.currentTarget);\n if (rect) {\n return x - rect.left;\n }\n }\n function locationY(y) {\n rect = rect || getBoundingClientRect(responderEvent.currentTarget);\n if (rect) {\n return y - rect.top;\n }\n }\n return responderEvent;\n}","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nexport var BLUR = 'blur';\nexport var CONTEXT_MENU = 'contextmenu';\nexport var FOCUS_OUT = 'focusout';\nexport var MOUSE_DOWN = 'mousedown';\nexport var MOUSE_MOVE = 'mousemove';\nexport var MOUSE_UP = 'mouseup';\nexport var MOUSE_CANCEL = 'dragstart';\nexport var TOUCH_START = 'touchstart';\nexport var TOUCH_MOVE = 'touchmove';\nexport var TOUCH_END = 'touchend';\nexport var TOUCH_CANCEL = 'touchcancel';\nexport var SCROLL = 'scroll';\nexport var SELECT = 'select';\nexport var SELECTION_CHANGE = 'selectionchange';\nexport function isStartish(eventType) {\n return eventType === TOUCH_START || eventType === MOUSE_DOWN;\n}\nexport function isMoveish(eventType) {\n return eventType === TOUCH_MOVE || eventType === MOUSE_MOVE;\n}\nexport function isEndish(eventType) {\n return eventType === TOUCH_END || eventType === MOUSE_UP || isCancelish(eventType);\n}\nexport function isCancelish(eventType) {\n return eventType === TOUCH_CANCEL || eventType === MOUSE_CANCEL;\n}\nexport function isScroll(eventType) {\n return eventType === SCROLL;\n}\nexport function isSelectionChange(eventType) {\n return eventType === SELECT || eventType === SELECTION_CHANGE;\n}","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport isSelectionValid from '../../modules/isSelectionValid';\nvar keyName = '__reactResponderId';\nfunction getEventPath(domEvent) {\n // The 'selectionchange' event always has the 'document' as the target.\n // Use the anchor node as the initial target to reconstruct a path.\n // (We actually only need the first \"responder\" node in practice.)\n if (domEvent.type === 'selectionchange') {\n var target = window.getSelection().anchorNode;\n return composedPathFallback(target);\n } else {\n var path = domEvent.composedPath != null ? domEvent.composedPath() : composedPathFallback(domEvent.target);\n return path;\n }\n}\nfunction composedPathFallback(target) {\n var path = [];\n while (target != null && target !== document.body) {\n path.push(target);\n target = target.parentNode;\n }\n return path;\n}\n\n/**\n * Retrieve the responderId from a host node\n */\nfunction getResponderId(node) {\n if (node != null) {\n return node[keyName];\n }\n return null;\n}\n\n/**\n * Store the responderId on a host node\n */\nexport function setResponderId(node, id) {\n if (node != null) {\n node[keyName] = id;\n }\n}\n\n/**\n * Filter the event path to contain only the nodes attached to the responder system\n */\nexport function getResponderPaths(domEvent) {\n var idPath = [];\n var nodePath = [];\n var eventPath = getEventPath(domEvent);\n for (var i = 0; i < eventPath.length; i++) {\n var node = eventPath[i];\n var id = getResponderId(node);\n if (id != null) {\n idPath.push(id);\n nodePath.push(node);\n }\n }\n return {\n idPath,\n nodePath\n };\n}\n\n/**\n * Walk the paths and find the first common ancestor\n */\nexport function getLowestCommonAncestor(pathA, pathB) {\n var pathALength = pathA.length;\n var pathBLength = pathB.length;\n if (\n // If either path is empty\n pathALength === 0 || pathBLength === 0 ||\n // If the last elements aren't the same there can't be a common ancestor\n // that is connected to the responder system\n pathA[pathALength - 1] !== pathB[pathBLength - 1]) {\n return null;\n }\n var itemA = pathA[0];\n var indexA = 0;\n var itemB = pathB[0];\n var indexB = 0;\n\n // If A is deeper, skip indices that can't match.\n if (pathALength - pathBLength > 0) {\n indexA = pathALength - pathBLength;\n itemA = pathA[indexA];\n pathALength = pathBLength;\n }\n\n // If B is deeper, skip indices that can't match\n if (pathBLength - pathALength > 0) {\n indexB = pathBLength - pathALength;\n itemB = pathB[indexB];\n pathBLength = pathALength;\n }\n\n // Walk in lockstep until a match is found\n var depth = pathALength;\n while (depth--) {\n if (itemA === itemB) {\n return itemA;\n }\n itemA = pathA[indexA++];\n itemB = pathB[indexB++];\n }\n return null;\n}\n\n/**\n * Determine whether any of the active touches are within the current responder.\n * This cannot rely on W3C `targetTouches`, as neither IE11 nor Safari implement it.\n */\nexport function hasTargetTouches(target, touches) {\n if (!touches || touches.length === 0) {\n return false;\n }\n for (var i = 0; i < touches.length; i++) {\n var node = touches[i].target;\n if (node != null) {\n if (target.contains(node)) {\n return true;\n }\n }\n }\n return false;\n}\n\n/**\n * Ignore 'selectionchange' events that don't correspond with a person's intent to\n * select text.\n */\nexport function hasValidSelection(domEvent) {\n if (domEvent.type === 'selectionchange') {\n return isSelectionValid();\n }\n return domEvent.type === 'select';\n}\n\n/**\n * Events are only valid if the primary button was used without specific modifier keys.\n */\nexport function isPrimaryPointerDown(domEvent) {\n var altKey = domEvent.altKey,\n button = domEvent.button,\n buttons = domEvent.buttons,\n ctrlKey = domEvent.ctrlKey,\n type = domEvent.type;\n var isTouch = type === 'touchstart' || type === 'touchmove';\n var isPrimaryMouseDown = type === 'mousedown' && (button === 0 || buttons === 1);\n var isPrimaryMouseMove = type === 'mousemove' && buttons === 1;\n var noModifiers = altKey === false && ctrlKey === false;\n if (isTouch || isPrimaryMouseDown && noModifiers || isPrimaryMouseMove && noModifiers) {\n return true;\n }\n return false;\n}","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nexport default function isSelectionValid() {\n var selection = window.getSelection();\n var string = selection.toString();\n var anchorNode = selection.anchorNode;\n var focusNode = selection.focusNode;\n var isTextNode = anchorNode && anchorNode.nodeType === window.Node.TEXT_NODE || focusNode && focusNode.nodeType === window.Node.TEXT_NODE;\n return string.length >= 1 && string !== '\\n' && isTextNode;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport { isStartish, isMoveish, isEndish } from './ResponderEventTypes';\n/**\n * Tracks the position and time of each active touch by `touch.identifier`. We\n * should typically only see IDs in the range of 1-20 because IDs get recycled\n * when touches end and start again.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\nvar MAX_TOUCH_BANK = 20;\nfunction timestampForTouch(touch) {\n // The legacy internal implementation provides \"timeStamp\", which has been\n // renamed to \"timestamp\".\n return touch.timeStamp || touch.timestamp;\n}\n\n/**\n * TODO: Instead of making gestures recompute filtered velocity, we could\n * include a built in velocity computation that can be reused globally.\n */\nfunction createTouchRecord(touch) {\n return {\n touchActive: true,\n startPageX: touch.pageX,\n startPageY: touch.pageY,\n startTimeStamp: timestampForTouch(touch),\n currentPageX: touch.pageX,\n currentPageY: touch.pageY,\n currentTimeStamp: timestampForTouch(touch),\n previousPageX: touch.pageX,\n previousPageY: touch.pageY,\n previousTimeStamp: timestampForTouch(touch)\n };\n}\nfunction resetTouchRecord(touchRecord, touch) {\n touchRecord.touchActive = true;\n touchRecord.startPageX = touch.pageX;\n touchRecord.startPageY = touch.pageY;\n touchRecord.startTimeStamp = timestampForTouch(touch);\n touchRecord.currentPageX = touch.pageX;\n touchRecord.currentPageY = touch.pageY;\n touchRecord.currentTimeStamp = timestampForTouch(touch);\n touchRecord.previousPageX = touch.pageX;\n touchRecord.previousPageY = touch.pageY;\n touchRecord.previousTimeStamp = timestampForTouch(touch);\n}\nfunction getTouchIdentifier(_ref) {\n var identifier = _ref.identifier;\n if (identifier == null) {\n console.error('Touch object is missing identifier.');\n }\n if (__DEV__) {\n if (identifier > MAX_TOUCH_BANK) {\n console.error('Touch identifier %s is greater than maximum supported %s which causes ' + 'performance issues backfilling array locations for all of the indices.', identifier, MAX_TOUCH_BANK);\n }\n }\n return identifier;\n}\nfunction recordTouchStart(touch, touchHistory) {\n var identifier = getTouchIdentifier(touch);\n var touchRecord = touchHistory.touchBank[identifier];\n if (touchRecord) {\n resetTouchRecord(touchRecord, touch);\n } else {\n touchHistory.touchBank[identifier] = createTouchRecord(touch);\n }\n touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n}\nfunction recordTouchMove(touch, touchHistory) {\n var touchRecord = touchHistory.touchBank[getTouchIdentifier(touch)];\n if (touchRecord) {\n touchRecord.touchActive = true;\n touchRecord.previousPageX = touchRecord.currentPageX;\n touchRecord.previousPageY = touchRecord.currentPageY;\n touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;\n touchRecord.currentPageX = touch.pageX;\n touchRecord.currentPageY = touch.pageY;\n touchRecord.currentTimeStamp = timestampForTouch(touch);\n touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n } else {\n console.warn('Cannot record touch move without a touch start.\\n', \"Touch Move: \" + printTouch(touch) + \"\\n\", \"Touch Bank: \" + printTouchBank(touchHistory));\n }\n}\nfunction recordTouchEnd(touch, touchHistory) {\n var touchRecord = touchHistory.touchBank[getTouchIdentifier(touch)];\n if (touchRecord) {\n touchRecord.touchActive = false;\n touchRecord.previousPageX = touchRecord.currentPageX;\n touchRecord.previousPageY = touchRecord.currentPageY;\n touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;\n touchRecord.currentPageX = touch.pageX;\n touchRecord.currentPageY = touch.pageY;\n touchRecord.currentTimeStamp = timestampForTouch(touch);\n touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n } else {\n console.warn('Cannot record touch end without a touch start.\\n', \"Touch End: \" + printTouch(touch) + \"\\n\", \"Touch Bank: \" + printTouchBank(touchHistory));\n }\n}\nfunction printTouch(touch) {\n return JSON.stringify({\n identifier: touch.identifier,\n pageX: touch.pageX,\n pageY: touch.pageY,\n timestamp: timestampForTouch(touch)\n });\n}\nfunction printTouchBank(touchHistory) {\n var touchBank = touchHistory.touchBank;\n var printed = JSON.stringify(touchBank.slice(0, MAX_TOUCH_BANK));\n if (touchBank.length > MAX_TOUCH_BANK) {\n printed += ' (original size: ' + touchBank.length + ')';\n }\n return printed;\n}\nexport class ResponderTouchHistoryStore {\n constructor() {\n this._touchHistory = {\n touchBank: [],\n //Array\n numberActiveTouches: 0,\n // If there is only one active touch, we remember its location. This prevents\n // us having to loop through all of the touches all the time in the most\n // common case.\n indexOfSingleActiveTouch: -1,\n mostRecentTimeStamp: 0\n };\n }\n recordTouchTrack(topLevelType, nativeEvent) {\n var touchHistory = this._touchHistory;\n if (isMoveish(topLevelType)) {\n nativeEvent.changedTouches.forEach(touch => recordTouchMove(touch, touchHistory));\n } else if (isStartish(topLevelType)) {\n nativeEvent.changedTouches.forEach(touch => recordTouchStart(touch, touchHistory));\n touchHistory.numberActiveTouches = nativeEvent.touches.length;\n if (touchHistory.numberActiveTouches === 1) {\n touchHistory.indexOfSingleActiveTouch = nativeEvent.touches[0].identifier;\n }\n } else if (isEndish(topLevelType)) {\n nativeEvent.changedTouches.forEach(touch => recordTouchEnd(touch, touchHistory));\n touchHistory.numberActiveTouches = nativeEvent.touches.length;\n if (touchHistory.numberActiveTouches === 1) {\n var touchBank = touchHistory.touchBank;\n for (var i = 0; i < touchBank.length; i++) {\n var touchTrackToCheck = touchBank[i];\n if (touchTrackToCheck != null && touchTrackToCheck.touchActive) {\n touchHistory.indexOfSingleActiveTouch = i;\n break;\n }\n }\n if (__DEV__) {\n var activeRecord = touchBank[touchHistory.indexOfSingleActiveTouch];\n if (!(activeRecord != null && activeRecord.touchActive)) {\n console.error('Cannot find single active touch.');\n }\n }\n }\n }\n }\n get touchHistory() {\n return this._touchHistory;\n }\n}","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n/**\n * RESPONDER EVENT SYSTEM\n *\n * A single, global \"interaction lock\" on views. For a view to be the \"responder\" means\n * that pointer interactions are exclusive to that view and none other. The \"interaction\n * lock\" can be transferred (only) to ancestors of the current \"responder\" as long as\n * pointers continue to be active.\n *\n * Responder being granted:\n *\n * A view can become the \"responder\" after the following events:\n * * \"pointerdown\" (implemented using \"touchstart\", \"mousedown\")\n * * \"pointermove\" (implemented using \"touchmove\", \"mousemove\")\n * * \"scroll\" (while a pointer is down)\n * * \"selectionchange\" (while a pointer is down)\n *\n * If nothing is already the \"responder\", the event propagates to (capture) and from\n * (bubble) the event target until a view returns `true` for\n * `on*ShouldSetResponder(Capture)`.\n *\n * If something is already the responder, the event propagates to (capture) and from\n * (bubble) the lowest common ancestor of the event target and the current \"responder\".\n * Then negotiation happens between the current \"responder\" and a view that wants to\n * become the \"responder\": see the timing diagram below.\n *\n * (NOTE: Scrolled views either automatically become the \"responder\" or release the\n * \"interaction lock\". A native scroll view that isn't built on top of the responder\n * system must result in the current \"responder\" being notified that it no longer has\n * the \"interaction lock\" - the native system has taken over.\n *\n * Responder being released:\n *\n * As soon as there are no more active pointers that *started* inside descendants\n * of the *current* \"responder\", an `onResponderRelease` event is dispatched to the\n * current \"responder\", and the responder lock is released.\n *\n * Typical sequence of events:\n * * startShouldSetResponder\n * * responderGrant/Reject\n * * responderStart\n * * responderMove\n * * responderEnd\n * * responderRelease\n */\n\n/* Negotiation Performed\n +-----------------------+\n / \\\nProcess low level events to + Current Responder + wantsResponderID\ndetermine who to perform negot-| (if any exists at all) |\niation/transition | Otherwise just pass through|\n-------------------------------+----------------------------+------------------+\nBubble to find first ID | |\nto return true:wantsResponderID| |\n | |\n +--------------+ | |\n | onTouchStart | | |\n +------+-------+ none | |\n | return| |\n+-----------v-------------+true| +------------------------+ |\n|onStartShouldSetResponder|----->| onResponderStart (cur) |<-----------+\n+-----------+-------------+ | +------------------------+ | |\n | | | +--------+-------+\n | returned true for| false:REJECT +-------->|onResponderReject\n | wantsResponderID | | | +----------------+\n | (now attempt | +------------------+-----+ |\n | handoff) | | onResponder | |\n +------------------->| TerminationRequest | |\n | +------------------+-----+ |\n | | | +----------------+\n | true:GRANT +-------->|onResponderGrant|\n | | +--------+-------+\n | +------------------------+ | |\n | | onResponderTerminate |<-----------+\n | +------------------+-----+ |\n | | | +----------------+\n | +-------->|onResponderStart|\n | | +----------------+\nBubble to find first ID | |\nto return true:wantsResponderID| |\n | |\n +-------------+ | |\n | onTouchMove | | |\n +------+------+ none | |\n | return| |\n+-----------v-------------+true| +------------------------+ |\n|onMoveShouldSetResponder |----->| onResponderMove (cur) |<-----------+\n+-----------+-------------+ | +------------------------+ | |\n | | | +--------+-------+\n | returned true for| false:REJECT +-------->|onResponderReject\n | wantsResponderID | | | +----------------+\n | (now attempt | +------------------+-----+ |\n | handoff) | | onResponder | |\n +------------------->| TerminationRequest| |\n | +------------------+-----+ |\n | | | +----------------+\n | true:GRANT +-------->|onResponderGrant|\n | | +--------+-------+\n | +------------------------+ | |\n | | onResponderTerminate |<-----------+\n | +------------------+-----+ |\n | | | +----------------+\n | +-------->|onResponderMove |\n | | +----------------+\n | |\n | |\n Some active touch started| |\n inside current responder | +------------------------+ |\n +------------------------->| onResponderEnd | |\n | | +------------------------+ |\n +---+---------+ | |\n | onTouchEnd | | |\n +---+---------+ | |\n | | +------------------------+ |\n +------------------------->| onResponderEnd | |\n No active touches started| +-----------+------------+ |\n inside current responder | | |\n | v |\n | +------------------------+ |\n | | onResponderRelease | |\n | +------------------------+ |\n | |\n + + */\n\nimport createResponderEvent from './createResponderEvent';\nimport { isCancelish, isEndish, isMoveish, isScroll, isSelectionChange, isStartish } from './ResponderEventTypes';\nimport { getLowestCommonAncestor, getResponderPaths, hasTargetTouches, hasValidSelection, isPrimaryPointerDown, setResponderId } from './utils';\nimport { ResponderTouchHistoryStore } from './ResponderTouchHistoryStore';\nimport canUseDOM from '../canUseDom';\n\n/* ------------ TYPES ------------ */\n\nvar emptyObject = {};\n\n/* ------------ IMPLEMENTATION ------------ */\n\nvar startRegistration = ['onStartShouldSetResponderCapture', 'onStartShouldSetResponder', {\n bubbles: true\n}];\nvar moveRegistration = ['onMoveShouldSetResponderCapture', 'onMoveShouldSetResponder', {\n bubbles: true\n}];\nvar scrollRegistration = ['onScrollShouldSetResponderCapture', 'onScrollShouldSetResponder', {\n bubbles: false\n}];\nvar shouldSetResponderEvents = {\n touchstart: startRegistration,\n mousedown: startRegistration,\n touchmove: moveRegistration,\n mousemove: moveRegistration,\n scroll: scrollRegistration\n};\nvar emptyResponder = {\n id: null,\n idPath: null,\n node: null\n};\nvar responderListenersMap = new Map();\nvar isEmulatingMouseEvents = false;\nvar trackedTouchCount = 0;\nvar currentResponder = {\n id: null,\n node: null,\n idPath: null\n};\nvar responderTouchHistoryStore = new ResponderTouchHistoryStore();\nfunction changeCurrentResponder(responder) {\n currentResponder = responder;\n}\nfunction getResponderConfig(id) {\n var config = responderListenersMap.get(id);\n return config != null ? config : emptyObject;\n}\n\n/**\n * Process native events\n *\n * A single event listener is used to manage the responder system.\n * All pointers are tracked in the ResponderTouchHistoryStore. Native events\n * are interpreted in terms of the Responder System and checked to see if\n * the responder should be transferred. Each host node that is attached to\n * the Responder System has an ID, which is used to look up its associated\n * callbacks.\n */\nfunction eventListener(domEvent) {\n var eventType = domEvent.type;\n var eventTarget = domEvent.target;\n\n /**\n * Manage emulated events and early bailout.\n * Since PointerEvent is not used yet (lack of support in older Safari), it's\n * necessary to manually manage the mess of browser touch/mouse events.\n * And bailout early for termination events when there is no active responder.\n */\n\n // Flag when browser may produce emulated events\n if (eventType === 'touchstart') {\n isEmulatingMouseEvents = true;\n }\n // Remove flag when browser will not produce emulated events\n if (eventType === 'touchmove' || trackedTouchCount > 1) {\n isEmulatingMouseEvents = false;\n }\n // Ignore various events in particular circumstances\n if (\n // Ignore browser emulated mouse events\n eventType === 'mousedown' && isEmulatingMouseEvents || eventType === 'mousemove' && isEmulatingMouseEvents ||\n // Ignore mousemove if a mousedown didn't occur first\n eventType === 'mousemove' && trackedTouchCount < 1) {\n return;\n }\n // Remove flag after emulated events are finished\n if (isEmulatingMouseEvents && eventType === 'mouseup') {\n if (trackedTouchCount === 0) {\n isEmulatingMouseEvents = false;\n }\n return;\n }\n var isStartEvent = isStartish(eventType) && isPrimaryPointerDown(domEvent);\n var isMoveEvent = isMoveish(eventType);\n var isEndEvent = isEndish(eventType);\n var isScrollEvent = isScroll(eventType);\n var isSelectionChangeEvent = isSelectionChange(eventType);\n var responderEvent = createResponderEvent(domEvent, responderTouchHistoryStore);\n\n /**\n * Record the state of active pointers\n */\n\n if (isStartEvent || isMoveEvent || isEndEvent) {\n if (domEvent.touches) {\n trackedTouchCount = domEvent.touches.length;\n } else {\n if (isStartEvent) {\n trackedTouchCount = 1;\n } else if (isEndEvent) {\n trackedTouchCount = 0;\n }\n }\n responderTouchHistoryStore.recordTouchTrack(eventType, responderEvent.nativeEvent);\n }\n\n /**\n * Responder System logic\n */\n\n var eventPaths = getResponderPaths(domEvent);\n var wasNegotiated = false;\n var wantsResponder;\n\n // If an event occured that might change the current responder...\n if (isStartEvent || isMoveEvent || isScrollEvent && trackedTouchCount > 0) {\n // If there is already a responder, prune the event paths to the lowest common ancestor\n // of the existing responder and deepest target of the event.\n var currentResponderIdPath = currentResponder.idPath;\n var eventIdPath = eventPaths.idPath;\n if (currentResponderIdPath != null && eventIdPath != null) {\n var lowestCommonAncestor = getLowestCommonAncestor(currentResponderIdPath, eventIdPath);\n if (lowestCommonAncestor != null) {\n var indexOfLowestCommonAncestor = eventIdPath.indexOf(lowestCommonAncestor);\n // Skip the current responder so it doesn't receive unexpected \"shouldSet\" events.\n var index = indexOfLowestCommonAncestor + (lowestCommonAncestor === currentResponder.id ? 1 : 0);\n eventPaths = {\n idPath: eventIdPath.slice(index),\n nodePath: eventPaths.nodePath.slice(index)\n };\n } else {\n eventPaths = null;\n }\n }\n if (eventPaths != null) {\n // If a node wants to become the responder, attempt to transfer.\n wantsResponder = findWantsResponder(eventPaths, domEvent, responderEvent);\n if (wantsResponder != null) {\n // Sets responder if none exists, or negotates with existing responder.\n attemptTransfer(responderEvent, wantsResponder);\n wasNegotiated = true;\n }\n }\n }\n\n // If there is now a responder, invoke its callbacks for the lifecycle of the gesture.\n if (currentResponder.id != null && currentResponder.node != null) {\n var _currentResponder = currentResponder,\n id = _currentResponder.id,\n node = _currentResponder.node;\n var _getResponderConfig = getResponderConfig(id),\n onResponderStart = _getResponderConfig.onResponderStart,\n onResponderMove = _getResponderConfig.onResponderMove,\n onResponderEnd = _getResponderConfig.onResponderEnd,\n onResponderRelease = _getResponderConfig.onResponderRelease,\n onResponderTerminate = _getResponderConfig.onResponderTerminate,\n onResponderTerminationRequest = _getResponderConfig.onResponderTerminationRequest;\n responderEvent.bubbles = false;\n responderEvent.cancelable = false;\n responderEvent.currentTarget = node;\n\n // Start\n if (isStartEvent) {\n if (onResponderStart != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderStart';\n onResponderStart(responderEvent);\n }\n }\n // Move\n else if (isMoveEvent) {\n if (onResponderMove != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderMove';\n onResponderMove(responderEvent);\n }\n } else {\n var isTerminateEvent = isCancelish(eventType) ||\n // native context menu\n eventType === 'contextmenu' ||\n // window blur\n eventType === 'blur' && eventTarget === window ||\n // responder (or ancestors) blur\n eventType === 'blur' && eventTarget.contains(node) && domEvent.relatedTarget !== node ||\n // native scroll without using a pointer\n isScrollEvent && trackedTouchCount === 0 ||\n // native scroll on node that is parent of the responder (allow siblings to scroll)\n isScrollEvent && eventTarget.contains(node) && eventTarget !== node ||\n // native select/selectionchange on node\n isSelectionChangeEvent && hasValidSelection(domEvent);\n var isReleaseEvent = isEndEvent && !isTerminateEvent && !hasTargetTouches(node, domEvent.touches);\n\n // End\n if (isEndEvent) {\n if (onResponderEnd != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderEnd';\n onResponderEnd(responderEvent);\n }\n }\n // Release\n if (isReleaseEvent) {\n if (onResponderRelease != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderRelease';\n onResponderRelease(responderEvent);\n }\n changeCurrentResponder(emptyResponder);\n }\n // Terminate\n if (isTerminateEvent) {\n var shouldTerminate = true;\n\n // Responders can still avoid termination but only for these events.\n if (eventType === 'contextmenu' || eventType === 'scroll' || eventType === 'selectionchange') {\n // Only call this function is it wasn't already called during negotiation.\n if (wasNegotiated) {\n shouldTerminate = false;\n } else if (onResponderTerminationRequest != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderTerminationRequest';\n if (onResponderTerminationRequest(responderEvent) === false) {\n shouldTerminate = false;\n }\n }\n }\n if (shouldTerminate) {\n if (onResponderTerminate != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderTerminate';\n onResponderTerminate(responderEvent);\n }\n changeCurrentResponder(emptyResponder);\n isEmulatingMouseEvents = false;\n trackedTouchCount = 0;\n }\n }\n }\n }\n}\n\n/**\n * Walk the event path to/from the target node. At each node, stop and call the\n * relevant \"shouldSet\" functions for the given event type. If any of those functions\n * call \"stopPropagation\" on the event, stop searching for a responder.\n */\nfunction findWantsResponder(eventPaths, domEvent, responderEvent) {\n var shouldSetCallbacks = shouldSetResponderEvents[domEvent.type]; // for Flow\n\n if (shouldSetCallbacks != null) {\n var idPath = eventPaths.idPath,\n nodePath = eventPaths.nodePath;\n var shouldSetCallbackCaptureName = shouldSetCallbacks[0];\n var shouldSetCallbackBubbleName = shouldSetCallbacks[1];\n var bubbles = shouldSetCallbacks[2].bubbles;\n var check = function check(id, node, callbackName) {\n var config = getResponderConfig(id);\n var shouldSetCallback = config[callbackName];\n if (shouldSetCallback != null) {\n responderEvent.currentTarget = node;\n if (shouldSetCallback(responderEvent) === true) {\n // Start the path from the potential responder\n var prunedIdPath = idPath.slice(idPath.indexOf(id));\n return {\n id,\n node,\n idPath: prunedIdPath\n };\n }\n }\n };\n\n // capture\n for (var i = idPath.length - 1; i >= 0; i--) {\n var id = idPath[i];\n var node = nodePath[i];\n var result = check(id, node, shouldSetCallbackCaptureName);\n if (result != null) {\n return result;\n }\n if (responderEvent.isPropagationStopped() === true) {\n return;\n }\n }\n\n // bubble\n if (bubbles) {\n for (var _i = 0; _i < idPath.length; _i++) {\n var _id = idPath[_i];\n var _node = nodePath[_i];\n var _result = check(_id, _node, shouldSetCallbackBubbleName);\n if (_result != null) {\n return _result;\n }\n if (responderEvent.isPropagationStopped() === true) {\n return;\n }\n }\n } else {\n var _id2 = idPath[0];\n var _node2 = nodePath[0];\n var target = domEvent.target;\n if (target === _node2) {\n return check(_id2, _node2, shouldSetCallbackBubbleName);\n }\n }\n }\n}\n\n/**\n * Attempt to transfer the responder.\n */\nfunction attemptTransfer(responderEvent, wantsResponder) {\n var _currentResponder2 = currentResponder,\n currentId = _currentResponder2.id,\n currentNode = _currentResponder2.node;\n var id = wantsResponder.id,\n node = wantsResponder.node;\n var _getResponderConfig2 = getResponderConfig(id),\n onResponderGrant = _getResponderConfig2.onResponderGrant,\n onResponderReject = _getResponderConfig2.onResponderReject;\n responderEvent.bubbles = false;\n responderEvent.cancelable = false;\n responderEvent.currentTarget = node;\n\n // Set responder\n if (currentId == null) {\n if (onResponderGrant != null) {\n responderEvent.currentTarget = node;\n responderEvent.dispatchConfig.registrationName = 'onResponderGrant';\n onResponderGrant(responderEvent);\n }\n changeCurrentResponder(wantsResponder);\n }\n // Negotiate with current responder\n else {\n var _getResponderConfig3 = getResponderConfig(currentId),\n onResponderTerminate = _getResponderConfig3.onResponderTerminate,\n onResponderTerminationRequest = _getResponderConfig3.onResponderTerminationRequest;\n var allowTransfer = true;\n if (onResponderTerminationRequest != null) {\n responderEvent.currentTarget = currentNode;\n responderEvent.dispatchConfig.registrationName = 'onResponderTerminationRequest';\n if (onResponderTerminationRequest(responderEvent) === false) {\n allowTransfer = false;\n }\n }\n if (allowTransfer) {\n // Terminate existing responder\n if (onResponderTerminate != null) {\n responderEvent.currentTarget = currentNode;\n responderEvent.dispatchConfig.registrationName = 'onResponderTerminate';\n onResponderTerminate(responderEvent);\n }\n // Grant next responder\n if (onResponderGrant != null) {\n responderEvent.currentTarget = node;\n responderEvent.dispatchConfig.registrationName = 'onResponderGrant';\n onResponderGrant(responderEvent);\n }\n changeCurrentResponder(wantsResponder);\n } else {\n // Reject responder request\n if (onResponderReject != null) {\n responderEvent.currentTarget = node;\n responderEvent.dispatchConfig.registrationName = 'onResponderReject';\n onResponderReject(responderEvent);\n }\n }\n }\n}\n\n/* ------------ PUBLIC API ------------ */\n\n/**\n * Attach Listeners\n *\n * Use native events as ReactDOM doesn't have a non-plugin API to implement\n * this system.\n */\nvar documentEventsCapturePhase = ['blur', 'scroll'];\nvar documentEventsBubblePhase = [\n// mouse\n'mousedown', 'mousemove', 'mouseup', 'dragstart',\n// touch\n'touchstart', 'touchmove', 'touchend', 'touchcancel',\n// other\n'contextmenu', 'select', 'selectionchange'];\nexport function attachListeners() {\n if (canUseDOM && window.__reactResponderSystemActive == null) {\n window.addEventListener('blur', eventListener);\n documentEventsBubblePhase.forEach(eventType => {\n document.addEventListener(eventType, eventListener);\n });\n documentEventsCapturePhase.forEach(eventType => {\n document.addEventListener(eventType, eventListener, true);\n });\n window.__reactResponderSystemActive = true;\n }\n}\n\n/**\n * Register a node with the ResponderSystem.\n */\nexport function addNode(id, node, config) {\n setResponderId(node, id);\n responderListenersMap.set(id, config);\n}\n\n/**\n * Unregister a node with the ResponderSystem.\n */\nexport function removeNode(id) {\n if (currentResponder.id === id) {\n terminateResponder();\n }\n if (responderListenersMap.has(id)) {\n responderListenersMap.delete(id);\n }\n}\n\n/**\n * Allow the current responder to be terminated from within components to support\n * more complex requirements, such as use with other React libraries for working\n * with scroll views, input views, etc.\n */\nexport function terminateResponder() {\n var _currentResponder3 = currentResponder,\n id = _currentResponder3.id,\n node = _currentResponder3.node;\n if (id != null && node != null) {\n var _getResponderConfig4 = getResponderConfig(id),\n onResponderTerminate = _getResponderConfig4.onResponderTerminate;\n if (onResponderTerminate != null) {\n var event = createResponderEvent({}, responderTouchHistoryStore);\n event.currentTarget = node;\n onResponderTerminate(event);\n }\n changeCurrentResponder(emptyResponder);\n }\n isEmulatingMouseEvents = false;\n trackedTouchCount = 0;\n}\n\n/**\n * Allow unit tests to inspect the current responder in the system.\n * FOR TESTING ONLY.\n */\nexport function getResponderNode() {\n return currentResponder.node;\n}","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n/**\n * Hook for integrating the Responder System into React\n *\n * function SomeComponent({ onStartShouldSetResponder }) {\n * const ref = useRef(null);\n * useResponderEvents(ref, { onStartShouldSetResponder });\n * return
\n * }\n */\n\nimport * as React from 'react';\nimport * as ResponderSystem from './ResponderSystem';\nvar emptyObject = {};\nvar idCounter = 0;\nfunction useStable(getInitialValue) {\n var ref = React.useRef(null);\n if (ref.current == null) {\n ref.current = getInitialValue();\n }\n return ref.current;\n}\nexport default function useResponderEvents(hostRef, config) {\n if (config === void 0) {\n config = emptyObject;\n }\n var id = useStable(() => idCounter++);\n var isAttachedRef = React.useRef(false);\n\n // This is a separate effects so it doesn't run when the config changes.\n // On initial mount, attach global listeners if needed.\n // On unmount, remove node potentially attached to the Responder System.\n React.useEffect(() => {\n ResponderSystem.attachListeners();\n return () => {\n ResponderSystem.removeNode(id);\n };\n }, [id]);\n\n // Register and unregister with the Responder System as necessary\n React.useEffect(() => {\n var _config = config,\n onMoveShouldSetResponder = _config.onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture = _config.onMoveShouldSetResponderCapture,\n onScrollShouldSetResponder = _config.onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture = _config.onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder = _config.onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture = _config.onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder = _config.onStartShouldSetResponder,\n onStartShouldSetResponderCapture = _config.onStartShouldSetResponderCapture;\n var requiresResponderSystem = onMoveShouldSetResponder != null || onMoveShouldSetResponderCapture != null || onScrollShouldSetResponder != null || onScrollShouldSetResponderCapture != null || onSelectionChangeShouldSetResponder != null || onSelectionChangeShouldSetResponderCapture != null || onStartShouldSetResponder != null || onStartShouldSetResponderCapture != null;\n var node = hostRef.current;\n if (requiresResponderSystem) {\n ResponderSystem.addNode(id, node, config);\n isAttachedRef.current = true;\n } else if (isAttachedRef.current) {\n ResponderSystem.removeNode(id);\n isAttachedRef.current = false;\n }\n }, [config, hostRef, id]);\n React.useDebugValue({\n isResponder: hostRef.current === ResponderSystem.getResponderNode()\n });\n React.useDebugValue(config);\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport * as React from 'react';\nvar UNINITIALIZED = typeof Symbol === 'function' && typeof Symbol() === 'symbol' ? Symbol() : Object.freeze({});\nexport default function useStable(getInitialValue) {\n var ref = React.useRef(UNINITIALIZED);\n if (ref.current === UNINITIALIZED) {\n ref.current = getInitialValue();\n }\n // $FlowFixMe (#64650789) Trouble refining types where `Symbol` is concerned.\n return ref.current;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar warnedKeys = {};\n\n/**\n * A simple function that prints a warning message once per session.\n *\n * @param {string} key - The key used to ensure the message is printed once.\n * This should be unique to the callsite.\n * @param {string} message - The message to print\n */\nexport function warnOnce(key, message) {\n if (process.env.NODE_ENV !== 'production') {\n if (warnedKeys[key]) {\n return;\n }\n console.warn(message);\n warnedKeys[key] = true;\n }\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport Platform from '../../../exports/Platform';\nimport RCTDeviceEventEmitter from './RCTDeviceEventEmitter';\nimport invariant from 'fbjs/lib/invariant';\n/**\n * `NativeEventEmitter` is intended for use by Native Modules to emit events to\n * JavaScript listeners. If a `NativeModule` is supplied to the constructor, it\n * will be notified (via `addListener` and `removeListeners`) when the listener\n * count changes to manage \"native memory\".\n *\n * Currently, all native events are fired via a global `RCTDeviceEventEmitter`.\n * This means event names must be globally unique, and it means that call sites\n * can theoretically listen to `RCTDeviceEventEmitter` (although discouraged).\n */\nexport default class NativeEventEmitter {\n constructor(nativeModule) {\n if (Platform.OS === 'ios') {\n invariant(nativeModule != null, '`new NativeEventEmitter()` requires a non-null argument.');\n this._nativeModule = nativeModule;\n }\n }\n addListener(eventType, listener, context) {\n var _this$_nativeModule;\n (_this$_nativeModule = this._nativeModule) == null ? void 0 : _this$_nativeModule.addListener(eventType);\n var subscription = RCTDeviceEventEmitter.addListener(eventType, listener, context);\n return {\n remove: () => {\n if (subscription != null) {\n var _this$_nativeModule2;\n (_this$_nativeModule2 = this._nativeModule) == null ? void 0 : _this$_nativeModule2.removeListeners(1);\n // $FlowFixMe[incompatible-use]\n subscription.remove();\n subscription = null;\n }\n }\n };\n }\n\n /**\n * @deprecated Use `remove` on the EventSubscription from `addListener`.\n */\n removeListener(eventType, listener) {\n var _this$_nativeModule3;\n (_this$_nativeModule3 = this._nativeModule) == null ? void 0 : _this$_nativeModule3.removeListeners(1);\n // NOTE: This will report a deprecation notice via `console.error`.\n // $FlowFixMe[prop-missing] - `removeListener` exists but is deprecated.\n RCTDeviceEventEmitter.removeListener(eventType, listener);\n }\n emit(eventType) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n // Generally, `RCTDeviceEventEmitter` is directly invoked. But this is\n // included for completeness.\n RCTDeviceEventEmitter.emit(eventType, ...args);\n }\n removeAllListeners(eventType) {\n var _this$_nativeModule4;\n invariant(eventType != null, '`NativeEventEmitter.removeAllListener()` requires a non-null argument.');\n (_this$_nativeModule4 = this._nativeModule) == null ? void 0 : _this$_nativeModule4.removeListeners(this.listenerCount(eventType));\n RCTDeviceEventEmitter.removeAllListeners(eventType);\n }\n listenerCount(eventType) {\n return RCTDeviceEventEmitter.listenerCount(eventType);\n }\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\nimport EventEmitter from '../vendor/emitter/EventEmitter';\n\n// FIXME: use typed events\n\n/**\n * Global EventEmitter used by the native platform to emit events to JavaScript.\n * Events are identified by globally unique event names.\n *\n * NativeModules that emit events should instead subclass `NativeEventEmitter`.\n */\nexport default new EventEmitter();","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\n/**\n * Used to find the indices of the frames that overlap the given offsets. Useful for finding the\n * items that bound different windows of content, such as the visible area or the buffered overscan\n * area.\n */\nexport function elementsThatOverlapOffsets(offsets, props, getFrameMetrics, zoomScale) {\n if (zoomScale === void 0) {\n zoomScale = 1;\n }\n var itemCount = props.getItemCount(props.data);\n var result = [];\n for (var offsetIndex = 0; offsetIndex < offsets.length; offsetIndex++) {\n var currentOffset = offsets[offsetIndex];\n var left = 0;\n var right = itemCount - 1;\n while (left <= right) {\n // eslint-disable-next-line no-bitwise\n var mid = left + (right - left >>> 1);\n var frame = getFrameMetrics(mid, props);\n var scaledOffsetStart = frame.offset * zoomScale;\n var scaledOffsetEnd = (frame.offset + frame.length) * zoomScale;\n\n // We want the first frame that contains the offset, with inclusive bounds. Thus, for the\n // first frame the scaledOffsetStart is inclusive, while for other frames it is exclusive.\n if (mid === 0 && currentOffset < scaledOffsetStart || mid !== 0 && currentOffset <= scaledOffsetStart) {\n right = mid - 1;\n } else if (currentOffset > scaledOffsetEnd) {\n left = mid + 1;\n } else {\n result[offsetIndex] = mid;\n break;\n }\n }\n }\n return result;\n}\n\n/**\n * Computes the number of elements in the `next` range that are new compared to the `prev` range.\n * Handy for calculating how many new items will be rendered when the render window changes so we\n * can restrict the number of new items render at once so that content can appear on the screen\n * faster.\n */\nexport function newRangeCount(prev, next) {\n return next.last - next.first + 1 - Math.max(0, 1 + Math.min(next.last, prev.last) - Math.max(next.first, prev.first));\n}\n\n/**\n * Custom logic for determining which items should be rendered given the current frame and scroll\n * metrics, as well as the previous render state. The algorithm may evolve over time, but generally\n * prioritizes the visible area first, then expands that with overscan regions ahead and behind,\n * biased in the direction of scroll.\n */\nexport function computeWindowedRenderLimits(props, maxToRenderPerBatch, windowSize, prev, getFrameMetricsApprox, scrollMetrics) {\n var itemCount = props.getItemCount(props.data);\n if (itemCount === 0) {\n return {\n first: 0,\n last: -1\n };\n }\n var offset = scrollMetrics.offset,\n velocity = scrollMetrics.velocity,\n visibleLength = scrollMetrics.visibleLength,\n _scrollMetrics$zoomSc = scrollMetrics.zoomScale,\n zoomScale = _scrollMetrics$zoomSc === void 0 ? 1 : _scrollMetrics$zoomSc;\n\n // Start with visible area, then compute maximum overscan region by expanding from there, biased\n // in the direction of scroll. Total overscan area is capped, which should cap memory consumption\n // too.\n var visibleBegin = Math.max(0, offset);\n var visibleEnd = visibleBegin + visibleLength;\n var overscanLength = (windowSize - 1) * visibleLength;\n\n // Considering velocity seems to introduce more churn than it's worth.\n var leadFactor = 0.5; // Math.max(0, Math.min(1, velocity / 25 + 0.5));\n\n var fillPreference = velocity > 1 ? 'after' : velocity < -1 ? 'before' : 'none';\n var overscanBegin = Math.max(0, visibleBegin - (1 - leadFactor) * overscanLength);\n var overscanEnd = Math.max(0, visibleEnd + leadFactor * overscanLength);\n var lastItemOffset = getFrameMetricsApprox(itemCount - 1, props).offset * zoomScale;\n if (lastItemOffset < overscanBegin) {\n // Entire list is before our overscan window\n return {\n first: Math.max(0, itemCount - 1 - maxToRenderPerBatch),\n last: itemCount - 1\n };\n }\n\n // Find the indices that correspond to the items at the render boundaries we're targeting.\n var _elementsThatOverlapO = elementsThatOverlapOffsets([overscanBegin, visibleBegin, visibleEnd, overscanEnd], props, getFrameMetricsApprox, zoomScale),\n overscanFirst = _elementsThatOverlapO[0],\n first = _elementsThatOverlapO[1],\n last = _elementsThatOverlapO[2],\n overscanLast = _elementsThatOverlapO[3];\n overscanFirst = overscanFirst == null ? 0 : overscanFirst;\n first = first == null ? Math.max(0, overscanFirst) : first;\n overscanLast = overscanLast == null ? itemCount - 1 : overscanLast;\n last = last == null ? Math.min(overscanLast, first + maxToRenderPerBatch - 1) : last;\n var visible = {\n first,\n last\n };\n\n // We want to limit the number of new cells we're rendering per batch so that we can fill the\n // content on the screen quickly. If we rendered the entire overscan window at once, the user\n // could be staring at white space for a long time waiting for a bunch of offscreen content to\n // render.\n var newCellCount = newRangeCount(prev, visible);\n while (true) {\n if (first <= overscanFirst && last >= overscanLast) {\n // If we fill the entire overscan range, we're done.\n break;\n }\n var maxNewCells = newCellCount >= maxToRenderPerBatch;\n var firstWillAddMore = first <= prev.first || first > prev.last;\n var firstShouldIncrement = first > overscanFirst && (!maxNewCells || !firstWillAddMore);\n var lastWillAddMore = last >= prev.last || last < prev.first;\n var lastShouldIncrement = last < overscanLast && (!maxNewCells || !lastWillAddMore);\n if (maxNewCells && !firstShouldIncrement && !lastShouldIncrement) {\n // We only want to stop if we've hit maxNewCells AND we cannot increment first or last\n // without rendering new items. This let's us preserve as many already rendered items as\n // possible, reducing render churn and keeping the rendered overscan range as large as\n // possible.\n break;\n }\n if (firstShouldIncrement && !(fillPreference === 'after' && lastShouldIncrement && lastWillAddMore)) {\n if (firstWillAddMore) {\n newCellCount++;\n }\n first--;\n }\n if (lastShouldIncrement && !(fillPreference === 'before' && firstShouldIncrement && firstWillAddMore)) {\n if (lastWillAddMore) {\n newCellCount++;\n }\n last++;\n }\n }\n if (!(last >= first && first >= 0 && last < itemCount && first >= overscanFirst && last <= overscanLast && first <= visible.first && last >= visible.last)) {\n throw new Error('Bad window calculation ' + JSON.stringify({\n first,\n last,\n itemCount,\n overscanFirst,\n overscanLast,\n visible\n }));\n }\n return {\n first,\n last\n };\n}\nexport function keyExtractor(item, index) {\n if (typeof item === 'object' && (item == null ? void 0 : item.key) != null) {\n return item.key;\n }\n if (typeof item === 'object' && (item == null ? void 0 : item.id) != null) {\n return item.id;\n }\n return String(index);\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n\n'use strict';\n\nimport InteractionManager from '../../../exports/InteractionManager';\n\n/**\n * A simple class for batching up invocations of a low-pri callback. A timeout is set to run the\n * callback once after a delay, no matter how many times it's scheduled. Once the delay is reached,\n * InteractionManager.runAfterInteractions is used to invoke the callback after any hi-pri\n * interactions are done running.\n *\n * Make sure to cleanup with dispose(). Example:\n *\n * class Widget extends React.Component {\n * _batchedSave: new Batchinator(() => this._saveState, 1000);\n * _saveSate() {\n * // save this.state to disk\n * }\n * componentDidUpdate() {\n * this._batchedSave.schedule();\n * }\n * componentWillUnmount() {\n * this._batchedSave.dispose();\n * }\n * ...\n * }\n */\nclass Batchinator {\n constructor(callback, delayMS) {\n this._delay = delayMS;\n this._callback = callback;\n }\n /*\n * Cleanup any pending tasks.\n *\n * By default, if there is a pending task the callback is run immediately. Set the option abort to\n * true to not call the callback if it was pending.\n */\n dispose(options) {\n if (options === void 0) {\n options = {\n abort: false\n };\n }\n if (this._taskHandle) {\n this._taskHandle.cancel();\n if (!options.abort) {\n this._callback();\n }\n this._taskHandle = null;\n }\n }\n schedule() {\n if (this._taskHandle) {\n return;\n }\n var timeoutHandle = setTimeout(() => {\n this._taskHandle = InteractionManager.runAfterInteractions(() => {\n // Note that we clear the handle before invoking the callback so that if the callback calls\n // schedule again, it will actually schedule another task.\n this._taskHandle = null;\n this._callback();\n });\n }, this._delay);\n this._taskHandle = {\n cancel: () => clearTimeout(timeoutHandle)\n };\n }\n}\nexport default Batchinator;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n\n'use strict';\n\nfunction clamp(min, value, max) {\n if (value < min) {\n return min;\n }\n if (value > max) {\n return max;\n }\n return value;\n}\nexport default clamp;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n\n'use strict';\n\n/**\n * Intentional info-level logging for clear separation from ad-hoc console debug logging.\n */\nfunction infoLog() {\n return console.log(...arguments);\n}\nexport default infoLog;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\nimport invariant from 'fbjs/lib/invariant';\nexport class CellRenderMask {\n constructor(numCells) {\n invariant(numCells >= 0, 'CellRenderMask must contain a non-negative number os cells');\n this._numCells = numCells;\n if (numCells === 0) {\n this._regions = [];\n } else {\n this._regions = [{\n first: 0,\n last: numCells - 1,\n isSpacer: true\n }];\n }\n }\n enumerateRegions() {\n return this._regions;\n }\n addCells(cells) {\n invariant(cells.first >= 0 && cells.first < this._numCells && cells.last >= -1 && cells.last < this._numCells && cells.last >= cells.first - 1, 'CellRenderMask.addCells called with invalid cell range');\n\n // VirtualizedList uses inclusive ranges, where zero-count states are\n // possible. E.g. [0, -1] for no cells, starting at 0.\n if (cells.last < cells.first) {\n return;\n }\n var _this$_findRegion = this._findRegion(cells.first),\n firstIntersect = _this$_findRegion[0],\n firstIntersectIdx = _this$_findRegion[1];\n var _this$_findRegion2 = this._findRegion(cells.last),\n lastIntersect = _this$_findRegion2[0],\n lastIntersectIdx = _this$_findRegion2[1];\n\n // Fast-path if the cells to add are already all present in the mask. We\n // will otherwise need to do some mutation.\n if (firstIntersectIdx === lastIntersectIdx && !firstIntersect.isSpacer) {\n return;\n }\n\n // We need to replace the existing covered regions with 1-3 new regions\n // depending whether we need to split spacers out of overlapping regions.\n var newLeadRegion = [];\n var newTailRegion = [];\n var newMainRegion = _objectSpread(_objectSpread({}, cells), {}, {\n isSpacer: false\n });\n if (firstIntersect.first < newMainRegion.first) {\n if (firstIntersect.isSpacer) {\n newLeadRegion.push({\n first: firstIntersect.first,\n last: newMainRegion.first - 1,\n isSpacer: true\n });\n } else {\n newMainRegion.first = firstIntersect.first;\n }\n }\n if (lastIntersect.last > newMainRegion.last) {\n if (lastIntersect.isSpacer) {\n newTailRegion.push({\n first: newMainRegion.last + 1,\n last: lastIntersect.last,\n isSpacer: true\n });\n } else {\n newMainRegion.last = lastIntersect.last;\n }\n }\n var replacementRegions = [...newLeadRegion, newMainRegion, ...newTailRegion];\n var numRegionsToDelete = lastIntersectIdx - firstIntersectIdx + 1;\n this._regions.splice(firstIntersectIdx, numRegionsToDelete, ...replacementRegions);\n }\n numCells() {\n return this._numCells;\n }\n equals(other) {\n return this._numCells === other._numCells && this._regions.length === other._regions.length && this._regions.every((region, i) => region.first === other._regions[i].first && region.last === other._regions[i].last && region.isSpacer === other._regions[i].isSpacer);\n }\n _findRegion(cellIdx) {\n var firstIdx = 0;\n var lastIdx = this._regions.length - 1;\n while (firstIdx <= lastIdx) {\n var middleIdx = Math.floor((firstIdx + lastIdx) / 2);\n var middleRegion = this._regions[middleIdx];\n if (cellIdx >= middleRegion.first && cellIdx <= middleRegion.last) {\n return [middleRegion, middleIdx];\n } else if (cellIdx < middleRegion.first) {\n lastIdx = middleIdx - 1;\n } else if (cellIdx > middleRegion.last) {\n firstIdx = middleIdx + 1;\n }\n }\n invariant(false, \"A region was not found containing cellIdx \" + cellIdx);\n }\n}","import _createForOfIteratorHelperLoose from \"@babel/runtime/helpers/createForOfIteratorHelperLoose\";\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\nimport invariant from 'fbjs/lib/invariant';\nexport default class ChildListCollection {\n constructor() {\n this._cellKeyToChildren = new Map();\n this._childrenToCellKey = new Map();\n }\n add(list, cellKey) {\n var _this$_cellKeyToChild;\n invariant(!this._childrenToCellKey.has(list), 'Trying to add already present child list');\n var cellLists = (_this$_cellKeyToChild = this._cellKeyToChildren.get(cellKey)) !== null && _this$_cellKeyToChild !== void 0 ? _this$_cellKeyToChild : new Set();\n cellLists.add(list);\n this._cellKeyToChildren.set(cellKey, cellLists);\n this._childrenToCellKey.set(list, cellKey);\n }\n remove(list) {\n var cellKey = this._childrenToCellKey.get(list);\n invariant(cellKey != null, 'Trying to remove non-present child list');\n this._childrenToCellKey.delete(list);\n var cellLists = this._cellKeyToChildren.get(cellKey);\n invariant(cellLists, '_cellKeyToChildren should contain cellKey');\n cellLists.delete(list);\n if (cellLists.size === 0) {\n this._cellKeyToChildren.delete(cellKey);\n }\n }\n forEach(fn) {\n for (var _iterator = _createForOfIteratorHelperLoose(this._cellKeyToChildren.values()), _step; !(_step = _iterator()).done;) {\n var listSet = _step.value;\n for (var _iterator2 = _createForOfIteratorHelperLoose(listSet), _step2; !(_step2 = _iterator2()).done;) {\n var list = _step2.value;\n fn(list);\n }\n }\n }\n forEachInCell(cellKey, fn) {\n var _this$_cellKeyToChild2;\n var listSet = (_this$_cellKeyToChild2 = this._cellKeyToChildren.get(cellKey)) !== null && _this$_cellKeyToChild2 !== void 0 ? _this$_cellKeyToChild2 : [];\n for (var _iterator3 = _createForOfIteratorHelperLoose(listSet), _step3; !(_step3 = _iterator3()).done;) {\n var list = _step3.value;\n fn(list);\n }\n }\n anyInCell(cellKey, fn) {\n var _this$_cellKeyToChild3;\n var listSet = (_this$_cellKeyToChild3 = this._cellKeyToChildren.get(cellKey)) !== null && _this$_cellKeyToChild3 !== void 0 ? _this$_cellKeyToChild3 : [];\n for (var _iterator4 = _createForOfIteratorHelperLoose(listSet), _step4; !(_step4 = _iterator4()).done;) {\n var list = _step4.value;\n if (fn(list)) {\n return true;\n }\n }\n return false;\n }\n size() {\n return this._childrenToCellKey.size;\n }\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nclass Info {\n constructor() {\n this.any_blank_count = 0;\n this.any_blank_ms = 0;\n this.any_blank_speed_sum = 0;\n this.mostly_blank_count = 0;\n this.mostly_blank_ms = 0;\n this.pixels_blank = 0;\n this.pixels_sampled = 0;\n this.pixels_scrolled = 0;\n this.total_time_spent = 0;\n this.sample_count = 0;\n }\n}\nvar DEBUG = false;\nvar _listeners = [];\nvar _minSampleCount = 10;\nvar _sampleRate = DEBUG ? 1 : null;\n\n/**\n * A helper class for detecting when the maximem fill rate of `VirtualizedList` is exceeded.\n * By default the sampling rate is set to zero and this will do nothing. If you want to collect\n * samples (e.g. to log them), make sure to call `FillRateHelper.setSampleRate(0.0-1.0)`.\n *\n * Listeners and sample rate are global for all `VirtualizedList`s - typical usage will combine with\n * `SceneTracker.getActiveScene` to determine the context of the events.\n */\nclass FillRateHelper {\n static addListener(callback) {\n if (_sampleRate === null) {\n console.warn('Call `FillRateHelper.setSampleRate` before `addListener`.');\n }\n _listeners.push(callback);\n return {\n remove: () => {\n _listeners = _listeners.filter(listener => callback !== listener);\n }\n };\n }\n static setSampleRate(sampleRate) {\n _sampleRate = sampleRate;\n }\n static setMinSampleCount(minSampleCount) {\n _minSampleCount = minSampleCount;\n }\n constructor(getFrameMetrics) {\n this._anyBlankStartTime = null;\n this._enabled = false;\n this._info = new Info();\n this._mostlyBlankStartTime = null;\n this._samplesStartTime = null;\n this._getFrameMetrics = getFrameMetrics;\n this._enabled = (_sampleRate || 0) > Math.random();\n this._resetData();\n }\n activate() {\n if (this._enabled && this._samplesStartTime == null) {\n DEBUG && console.debug('FillRateHelper: activate');\n this._samplesStartTime = global.performance.now();\n }\n }\n deactivateAndFlush() {\n if (!this._enabled) {\n return;\n }\n var start = this._samplesStartTime; // const for flow\n if (start == null) {\n DEBUG && console.debug('FillRateHelper: bail on deactivate with no start time');\n return;\n }\n if (this._info.sample_count < _minSampleCount) {\n // Don't bother with under-sampled events.\n this._resetData();\n return;\n }\n var total_time_spent = global.performance.now() - start;\n var info = _objectSpread(_objectSpread({}, this._info), {}, {\n total_time_spent\n });\n if (DEBUG) {\n var derived = {\n avg_blankness: this._info.pixels_blank / this._info.pixels_sampled,\n avg_speed: this._info.pixels_scrolled / (total_time_spent / 1000),\n avg_speed_when_any_blank: this._info.any_blank_speed_sum / this._info.any_blank_count,\n any_blank_per_min: this._info.any_blank_count / (total_time_spent / 1000 / 60),\n any_blank_time_frac: this._info.any_blank_ms / total_time_spent,\n mostly_blank_per_min: this._info.mostly_blank_count / (total_time_spent / 1000 / 60),\n mostly_blank_time_frac: this._info.mostly_blank_ms / total_time_spent\n };\n for (var key in derived) {\n // $FlowFixMe[prop-missing]\n derived[key] = Math.round(1000 * derived[key]) / 1000;\n }\n console.debug('FillRateHelper deactivateAndFlush: ', {\n derived,\n info\n });\n }\n _listeners.forEach(listener => listener(info));\n this._resetData();\n }\n computeBlankness(props, cellsAroundViewport, scrollMetrics) {\n if (!this._enabled || props.getItemCount(props.data) === 0 || cellsAroundViewport.last < cellsAroundViewport.first || this._samplesStartTime == null) {\n return 0;\n }\n var dOffset = scrollMetrics.dOffset,\n offset = scrollMetrics.offset,\n velocity = scrollMetrics.velocity,\n visibleLength = scrollMetrics.visibleLength;\n\n // Denominator metrics that we track for all events - most of the time there is no blankness and\n // we want to capture that.\n this._info.sample_count++;\n this._info.pixels_sampled += Math.round(visibleLength);\n this._info.pixels_scrolled += Math.round(Math.abs(dOffset));\n var scrollSpeed = Math.round(Math.abs(velocity) * 1000); // px / sec\n\n // Whether blank now or not, record the elapsed time blank if we were blank last time.\n var now = global.performance.now();\n if (this._anyBlankStartTime != null) {\n this._info.any_blank_ms += now - this._anyBlankStartTime;\n }\n this._anyBlankStartTime = null;\n if (this._mostlyBlankStartTime != null) {\n this._info.mostly_blank_ms += now - this._mostlyBlankStartTime;\n }\n this._mostlyBlankStartTime = null;\n var blankTop = 0;\n var first = cellsAroundViewport.first;\n var firstFrame = this._getFrameMetrics(first, props);\n while (first <= cellsAroundViewport.last && (!firstFrame || !firstFrame.inLayout)) {\n firstFrame = this._getFrameMetrics(first, props);\n first++;\n }\n // Only count blankTop if we aren't rendering the first item, otherwise we will count the header\n // as blank.\n if (firstFrame && first > 0) {\n blankTop = Math.min(visibleLength, Math.max(0, firstFrame.offset - offset));\n }\n var blankBottom = 0;\n var last = cellsAroundViewport.last;\n var lastFrame = this._getFrameMetrics(last, props);\n while (last >= cellsAroundViewport.first && (!lastFrame || !lastFrame.inLayout)) {\n lastFrame = this._getFrameMetrics(last, props);\n last--;\n }\n // Only count blankBottom if we aren't rendering the last item, otherwise we will count the\n // footer as blank.\n if (lastFrame && last < props.getItemCount(props.data) - 1) {\n var bottomEdge = lastFrame.offset + lastFrame.length;\n blankBottom = Math.min(visibleLength, Math.max(0, offset + visibleLength - bottomEdge));\n }\n var pixels_blank = Math.round(blankTop + blankBottom);\n var blankness = pixels_blank / visibleLength;\n if (blankness > 0) {\n this._anyBlankStartTime = now;\n this._info.any_blank_speed_sum += scrollSpeed;\n this._info.any_blank_count++;\n this._info.pixels_blank += pixels_blank;\n if (blankness > 0.5) {\n this._mostlyBlankStartTime = now;\n this._info.mostly_blank_count++;\n }\n } else if (scrollSpeed < 0.01 || Math.abs(dOffset) < 1) {\n this.deactivateAndFlush();\n }\n return blankness;\n }\n enabled() {\n return this._enabled;\n }\n _resetData() {\n this._anyBlankStartTime = null;\n this._info = new Info();\n this._mostlyBlankStartTime = null;\n this._samplesStartTime = null;\n }\n}\nexport default FillRateHelper;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\nimport invariant from 'fbjs/lib/invariant';\nimport * as React from 'react';\n\n/**\n * `setState` is called asynchronously, and should not rely on the value of\n * `this.props` or `this.state`:\n * https://reactjs.org/docs/state-and-lifecycle.html#state-updates-may-be-asynchronous\n *\n * SafePureComponent adds runtime enforcement, to catch cases where these\n * variables are read in a state updater function, instead of the ones passed\n * in.\n */\nexport default class StateSafePureComponent extends React.PureComponent {\n constructor(props) {\n super(props);\n this._inAsyncStateUpdate = false;\n this._installSetStateHooks();\n }\n setState(partialState, callback) {\n if (typeof partialState === 'function') {\n super.setState((state, props) => {\n this._inAsyncStateUpdate = true;\n var ret;\n try {\n ret = partialState(state, props);\n } catch (err) {\n throw err;\n } finally {\n this._inAsyncStateUpdate = false;\n }\n return ret;\n }, callback);\n } else {\n super.setState(partialState, callback);\n }\n }\n _installSetStateHooks() {\n var that = this;\n var props = this.props,\n state = this.state;\n Object.defineProperty(this, 'props', {\n get() {\n invariant(!that._inAsyncStateUpdate, '\"this.props\" should not be accessed during state updates');\n return props;\n },\n set(newProps) {\n props = newProps;\n }\n });\n Object.defineProperty(this, 'state', {\n get() {\n invariant(!that._inAsyncStateUpdate, '\"this.state\" should not be acceessed during state updates');\n return state;\n },\n set(newState) {\n state = newState;\n }\n });\n }\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _createForOfIteratorHelperLoose from \"@babel/runtime/helpers/createForOfIteratorHelperLoose\";\nimport invariant from 'fbjs/lib/invariant';\n/**\n * A Utility class for calculating viewable items based on current metrics like scroll position and\n * layout.\n *\n * An item is said to be in a \"viewable\" state when any of the following\n * is true for longer than `minimumViewTime` milliseconds (after an interaction if `waitForInteraction`\n * is true):\n *\n * - Occupying >= `viewAreaCoveragePercentThreshold` of the view area XOR fraction of the item\n * visible in the view area >= `itemVisiblePercentThreshold`.\n * - Entirely visible on screen\n */\nclass ViewabilityHelper {\n constructor(config) {\n if (config === void 0) {\n config = {\n viewAreaCoveragePercentThreshold: 0\n };\n }\n this._hasInteracted = false;\n this._timers = new Set();\n this._viewableIndices = [];\n this._viewableItems = new Map();\n this._config = config;\n }\n\n /**\n * Cleanup, e.g. on unmount. Clears any pending timers.\n */\n dispose() {\n /* $FlowFixMe[incompatible-call] (>=0.63.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.63 was deployed. To see\n * the error delete this comment and run Flow. */\n this._timers.forEach(clearTimeout);\n }\n\n /**\n * Determines which items are viewable based on the current metrics and config.\n */\n computeViewableItems(props, scrollOffset, viewportHeight, getFrameMetrics,\n // Optional optimization to reduce the scan size\n renderRange) {\n var itemCount = props.getItemCount(props.data);\n var _this$_config = this._config,\n itemVisiblePercentThreshold = _this$_config.itemVisiblePercentThreshold,\n viewAreaCoveragePercentThreshold = _this$_config.viewAreaCoveragePercentThreshold;\n var viewAreaMode = viewAreaCoveragePercentThreshold != null;\n var viewablePercentThreshold = viewAreaMode ? viewAreaCoveragePercentThreshold : itemVisiblePercentThreshold;\n invariant(viewablePercentThreshold != null && itemVisiblePercentThreshold != null !== (viewAreaCoveragePercentThreshold != null), 'Must set exactly one of itemVisiblePercentThreshold or viewAreaCoveragePercentThreshold');\n var viewableIndices = [];\n if (itemCount === 0) {\n return viewableIndices;\n }\n var firstVisible = -1;\n var _ref = renderRange || {\n first: 0,\n last: itemCount - 1\n },\n first = _ref.first,\n last = _ref.last;\n if (last >= itemCount) {\n console.warn('Invalid render range computing viewability ' + JSON.stringify({\n renderRange,\n itemCount\n }));\n return [];\n }\n for (var idx = first; idx <= last; idx++) {\n var metrics = getFrameMetrics(idx, props);\n if (!metrics) {\n continue;\n }\n var top = metrics.offset - scrollOffset;\n var bottom = top + metrics.length;\n if (top < viewportHeight && bottom > 0) {\n firstVisible = idx;\n if (_isViewable(viewAreaMode, viewablePercentThreshold, top, bottom, viewportHeight, metrics.length)) {\n viewableIndices.push(idx);\n }\n } else if (firstVisible >= 0) {\n break;\n }\n }\n return viewableIndices;\n }\n\n /**\n * Figures out which items are viewable and how that has changed from before and calls\n * `onViewableItemsChanged` as appropriate.\n */\n onUpdate(props, scrollOffset, viewportHeight, getFrameMetrics, createViewToken, onViewableItemsChanged,\n // Optional optimization to reduce the scan size\n renderRange) {\n var itemCount = props.getItemCount(props.data);\n if (this._config.waitForInteraction && !this._hasInteracted || itemCount === 0 || !getFrameMetrics(0, props)) {\n return;\n }\n var viewableIndices = [];\n if (itemCount) {\n viewableIndices = this.computeViewableItems(props, scrollOffset, viewportHeight, getFrameMetrics, renderRange);\n }\n if (this._viewableIndices.length === viewableIndices.length && this._viewableIndices.every((v, ii) => v === viewableIndices[ii])) {\n // We might get a lot of scroll events where visibility doesn't change and we don't want to do\n // extra work in those cases.\n return;\n }\n this._viewableIndices = viewableIndices;\n if (this._config.minimumViewTime) {\n var handle = setTimeout(() => {\n /* $FlowFixMe[incompatible-call] (>=0.63.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.63 was deployed. To\n * see the error delete this comment and run Flow. */\n this._timers.delete(handle);\n this._onUpdateSync(props, viewableIndices, onViewableItemsChanged, createViewToken);\n }, this._config.minimumViewTime);\n /* $FlowFixMe[incompatible-call] (>=0.63.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.63 was deployed. To see\n * the error delete this comment and run Flow. */\n this._timers.add(handle);\n } else {\n this._onUpdateSync(props, viewableIndices, onViewableItemsChanged, createViewToken);\n }\n }\n\n /**\n * clean-up cached _viewableIndices to evaluate changed items on next update\n */\n resetViewableIndices() {\n this._viewableIndices = [];\n }\n\n /**\n * Records that an interaction has happened even if there has been no scroll.\n */\n recordInteraction() {\n this._hasInteracted = true;\n }\n _onUpdateSync(props, viewableIndicesToCheck, onViewableItemsChanged, createViewToken) {\n // Filter out indices that have gone out of view since this call was scheduled.\n viewableIndicesToCheck = viewableIndicesToCheck.filter(ii => this._viewableIndices.includes(ii));\n var prevItems = this._viewableItems;\n var nextItems = new Map(viewableIndicesToCheck.map(ii => {\n var viewable = createViewToken(ii, true, props);\n return [viewable.key, viewable];\n }));\n var changed = [];\n for (var _iterator = _createForOfIteratorHelperLoose(nextItems), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n key = _step$value[0],\n viewable = _step$value[1];\n if (!prevItems.has(key)) {\n changed.push(viewable);\n }\n }\n for (var _iterator2 = _createForOfIteratorHelperLoose(prevItems), _step2; !(_step2 = _iterator2()).done;) {\n var _step2$value = _step2.value,\n _key = _step2$value[0],\n _viewable = _step2$value[1];\n if (!nextItems.has(_key)) {\n changed.push(_objectSpread(_objectSpread({}, _viewable), {}, {\n isViewable: false\n }));\n }\n }\n if (changed.length > 0) {\n this._viewableItems = nextItems;\n onViewableItemsChanged({\n viewableItems: Array.from(nextItems.values()),\n changed,\n viewabilityConfig: this._config\n });\n }\n }\n}\nfunction _isViewable(viewAreaMode, viewablePercentThreshold, top, bottom, viewportHeight, itemLength) {\n if (_isEntirelyVisible(top, bottom, viewportHeight)) {\n return true;\n } else {\n var pixels = _getPixelsVisible(top, bottom, viewportHeight);\n var percent = 100 * (viewAreaMode ? pixels / viewportHeight : pixels / itemLength);\n return percent >= viewablePercentThreshold;\n }\n}\nfunction _getPixelsVisible(top, bottom, viewportHeight) {\n var visibleHeight = Math.min(bottom, viewportHeight) - Math.max(top, 0);\n return Math.max(0, visibleHeight);\n}\nfunction _isEntirelyVisible(top, bottom, viewportHeight) {\n return top >= 0 && bottom <= viewportHeight && bottom > top;\n}\nexport default ViewabilityHelper;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nvar __DEV__ = process.env.NODE_ENV !== 'production';\nexport var VirtualizedListContext = /*#__PURE__*/React.createContext(null);\nif (__DEV__) {\n VirtualizedListContext.displayName = 'VirtualizedListContext';\n}\n\n/**\n * Resets the context. Intended for use by portal-like components (e.g. Modal).\n */\nexport function VirtualizedListContextResetter(_ref) {\n var children = _ref.children;\n return /*#__PURE__*/React.createElement(VirtualizedListContext.Provider, {\n value: null\n }, children);\n}\n\n/**\n * Sets the context with memoization. Intended to be used by `VirtualizedList`.\n */\nexport function VirtualizedListContextProvider(_ref2) {\n var children = _ref2.children,\n value = _ref2.value;\n // Avoid setting a newly created context object if the values are identical.\n var context = useMemo(() => ({\n cellKey: null,\n getScrollMetrics: value.getScrollMetrics,\n horizontal: value.horizontal,\n getOutermostParentListRef: value.getOutermostParentListRef,\n registerAsNestedChild: value.registerAsNestedChild,\n unregisterAsNestedChild: value.unregisterAsNestedChild\n }), [value.getScrollMetrics, value.horizontal, value.getOutermostParentListRef, value.registerAsNestedChild, value.unregisterAsNestedChild]);\n return /*#__PURE__*/React.createElement(VirtualizedListContext.Provider, {\n value: context\n }, children);\n}\n\n/**\n * Sets the `cellKey`. Intended to be used by `VirtualizedList` for each cell.\n */\nexport function VirtualizedListCellContextProvider(_ref3) {\n var cellKey = _ref3.cellKey,\n children = _ref3.children;\n // Avoid setting a newly created context object if the values are identical.\n var currContext = useContext(VirtualizedListContext);\n var context = useMemo(() => currContext == null ? null : _objectSpread(_objectSpread({}, currContext), {}, {\n cellKey\n }), [currContext, cellKey]);\n return /*#__PURE__*/React.createElement(VirtualizedListContext.Provider, {\n value: context\n }, children);\n}","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\nimport View from '../../../exports/View';\nimport StyleSheet from '../../../exports/StyleSheet';\nimport { VirtualizedListCellContextProvider } from './VirtualizedListContext.js';\nimport invariant from 'fbjs/lib/invariant';\nimport * as React from 'react';\nexport default class CellRenderer extends React.Component {\n constructor() {\n super(...arguments);\n this.state = {\n separatorProps: {\n highlighted: false,\n leadingItem: this.props.item\n }\n };\n this._separators = {\n highlight: () => {\n var _this$props = this.props,\n cellKey = _this$props.cellKey,\n prevCellKey = _this$props.prevCellKey;\n this.props.onUpdateSeparators([cellKey, prevCellKey], {\n highlighted: true\n });\n },\n unhighlight: () => {\n var _this$props2 = this.props,\n cellKey = _this$props2.cellKey,\n prevCellKey = _this$props2.prevCellKey;\n this.props.onUpdateSeparators([cellKey, prevCellKey], {\n highlighted: false\n });\n },\n updateProps: (select, newProps) => {\n var _this$props3 = this.props,\n cellKey = _this$props3.cellKey,\n prevCellKey = _this$props3.prevCellKey;\n this.props.onUpdateSeparators([select === 'leading' ? prevCellKey : cellKey], newProps);\n }\n };\n this._onLayout = nativeEvent => {\n this.props.onCellLayout && this.props.onCellLayout(nativeEvent, this.props.cellKey, this.props.index);\n };\n }\n static getDerivedStateFromProps(props, prevState) {\n return {\n separatorProps: _objectSpread(_objectSpread({}, prevState.separatorProps), {}, {\n leadingItem: props.item\n })\n };\n }\n\n // TODO: consider factoring separator stuff out of VirtualizedList into FlatList since it's not\n // reused by SectionList and we can keep VirtualizedList simpler.\n // $FlowFixMe[missing-local-annot]\n updateSeparatorProps(newProps) {\n this.setState(state => ({\n separatorProps: _objectSpread(_objectSpread({}, state.separatorProps), newProps)\n }));\n }\n componentWillUnmount() {\n this.props.onUnmount(this.props.cellKey);\n }\n _renderElement(renderItem, ListItemComponent, item, index) {\n if (renderItem && ListItemComponent) {\n console.warn('VirtualizedList: Both ListItemComponent and renderItem props are present. ListItemComponent will take' + ' precedence over renderItem.');\n }\n if (ListItemComponent) {\n /* $FlowFixMe[not-a-component] (>=0.108.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.108 was deployed. To\n * see the error, delete this comment and run Flow. */\n /* $FlowFixMe[incompatible-type-arg] (>=0.108.0 site=react_native_fb)\n * This comment suppresses an error found when Flow v0.108 was deployed.\n * To see the error, delete this comment and run Flow. */\n return /*#__PURE__*/React.createElement(ListItemComponent, {\n item,\n index,\n separators: this._separators\n });\n }\n if (renderItem) {\n return renderItem({\n item,\n index,\n separators: this._separators\n });\n }\n invariant(false, 'VirtualizedList: Either ListItemComponent or renderItem props are required but none were found.');\n }\n render() {\n var _this$props4 = this.props,\n CellRendererComponent = _this$props4.CellRendererComponent,\n ItemSeparatorComponent = _this$props4.ItemSeparatorComponent,\n ListItemComponent = _this$props4.ListItemComponent,\n cellKey = _this$props4.cellKey,\n horizontal = _this$props4.horizontal,\n item = _this$props4.item,\n index = _this$props4.index,\n inversionStyle = _this$props4.inversionStyle,\n onCellFocusCapture = _this$props4.onCellFocusCapture,\n onCellLayout = _this$props4.onCellLayout,\n renderItem = _this$props4.renderItem;\n var element = this._renderElement(renderItem, ListItemComponent, item, index);\n\n // NOTE: that when this is a sticky header, `onLayout` will get automatically extracted and\n // called explicitly by `ScrollViewStickyHeader`.\n var itemSeparator = /*#__PURE__*/React.isValidElement(ItemSeparatorComponent) ?\n // $FlowFixMe[incompatible-type]\n ItemSeparatorComponent :\n // $FlowFixMe[incompatible-type]\n ItemSeparatorComponent && /*#__PURE__*/React.createElement(ItemSeparatorComponent, this.state.separatorProps);\n var cellStyle = inversionStyle ? horizontal ? [styles.rowReverse, inversionStyle] : [styles.columnReverse, inversionStyle] : horizontal ? [styles.row, inversionStyle] : inversionStyle;\n var result = !CellRendererComponent ? /*#__PURE__*/React.createElement(View, _extends({\n style: cellStyle,\n onFocusCapture: onCellFocusCapture\n }, onCellLayout && {\n onLayout: this._onLayout\n }), element, itemSeparator) : /*#__PURE__*/React.createElement(CellRendererComponent, _extends({\n cellKey: cellKey,\n index: index,\n item: item,\n style: cellStyle,\n onFocusCapture: onCellFocusCapture\n }, onCellLayout && {\n onLayout: this._onLayout\n }), element, itemSeparator);\n return /*#__PURE__*/React.createElement(VirtualizedListCellContextProvider, {\n cellKey: this.props.cellKey\n }, result);\n }\n}\nvar styles = StyleSheet.create({\n row: {\n flexDirection: 'row'\n },\n rowReverse: {\n flexDirection: 'row-reverse'\n },\n columnReverse: {\n flexDirection: 'column-reverse'\n }\n});","import _createForOfIteratorHelperLoose from \"@babel/runtime/helpers/createForOfIteratorHelperLoose\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\nimport RefreshControl from '../../../exports/RefreshControl';\nimport ScrollView from '../../../exports/ScrollView';\nimport View from '../../../exports/View';\nimport StyleSheet from '../../../exports/StyleSheet';\nimport findNodeHandle from '../../../exports/findNodeHandle';\nimport Batchinator from '../Batchinator';\nimport clamp from '../Utilities/clamp';\nimport infoLog from '../infoLog';\nimport { CellRenderMask } from './CellRenderMask';\nimport ChildListCollection from './ChildListCollection';\nimport FillRateHelper from '../FillRateHelper';\nimport StateSafePureComponent from './StateSafePureComponent';\nimport ViewabilityHelper from '../ViewabilityHelper';\nimport CellRenderer from './VirtualizedListCellRenderer';\nimport { VirtualizedListCellContextProvider, VirtualizedListContext, VirtualizedListContextProvider } from './VirtualizedListContext.js';\nimport { computeWindowedRenderLimits, keyExtractor as defaultKeyExtractor } from '../VirtualizeUtils';\nimport invariant from 'fbjs/lib/invariant';\nimport nullthrows from 'nullthrows';\nimport * as React from 'react';\nvar __DEV__ = process.env.NODE_ENV !== 'production';\nvar ON_EDGE_REACHED_EPSILON = 0.001;\nvar _usedIndexForKey = false;\nvar _keylessItemComponentName = '';\n/**\n * Default Props Helper Functions\n * Use the following helper functions for default values\n */ // horizontalOrDefault(this.props.horizontal)\nfunction horizontalOrDefault(horizontal) {\n return horizontal !== null && horizontal !== void 0 ? horizontal : false;\n}\n\n// initialNumToRenderOrDefault(this.props.initialNumToRender)\nfunction initialNumToRenderOrDefault(initialNumToRender) {\n return initialNumToRender !== null && initialNumToRender !== void 0 ? initialNumToRender : 10;\n}\n\n// maxToRenderPerBatchOrDefault(this.props.maxToRenderPerBatch)\nfunction maxToRenderPerBatchOrDefault(maxToRenderPerBatch) {\n return maxToRenderPerBatch !== null && maxToRenderPerBatch !== void 0 ? maxToRenderPerBatch : 10;\n}\n\n// onStartReachedThresholdOrDefault(this.props.onStartReachedThreshold)\nfunction onStartReachedThresholdOrDefault(onStartReachedThreshold) {\n return onStartReachedThreshold !== null && onStartReachedThreshold !== void 0 ? onStartReachedThreshold : 2;\n}\n\n// onEndReachedThresholdOrDefault(this.props.onEndReachedThreshold)\nfunction onEndReachedThresholdOrDefault(onEndReachedThreshold) {\n return onEndReachedThreshold !== null && onEndReachedThreshold !== void 0 ? onEndReachedThreshold : 2;\n}\n\n// getScrollingThreshold(visibleLength, onEndReachedThreshold)\nfunction getScrollingThreshold(threshold, visibleLength) {\n return threshold * visibleLength / 2;\n}\n\n// scrollEventThrottleOrDefault(this.props.scrollEventThrottle)\nfunction scrollEventThrottleOrDefault(scrollEventThrottle) {\n return scrollEventThrottle !== null && scrollEventThrottle !== void 0 ? scrollEventThrottle : 50;\n}\n\n// windowSizeOrDefault(this.props.windowSize)\nfunction windowSizeOrDefault(windowSize) {\n return windowSize !== null && windowSize !== void 0 ? windowSize : 21;\n}\nfunction findLastWhere(arr, predicate) {\n for (var i = arr.length - 1; i >= 0; i--) {\n if (predicate(arr[i])) {\n return arr[i];\n }\n }\n return null;\n}\n\n/**\n * Base implementation for the more convenient [``](https://reactnative.dev/docs/flatlist)\n * and [``](https://reactnative.dev/docs/sectionlist) components, which are also better\n * documented. In general, this should only really be used if you need more flexibility than\n * `FlatList` provides, e.g. for use with immutable data instead of plain arrays.\n *\n * Virtualization massively improves memory consumption and performance of large lists by\n * maintaining a finite render window of active items and replacing all items outside of the render\n * window with appropriately sized blank space. The window adapts to scrolling behavior, and items\n * are rendered incrementally with low-pri (after any running interactions) if they are far from the\n * visible area, or with hi-pri otherwise to minimize the potential of seeing blank space.\n *\n * Some caveats:\n *\n * - Internal state is not preserved when content scrolls out of the render window. Make sure all\n * your data is captured in the item data or external stores like Flux, Redux, or Relay.\n * - This is a `PureComponent` which means that it will not re-render if `props` remain shallow-\n * equal. Make sure that everything your `renderItem` function depends on is passed as a prop\n * (e.g. `extraData`) that is not `===` after updates, otherwise your UI may not update on\n * changes. This includes the `data` prop and parent component state.\n * - In order to constrain memory and enable smooth scrolling, content is rendered asynchronously\n * offscreen. This means it's possible to scroll faster than the fill rate ands momentarily see\n * blank content. This is a tradeoff that can be adjusted to suit the needs of each application,\n * and we are working on improving it behind the scenes.\n * - By default, the list looks for a `key` or `id` prop on each item and uses that for the React key.\n * Alternatively, you can provide a custom `keyExtractor` prop.\n * - As an effort to remove defaultProps, use helper functions when referencing certain props\n *\n */\nclass VirtualizedList extends StateSafePureComponent {\n // scrollToEnd may be janky without getItemLayout prop\n scrollToEnd(params) {\n var animated = params ? params.animated : true;\n var veryLast = this.props.getItemCount(this.props.data) - 1;\n if (veryLast < 0) {\n return;\n }\n var frame = this.__getFrameMetricsApprox(veryLast, this.props);\n var offset = Math.max(0, frame.offset + frame.length + this._footerLength - this._scrollMetrics.visibleLength);\n if (this._scrollRef == null) {\n return;\n }\n if (this._scrollRef.scrollTo == null) {\n console.warn('No scrollTo method provided. This may be because you have two nested ' + 'VirtualizedLists with the same orientation, or because you are ' + 'using a custom component that does not implement scrollTo.');\n return;\n }\n this._scrollRef.scrollTo(horizontalOrDefault(this.props.horizontal) ? {\n x: offset,\n animated\n } : {\n y: offset,\n animated\n });\n }\n\n // scrollToIndex may be janky without getItemLayout prop\n scrollToIndex(params) {\n var _this$props = this.props,\n data = _this$props.data,\n horizontal = _this$props.horizontal,\n getItemCount = _this$props.getItemCount,\n getItemLayout = _this$props.getItemLayout,\n onScrollToIndexFailed = _this$props.onScrollToIndexFailed;\n var animated = params.animated,\n index = params.index,\n viewOffset = params.viewOffset,\n viewPosition = params.viewPosition;\n invariant(index >= 0, \"scrollToIndex out of range: requested index \" + index + \" but minimum is 0\");\n invariant(getItemCount(data) >= 1, \"scrollToIndex out of range: item length \" + getItemCount(data) + \" but minimum is 1\");\n invariant(index < getItemCount(data), \"scrollToIndex out of range: requested index \" + index + \" is out of 0 to \" + (getItemCount(data) - 1));\n if (!getItemLayout && index > this._highestMeasuredFrameIndex) {\n invariant(!!onScrollToIndexFailed, 'scrollToIndex should be used in conjunction with getItemLayout or onScrollToIndexFailed, ' + 'otherwise there is no way to know the location of offscreen indices or handle failures.');\n onScrollToIndexFailed({\n averageItemLength: this._averageCellLength,\n highestMeasuredFrameIndex: this._highestMeasuredFrameIndex,\n index\n });\n return;\n }\n var frame = this.__getFrameMetricsApprox(Math.floor(index), this.props);\n var offset = Math.max(0, this._getOffsetApprox(index, this.props) - (viewPosition || 0) * (this._scrollMetrics.visibleLength - frame.length)) - (viewOffset || 0);\n if (this._scrollRef == null) {\n return;\n }\n if (this._scrollRef.scrollTo == null) {\n console.warn('No scrollTo method provided. This may be because you have two nested ' + 'VirtualizedLists with the same orientation, or because you are ' + 'using a custom component that does not implement scrollTo.');\n return;\n }\n this._scrollRef.scrollTo(horizontal ? {\n x: offset,\n animated\n } : {\n y: offset,\n animated\n });\n }\n\n // scrollToItem may be janky without getItemLayout prop. Required linear scan through items -\n // use scrollToIndex instead if possible.\n scrollToItem(params) {\n var item = params.item;\n var _this$props2 = this.props,\n data = _this$props2.data,\n getItem = _this$props2.getItem,\n getItemCount = _this$props2.getItemCount;\n var itemCount = getItemCount(data);\n for (var _index = 0; _index < itemCount; _index++) {\n if (getItem(data, _index) === item) {\n this.scrollToIndex(_objectSpread(_objectSpread({}, params), {}, {\n index: _index\n }));\n break;\n }\n }\n }\n\n /**\n * Scroll to a specific content pixel offset in the list.\n *\n * Param `offset` expects the offset to scroll to.\n * In case of `horizontal` is true, the offset is the x-value,\n * in any other case the offset is the y-value.\n *\n * Param `animated` (`true` by default) defines whether the list\n * should do an animation while scrolling.\n */\n scrollToOffset(params) {\n var animated = params.animated,\n offset = params.offset;\n if (this._scrollRef == null) {\n return;\n }\n if (this._scrollRef.scrollTo == null) {\n console.warn('No scrollTo method provided. This may be because you have two nested ' + 'VirtualizedLists with the same orientation, or because you are ' + 'using a custom component that does not implement scrollTo.');\n return;\n }\n this._scrollRef.scrollTo(horizontalOrDefault(this.props.horizontal) ? {\n x: offset,\n animated\n } : {\n y: offset,\n animated\n });\n }\n recordInteraction() {\n this._nestedChildLists.forEach(childList => {\n childList.recordInteraction();\n });\n this._viewabilityTuples.forEach(t => {\n t.viewabilityHelper.recordInteraction();\n });\n this._updateViewableItems(this.props, this.state.cellsAroundViewport);\n }\n flashScrollIndicators() {\n if (this._scrollRef == null) {\n return;\n }\n this._scrollRef.flashScrollIndicators();\n }\n\n /**\n * Provides a handle to the underlying scroll responder.\n * Note that `this._scrollRef` might not be a `ScrollView`, so we\n * need to check that it responds to `getScrollResponder` before calling it.\n */\n getScrollResponder() {\n if (this._scrollRef && this._scrollRef.getScrollResponder) {\n return this._scrollRef.getScrollResponder();\n }\n }\n getScrollableNode() {\n if (this._scrollRef && this._scrollRef.getScrollableNode) {\n return this._scrollRef.getScrollableNode();\n } else {\n return this._scrollRef;\n }\n }\n getScrollRef() {\n if (this._scrollRef && this._scrollRef.getScrollRef) {\n return this._scrollRef.getScrollRef();\n } else {\n return this._scrollRef;\n }\n }\n _getCellKey() {\n var _this$context;\n return ((_this$context = this.context) == null ? void 0 : _this$context.cellKey) || 'rootList';\n }\n\n // $FlowFixMe[missing-local-annot]\n\n hasMore() {\n return this._hasMore;\n }\n\n // $FlowFixMe[missing-local-annot]\n\n // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.\n\n constructor(_props) {\n var _this$props$updateCel;\n super(_props);\n this._getScrollMetrics = () => {\n return this._scrollMetrics;\n };\n this._getOutermostParentListRef = () => {\n if (this._isNestedWithSameOrientation()) {\n return this.context.getOutermostParentListRef();\n } else {\n return this;\n }\n };\n this._registerAsNestedChild = childList => {\n this._nestedChildLists.add(childList.ref, childList.cellKey);\n if (this._hasInteracted) {\n childList.ref.recordInteraction();\n }\n };\n this._unregisterAsNestedChild = childList => {\n this._nestedChildLists.remove(childList.ref);\n };\n this._onUpdateSeparators = (keys, newProps) => {\n keys.forEach(key => {\n var ref = key != null && this._cellRefs[key];\n ref && ref.updateSeparatorProps(newProps);\n });\n };\n this._getSpacerKey = isVertical => isVertical ? 'height' : 'width';\n this._averageCellLength = 0;\n this._cellRefs = {};\n this._frames = {};\n this._footerLength = 0;\n this._hasTriggeredInitialScrollToIndex = false;\n this._hasInteracted = false;\n this._hasMore = false;\n this._hasWarned = {};\n this._headerLength = 0;\n this._hiPriInProgress = false;\n this._highestMeasuredFrameIndex = 0;\n this._indicesToKeys = new Map();\n this._lastFocusedCellKey = null;\n this._nestedChildLists = new ChildListCollection();\n this._offsetFromParentVirtualizedList = 0;\n this._prevParentOffset = 0;\n this._scrollMetrics = {\n contentLength: 0,\n dOffset: 0,\n dt: 10,\n offset: 0,\n timestamp: 0,\n velocity: 0,\n visibleLength: 0,\n zoomScale: 1\n };\n this._scrollRef = null;\n this._sentStartForContentLength = 0;\n this._sentEndForContentLength = 0;\n this._totalCellLength = 0;\n this._totalCellsMeasured = 0;\n this._viewabilityTuples = [];\n this._captureScrollRef = ref => {\n this._scrollRef = ref;\n };\n this._defaultRenderScrollComponent = props => {\n var onRefresh = props.onRefresh;\n if (this._isNestedWithSameOrientation()) {\n // $FlowFixMe[prop-missing] - Typing ReactNativeComponent revealed errors\n return /*#__PURE__*/React.createElement(View, props);\n } else if (onRefresh) {\n var _props$refreshing;\n invariant(typeof props.refreshing === 'boolean', '`refreshing` prop must be set as a boolean in order to use `onRefresh`, but got `' + JSON.stringify((_props$refreshing = props.refreshing) !== null && _props$refreshing !== void 0 ? _props$refreshing : 'undefined') + '`');\n return (\n /*#__PURE__*/\n // $FlowFixMe[prop-missing] Invalid prop usage\n // $FlowFixMe[incompatible-use]\n React.createElement(ScrollView, _extends({}, props, {\n refreshControl: props.refreshControl == null ? /*#__PURE__*/React.createElement(RefreshControl\n // $FlowFixMe[incompatible-type]\n , {\n refreshing: props.refreshing,\n onRefresh: onRefresh,\n progressViewOffset: props.progressViewOffset\n }) : props.refreshControl\n }))\n );\n } else {\n // $FlowFixMe[prop-missing] Invalid prop usage\n // $FlowFixMe[incompatible-use]\n return /*#__PURE__*/React.createElement(ScrollView, props);\n }\n };\n this._onCellLayout = (e, cellKey, index) => {\n var layout = e.nativeEvent.layout;\n var next = {\n offset: this._selectOffset(layout),\n length: this._selectLength(layout),\n index,\n inLayout: true\n };\n var curr = this._frames[cellKey];\n if (!curr || next.offset !== curr.offset || next.length !== curr.length || index !== curr.index) {\n this._totalCellLength += next.length - (curr ? curr.length : 0);\n this._totalCellsMeasured += curr ? 0 : 1;\n this._averageCellLength = this._totalCellLength / this._totalCellsMeasured;\n this._frames[cellKey] = next;\n this._highestMeasuredFrameIndex = Math.max(this._highestMeasuredFrameIndex, index);\n this._scheduleCellsToRenderUpdate();\n } else {\n this._frames[cellKey].inLayout = true;\n }\n this._triggerRemeasureForChildListsInCell(cellKey);\n this._computeBlankness();\n this._updateViewableItems(this.props, this.state.cellsAroundViewport);\n };\n this._onCellUnmount = cellKey => {\n delete this._cellRefs[cellKey];\n var curr = this._frames[cellKey];\n if (curr) {\n this._frames[cellKey] = _objectSpread(_objectSpread({}, curr), {}, {\n inLayout: false\n });\n }\n };\n this._onLayout = e => {\n if (this._isNestedWithSameOrientation()) {\n // Need to adjust our scroll metrics to be relative to our containing\n // VirtualizedList before we can make claims about list item viewability\n this.measureLayoutRelativeToContainingList();\n } else {\n this._scrollMetrics.visibleLength = this._selectLength(e.nativeEvent.layout);\n }\n this.props.onLayout && this.props.onLayout(e);\n this._scheduleCellsToRenderUpdate();\n this._maybeCallOnEdgeReached();\n };\n this._onLayoutEmpty = e => {\n this.props.onLayout && this.props.onLayout(e);\n };\n this._onLayoutFooter = e => {\n this._triggerRemeasureForChildListsInCell(this._getFooterCellKey());\n this._footerLength = this._selectLength(e.nativeEvent.layout);\n };\n this._onLayoutHeader = e => {\n this._headerLength = this._selectLength(e.nativeEvent.layout);\n };\n this._onContentSizeChange = (width, height) => {\n if (width > 0 && height > 0 && this.props.initialScrollIndex != null && this.props.initialScrollIndex > 0 && !this._hasTriggeredInitialScrollToIndex) {\n if (this.props.contentOffset == null) {\n if (this.props.initialScrollIndex < this.props.getItemCount(this.props.data)) {\n this.scrollToIndex({\n animated: false,\n index: nullthrows(this.props.initialScrollIndex)\n });\n } else {\n this.scrollToEnd({\n animated: false\n });\n }\n }\n this._hasTriggeredInitialScrollToIndex = true;\n }\n if (this.props.onContentSizeChange) {\n this.props.onContentSizeChange(width, height);\n }\n this._scrollMetrics.contentLength = this._selectLength({\n height,\n width\n });\n this._scheduleCellsToRenderUpdate();\n this._maybeCallOnEdgeReached();\n };\n this._convertParentScrollMetrics = metrics => {\n // Offset of the top of the nested list relative to the top of its parent's viewport\n var offset = metrics.offset - this._offsetFromParentVirtualizedList;\n // Child's visible length is the same as its parent's\n var visibleLength = metrics.visibleLength;\n var dOffset = offset - this._scrollMetrics.offset;\n var contentLength = this._scrollMetrics.contentLength;\n return {\n visibleLength,\n contentLength,\n offset,\n dOffset\n };\n };\n this._onScroll = e => {\n this._nestedChildLists.forEach(childList => {\n childList._onScroll(e);\n });\n if (this.props.onScroll) {\n this.props.onScroll(e);\n }\n var timestamp = e.timeStamp;\n var visibleLength = this._selectLength(e.nativeEvent.layoutMeasurement);\n var contentLength = this._selectLength(e.nativeEvent.contentSize);\n var offset = this._selectOffset(e.nativeEvent.contentOffset);\n var dOffset = offset - this._scrollMetrics.offset;\n if (this._isNestedWithSameOrientation()) {\n if (this._scrollMetrics.contentLength === 0) {\n // Ignore scroll events until onLayout has been called and we\n // know our offset from our offset from our parent\n return;\n }\n var _this$_convertParentS = this._convertParentScrollMetrics({\n visibleLength,\n offset\n });\n visibleLength = _this$_convertParentS.visibleLength;\n contentLength = _this$_convertParentS.contentLength;\n offset = _this$_convertParentS.offset;\n dOffset = _this$_convertParentS.dOffset;\n }\n var dt = this._scrollMetrics.timestamp ? Math.max(1, timestamp - this._scrollMetrics.timestamp) : 1;\n var velocity = dOffset / dt;\n if (dt > 500 && this._scrollMetrics.dt > 500 && contentLength > 5 * visibleLength && !this._hasWarned.perf) {\n infoLog('VirtualizedList: You have a large list that is slow to update - make sure your ' + 'renderItem function renders components that follow React performance best practices ' + 'like PureComponent, shouldComponentUpdate, etc.', {\n dt,\n prevDt: this._scrollMetrics.dt,\n contentLength\n });\n this._hasWarned.perf = true;\n }\n\n // For invalid negative values (w/ RTL), set this to 1.\n var zoomScale = e.nativeEvent.zoomScale < 0 ? 1 : e.nativeEvent.zoomScale;\n this._scrollMetrics = {\n contentLength,\n dt,\n dOffset,\n offset,\n timestamp,\n velocity,\n visibleLength,\n zoomScale\n };\n this._updateViewableItems(this.props, this.state.cellsAroundViewport);\n if (!this.props) {\n return;\n }\n this._maybeCallOnEdgeReached();\n if (velocity !== 0) {\n this._fillRateHelper.activate();\n }\n this._computeBlankness();\n this._scheduleCellsToRenderUpdate();\n };\n this._onScrollBeginDrag = e => {\n this._nestedChildLists.forEach(childList => {\n childList._onScrollBeginDrag(e);\n });\n this._viewabilityTuples.forEach(tuple => {\n tuple.viewabilityHelper.recordInteraction();\n });\n this._hasInteracted = true;\n this.props.onScrollBeginDrag && this.props.onScrollBeginDrag(e);\n };\n this._onScrollEndDrag = e => {\n this._nestedChildLists.forEach(childList => {\n childList._onScrollEndDrag(e);\n });\n var velocity = e.nativeEvent.velocity;\n if (velocity) {\n this._scrollMetrics.velocity = this._selectOffset(velocity);\n }\n this._computeBlankness();\n this.props.onScrollEndDrag && this.props.onScrollEndDrag(e);\n };\n this._onMomentumScrollBegin = e => {\n this._nestedChildLists.forEach(childList => {\n childList._onMomentumScrollBegin(e);\n });\n this.props.onMomentumScrollBegin && this.props.onMomentumScrollBegin(e);\n };\n this._onMomentumScrollEnd = e => {\n this._nestedChildLists.forEach(childList => {\n childList._onMomentumScrollEnd(e);\n });\n this._scrollMetrics.velocity = 0;\n this._computeBlankness();\n this.props.onMomentumScrollEnd && this.props.onMomentumScrollEnd(e);\n };\n this._updateCellsToRender = () => {\n this._updateViewableItems(this.props, this.state.cellsAroundViewport);\n this.setState((state, props) => {\n var cellsAroundViewport = this._adjustCellsAroundViewport(props, state.cellsAroundViewport);\n var renderMask = VirtualizedList._createRenderMask(props, cellsAroundViewport, this._getNonViewportRenderRegions(props));\n if (cellsAroundViewport.first === state.cellsAroundViewport.first && cellsAroundViewport.last === state.cellsAroundViewport.last && renderMask.equals(state.renderMask)) {\n return null;\n }\n return {\n cellsAroundViewport,\n renderMask\n };\n });\n };\n this._createViewToken = (index, isViewable, props\n // $FlowFixMe[missing-local-annot]\n ) => {\n var data = props.data,\n getItem = props.getItem;\n var item = getItem(data, index);\n return {\n index,\n item,\n key: this._keyExtractor(item, index, props),\n isViewable\n };\n };\n this._getOffsetApprox = (index, props) => {\n if (Number.isInteger(index)) {\n return this.__getFrameMetricsApprox(index, props).offset;\n } else {\n var frameMetrics = this.__getFrameMetricsApprox(Math.floor(index), props);\n var remainder = index - Math.floor(index);\n return frameMetrics.offset + remainder * frameMetrics.length;\n }\n };\n this.__getFrameMetricsApprox = (index, props) => {\n var frame = this._getFrameMetrics(index, props);\n if (frame && frame.index === index) {\n // check for invalid frames due to row re-ordering\n return frame;\n } else {\n var data = props.data,\n getItemCount = props.getItemCount,\n getItemLayout = props.getItemLayout;\n invariant(index >= 0 && index < getItemCount(data), 'Tried to get frame for out of range index ' + index);\n invariant(!getItemLayout, 'Should not have to estimate frames when a measurement metrics function is provided');\n return {\n length: this._averageCellLength,\n offset: this._averageCellLength * index\n };\n }\n };\n this._getFrameMetrics = (index, props) => {\n var data = props.data,\n getItem = props.getItem,\n getItemCount = props.getItemCount,\n getItemLayout = props.getItemLayout;\n invariant(index >= 0 && index < getItemCount(data), 'Tried to get frame for out of range index ' + index);\n var item = getItem(data, index);\n var frame = this._frames[this._keyExtractor(item, index, props)];\n if (!frame || frame.index !== index) {\n if (getItemLayout) {\n /* $FlowFixMe[prop-missing] (>=0.63.0 site=react_native_fb) This comment\n * suppresses an error found when Flow v0.63 was deployed. To see the error\n * delete this comment and run Flow. */\n return getItemLayout(data, index);\n }\n }\n return frame;\n };\n this._getNonViewportRenderRegions = props => {\n // Keep a viewport's worth of content around the last focused cell to allow\n // random navigation around it without any blanking. E.g. tabbing from one\n // focused item out of viewport to another.\n if (!(this._lastFocusedCellKey && this._cellRefs[this._lastFocusedCellKey])) {\n return [];\n }\n var lastFocusedCellRenderer = this._cellRefs[this._lastFocusedCellKey];\n var focusedCellIndex = lastFocusedCellRenderer.props.index;\n var itemCount = props.getItemCount(props.data);\n\n // The last cell we rendered may be at a new index. Bail if we don't know\n // where it is.\n if (focusedCellIndex >= itemCount || this._keyExtractor(props.getItem(props.data, focusedCellIndex), focusedCellIndex, props) !== this._lastFocusedCellKey) {\n return [];\n }\n var first = focusedCellIndex;\n var heightOfCellsBeforeFocused = 0;\n for (var i = first - 1; i >= 0 && heightOfCellsBeforeFocused < this._scrollMetrics.visibleLength; i--) {\n first--;\n heightOfCellsBeforeFocused += this.__getFrameMetricsApprox(i, props).length;\n }\n var last = focusedCellIndex;\n var heightOfCellsAfterFocused = 0;\n for (var _i = last + 1; _i < itemCount && heightOfCellsAfterFocused < this._scrollMetrics.visibleLength; _i++) {\n last++;\n heightOfCellsAfterFocused += this.__getFrameMetricsApprox(_i, props).length;\n }\n return [{\n first,\n last\n }];\n };\n this._checkProps(_props);\n this._fillRateHelper = new FillRateHelper(this._getFrameMetrics);\n this._updateCellsToRenderBatcher = new Batchinator(this._updateCellsToRender, (_this$props$updateCel = this.props.updateCellsBatchingPeriod) !== null && _this$props$updateCel !== void 0 ? _this$props$updateCel : 50);\n if (this.props.viewabilityConfigCallbackPairs) {\n this._viewabilityTuples = this.props.viewabilityConfigCallbackPairs.map(pair => ({\n viewabilityHelper: new ViewabilityHelper(pair.viewabilityConfig),\n onViewableItemsChanged: pair.onViewableItemsChanged\n }));\n } else {\n var _this$props3 = this.props,\n onViewableItemsChanged = _this$props3.onViewableItemsChanged,\n viewabilityConfig = _this$props3.viewabilityConfig;\n if (onViewableItemsChanged) {\n this._viewabilityTuples.push({\n viewabilityHelper: new ViewabilityHelper(viewabilityConfig),\n onViewableItemsChanged: onViewableItemsChanged\n });\n }\n }\n var initialRenderRegion = VirtualizedList._initialRenderRegion(_props);\n this.state = {\n cellsAroundViewport: initialRenderRegion,\n renderMask: VirtualizedList._createRenderMask(_props, initialRenderRegion)\n };\n\n // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.\n // For issue https://github.com/necolas/react-native-web/issues/995\n this.invertedWheelEventHandler = ev => {\n var scrollOffset = this.props.horizontal ? ev.target.scrollLeft : ev.target.scrollTop;\n var scrollLength = this.props.horizontal ? ev.target.scrollWidth : ev.target.scrollHeight;\n var clientLength = this.props.horizontal ? ev.target.clientWidth : ev.target.clientHeight;\n var isEventTargetScrollable = scrollLength > clientLength;\n var delta = this.props.horizontal ? ev.deltaX || ev.wheelDeltaX : ev.deltaY || ev.wheelDeltaY;\n var leftoverDelta = delta;\n if (isEventTargetScrollable) {\n leftoverDelta = delta < 0 ? Math.min(delta + scrollOffset, 0) : Math.max(delta - (scrollLength - clientLength - scrollOffset), 0);\n }\n var targetDelta = delta - leftoverDelta;\n if (this.props.inverted && this._scrollRef && this._scrollRef.getScrollableNode) {\n var node = this._scrollRef.getScrollableNode();\n if (this.props.horizontal) {\n ev.target.scrollLeft += targetDelta;\n var nextScrollLeft = node.scrollLeft - leftoverDelta;\n node.scrollLeft = !this.props.getItemLayout ? Math.min(nextScrollLeft, this._totalCellLength) : nextScrollLeft;\n } else {\n ev.target.scrollTop += targetDelta;\n var nextScrollTop = node.scrollTop - leftoverDelta;\n node.scrollTop = !this.props.getItemLayout ? Math.min(nextScrollTop, this._totalCellLength) : nextScrollTop;\n }\n ev.preventDefault();\n }\n };\n }\n _checkProps(props) {\n var onScroll = props.onScroll,\n windowSize = props.windowSize,\n getItemCount = props.getItemCount,\n data = props.data,\n initialScrollIndex = props.initialScrollIndex;\n invariant(\n // $FlowFixMe[prop-missing]\n !onScroll || !onScroll.__isNative, 'Components based on VirtualizedList must be wrapped with Animated.createAnimatedComponent ' + 'to support native onScroll events with useNativeDriver');\n invariant(windowSizeOrDefault(windowSize) > 0, 'VirtualizedList: The windowSize prop must be present and set to a value greater than 0.');\n invariant(getItemCount, 'VirtualizedList: The \"getItemCount\" prop must be provided');\n var itemCount = getItemCount(data);\n if (initialScrollIndex != null && !this._hasTriggeredInitialScrollToIndex && (initialScrollIndex < 0 || itemCount > 0 && initialScrollIndex >= itemCount) && !this._hasWarned.initialScrollIndex) {\n console.warn(\"initialScrollIndex \\\"\" + initialScrollIndex + \"\\\" is not valid (list has \" + itemCount + \" items)\");\n this._hasWarned.initialScrollIndex = true;\n }\n if (__DEV__ && !this._hasWarned.flexWrap) {\n // $FlowFixMe[underconstrained-implicit-instantiation]\n var flatStyles = StyleSheet.flatten(this.props.contentContainerStyle);\n if (flatStyles != null && flatStyles.flexWrap === 'wrap') {\n console.warn('`flexWrap: `wrap`` is not supported with the `VirtualizedList` components.' + 'Consider using `numColumns` with `FlatList` instead.');\n this._hasWarned.flexWrap = true;\n }\n }\n }\n static _createRenderMask(props, cellsAroundViewport, additionalRegions) {\n var itemCount = props.getItemCount(props.data);\n invariant(cellsAroundViewport.first >= 0 && cellsAroundViewport.last >= cellsAroundViewport.first - 1 && cellsAroundViewport.last < itemCount, \"Invalid cells around viewport \\\"[\" + cellsAroundViewport.first + \", \" + cellsAroundViewport.last + \"]\\\" was passed to VirtualizedList._createRenderMask\");\n var renderMask = new CellRenderMask(itemCount);\n if (itemCount > 0) {\n var allRegions = [cellsAroundViewport, ...(additionalRegions !== null && additionalRegions !== void 0 ? additionalRegions : [])];\n for (var _i2 = 0, _allRegions = allRegions; _i2 < _allRegions.length; _i2++) {\n var region = _allRegions[_i2];\n renderMask.addCells(region);\n }\n\n // The initially rendered cells are retained as part of the\n // \"scroll-to-top\" optimization\n if (props.initialScrollIndex == null || props.initialScrollIndex <= 0) {\n var initialRegion = VirtualizedList._initialRenderRegion(props);\n renderMask.addCells(initialRegion);\n }\n\n // The layout coordinates of sticker headers may be off-screen while the\n // actual header is on-screen. Keep the most recent before the viewport\n // rendered, even if its layout coordinates are not in viewport.\n var stickyIndicesSet = new Set(props.stickyHeaderIndices);\n VirtualizedList._ensureClosestStickyHeader(props, stickyIndicesSet, renderMask, cellsAroundViewport.first);\n }\n return renderMask;\n }\n static _initialRenderRegion(props) {\n var _props$initialScrollI;\n var itemCount = props.getItemCount(props.data);\n var firstCellIndex = Math.max(0, Math.min(itemCount - 1, Math.floor((_props$initialScrollI = props.initialScrollIndex) !== null && _props$initialScrollI !== void 0 ? _props$initialScrollI : 0)));\n var lastCellIndex = Math.min(itemCount, firstCellIndex + initialNumToRenderOrDefault(props.initialNumToRender)) - 1;\n return {\n first: firstCellIndex,\n last: lastCellIndex\n };\n }\n static _ensureClosestStickyHeader(props, stickyIndicesSet, renderMask, cellIdx) {\n var stickyOffset = props.ListHeaderComponent ? 1 : 0;\n for (var itemIdx = cellIdx - 1; itemIdx >= 0; itemIdx--) {\n if (stickyIndicesSet.has(itemIdx + stickyOffset)) {\n renderMask.addCells({\n first: itemIdx,\n last: itemIdx\n });\n break;\n }\n }\n }\n _adjustCellsAroundViewport(props, cellsAroundViewport) {\n var data = props.data,\n getItemCount = props.getItemCount;\n var onEndReachedThreshold = onEndReachedThresholdOrDefault(props.onEndReachedThreshold);\n var _this$_scrollMetrics = this._scrollMetrics,\n contentLength = _this$_scrollMetrics.contentLength,\n offset = _this$_scrollMetrics.offset,\n visibleLength = _this$_scrollMetrics.visibleLength;\n var distanceFromEnd = contentLength - visibleLength - offset;\n\n // Wait until the scroll view metrics have been set up. And until then,\n // we will trust the initialNumToRender suggestion\n if (visibleLength <= 0 || contentLength <= 0) {\n return cellsAroundViewport.last >= getItemCount(data) ? VirtualizedList._constrainToItemCount(cellsAroundViewport, props) : cellsAroundViewport;\n }\n var newCellsAroundViewport;\n if (props.disableVirtualization) {\n var renderAhead = distanceFromEnd < onEndReachedThreshold * visibleLength ? maxToRenderPerBatchOrDefault(props.maxToRenderPerBatch) : 0;\n newCellsAroundViewport = {\n first: 0,\n last: Math.min(cellsAroundViewport.last + renderAhead, getItemCount(data) - 1)\n };\n } else {\n // If we have a non-zero initialScrollIndex and run this before we've scrolled,\n // we'll wipe out the initialNumToRender rendered elements starting at initialScrollIndex.\n // So let's wait until we've scrolled the view to the right place. And until then,\n // we will trust the initialScrollIndex suggestion.\n\n // Thus, we want to recalculate the windowed render limits if any of the following hold:\n // - initialScrollIndex is undefined or is 0\n // - initialScrollIndex > 0 AND scrolling is complete\n // - initialScrollIndex > 0 AND the end of the list is visible (this handles the case\n // where the list is shorter than the visible area)\n if (props.initialScrollIndex && !this._scrollMetrics.offset && Math.abs(distanceFromEnd) >= Number.EPSILON) {\n return cellsAroundViewport.last >= getItemCount(data) ? VirtualizedList._constrainToItemCount(cellsAroundViewport, props) : cellsAroundViewport;\n }\n newCellsAroundViewport = computeWindowedRenderLimits(props, maxToRenderPerBatchOrDefault(props.maxToRenderPerBatch), windowSizeOrDefault(props.windowSize), cellsAroundViewport, this.__getFrameMetricsApprox, this._scrollMetrics);\n invariant(newCellsAroundViewport.last < getItemCount(data), 'computeWindowedRenderLimits() should return range in-bounds');\n }\n if (this._nestedChildLists.size() > 0) {\n // If some cell in the new state has a child list in it, we should only render\n // up through that item, so that we give that list a chance to render.\n // Otherwise there's churn from multiple child lists mounting and un-mounting\n // their items.\n\n // Will this prevent rendering if the nested list doesn't realize the end?\n var childIdx = this._findFirstChildWithMore(newCellsAroundViewport.first, newCellsAroundViewport.last);\n newCellsAroundViewport.last = childIdx !== null && childIdx !== void 0 ? childIdx : newCellsAroundViewport.last;\n }\n return newCellsAroundViewport;\n }\n _findFirstChildWithMore(first, last) {\n for (var ii = first; ii <= last; ii++) {\n var cellKeyForIndex = this._indicesToKeys.get(ii);\n if (cellKeyForIndex != null && this._nestedChildLists.anyInCell(cellKeyForIndex, childList => childList.hasMore())) {\n return ii;\n }\n }\n return null;\n }\n componentDidMount() {\n if (this._isNestedWithSameOrientation()) {\n this.context.registerAsNestedChild({\n ref: this,\n cellKey: this.context.cellKey\n });\n }\n\n // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.\n this.setupWebWheelHandler();\n }\n componentWillUnmount() {\n if (this._isNestedWithSameOrientation()) {\n this.context.unregisterAsNestedChild({\n ref: this\n });\n }\n this._updateCellsToRenderBatcher.dispose({\n abort: true\n });\n this._viewabilityTuples.forEach(tuple => {\n tuple.viewabilityHelper.dispose();\n });\n this._fillRateHelper.deactivateAndFlush();\n\n // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.\n this.teardownWebWheelHandler();\n }\n\n // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.\n setupWebWheelHandler() {\n if (this._scrollRef && this._scrollRef.getScrollableNode) {\n this._scrollRef.getScrollableNode().addEventListener('wheel', this.invertedWheelEventHandler);\n } else {\n setTimeout(() => this.setupWebWheelHandler(), 50);\n return;\n }\n }\n\n // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.\n teardownWebWheelHandler() {\n if (this._scrollRef && this._scrollRef.getScrollableNode) {\n this._scrollRef.getScrollableNode().removeEventListener('wheel', this.invertedWheelEventHandler);\n }\n }\n static getDerivedStateFromProps(newProps, prevState) {\n // first and last could be stale (e.g. if a new, shorter items props is passed in), so we make\n // sure we're rendering a reasonable range here.\n var itemCount = newProps.getItemCount(newProps.data);\n if (itemCount === prevState.renderMask.numCells()) {\n return prevState;\n }\n var constrainedCells = VirtualizedList._constrainToItemCount(prevState.cellsAroundViewport, newProps);\n return {\n cellsAroundViewport: constrainedCells,\n renderMask: VirtualizedList._createRenderMask(newProps, constrainedCells)\n };\n }\n _pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, first, last, inversionStyle) {\n var _this = this;\n var _this$props4 = this.props,\n CellRendererComponent = _this$props4.CellRendererComponent,\n ItemSeparatorComponent = _this$props4.ItemSeparatorComponent,\n ListHeaderComponent = _this$props4.ListHeaderComponent,\n ListItemComponent = _this$props4.ListItemComponent,\n data = _this$props4.data,\n debug = _this$props4.debug,\n getItem = _this$props4.getItem,\n getItemCount = _this$props4.getItemCount,\n getItemLayout = _this$props4.getItemLayout,\n horizontal = _this$props4.horizontal,\n renderItem = _this$props4.renderItem;\n var stickyOffset = ListHeaderComponent ? 1 : 0;\n var end = getItemCount(data) - 1;\n var prevCellKey;\n last = Math.min(end, last);\n var _loop = function _loop() {\n var item = getItem(data, ii);\n var key = _this._keyExtractor(item, ii, _this.props);\n _this._indicesToKeys.set(ii, key);\n if (stickyIndicesFromProps.has(ii + stickyOffset)) {\n stickyHeaderIndices.push(cells.length);\n }\n var shouldListenForLayout = getItemLayout == null || debug || _this._fillRateHelper.enabled();\n cells.push( /*#__PURE__*/React.createElement(CellRenderer, _extends({\n CellRendererComponent: CellRendererComponent,\n ItemSeparatorComponent: ii < end ? ItemSeparatorComponent : undefined,\n ListItemComponent: ListItemComponent,\n cellKey: key,\n horizontal: horizontal,\n index: ii,\n inversionStyle: inversionStyle,\n item: item,\n key: key,\n prevCellKey: prevCellKey,\n onUpdateSeparators: _this._onUpdateSeparators,\n onCellFocusCapture: e => _this._onCellFocusCapture(key),\n onUnmount: _this._onCellUnmount,\n ref: _ref => {\n _this._cellRefs[key] = _ref;\n },\n renderItem: renderItem\n }, shouldListenForLayout && {\n onCellLayout: _this._onCellLayout\n })));\n prevCellKey = key;\n };\n for (var ii = first; ii <= last; ii++) {\n _loop();\n }\n }\n static _constrainToItemCount(cells, props) {\n var itemCount = props.getItemCount(props.data);\n var last = Math.min(itemCount - 1, cells.last);\n var maxToRenderPerBatch = maxToRenderPerBatchOrDefault(props.maxToRenderPerBatch);\n return {\n first: clamp(0, itemCount - 1 - maxToRenderPerBatch, cells.first),\n last\n };\n }\n _isNestedWithSameOrientation() {\n var nestedContext = this.context;\n return !!(nestedContext && !!nestedContext.horizontal === horizontalOrDefault(this.props.horizontal));\n }\n _keyExtractor(item, index, props\n // $FlowFixMe[missing-local-annot]\n ) {\n if (props.keyExtractor != null) {\n return props.keyExtractor(item, index);\n }\n var key = defaultKeyExtractor(item, index);\n if (key === String(index)) {\n _usedIndexForKey = true;\n if (item.type && item.type.displayName) {\n _keylessItemComponentName = item.type.displayName;\n }\n }\n return key;\n }\n render() {\n this._checkProps(this.props);\n var _this$props5 = this.props,\n ListEmptyComponent = _this$props5.ListEmptyComponent,\n ListFooterComponent = _this$props5.ListFooterComponent,\n ListHeaderComponent = _this$props5.ListHeaderComponent;\n var _this$props6 = this.props,\n data = _this$props6.data,\n horizontal = _this$props6.horizontal;\n var inversionStyle = this.props.inverted ? horizontalOrDefault(this.props.horizontal) ? styles.horizontallyInverted : styles.verticallyInverted : null;\n var cells = [];\n var stickyIndicesFromProps = new Set(this.props.stickyHeaderIndices);\n var stickyHeaderIndices = [];\n\n // 1. Add cell for ListHeaderComponent\n if (ListHeaderComponent) {\n if (stickyIndicesFromProps.has(0)) {\n stickyHeaderIndices.push(0);\n }\n var _element = /*#__PURE__*/React.isValidElement(ListHeaderComponent) ? ListHeaderComponent :\n /*#__PURE__*/\n // $FlowFixMe[not-a-component]\n // $FlowFixMe[incompatible-type-arg]\n React.createElement(ListHeaderComponent, null);\n cells.push( /*#__PURE__*/React.createElement(VirtualizedListCellContextProvider, {\n cellKey: this._getCellKey() + '-header',\n key: \"$header\"\n }, /*#__PURE__*/React.createElement(View, {\n onLayout: this._onLayoutHeader,\n style: [inversionStyle, this.props.ListHeaderComponentStyle]\n },\n // $FlowFixMe[incompatible-type] - Typing ReactNativeComponent revealed errors\n _element)));\n }\n\n // 2a. Add a cell for ListEmptyComponent if applicable\n var itemCount = this.props.getItemCount(data);\n if (itemCount === 0 && ListEmptyComponent) {\n var _element2 = /*#__PURE__*/React.isValidElement(ListEmptyComponent) ? ListEmptyComponent :\n /*#__PURE__*/\n // $FlowFixMe[not-a-component]\n // $FlowFixMe[incompatible-type-arg]\n React.createElement(ListEmptyComponent, null);\n cells.push( /*#__PURE__*/React.createElement(VirtualizedListCellContextProvider, {\n cellKey: this._getCellKey() + '-empty',\n key: \"$empty\"\n }, /*#__PURE__*/React.cloneElement(_element2, {\n onLayout: event => {\n this._onLayoutEmpty(event);\n if (_element2.props.onLayout) {\n _element2.props.onLayout(event);\n }\n },\n style: [inversionStyle, _element2.props.style]\n })));\n }\n\n // 2b. Add cells and spacers for each item\n if (itemCount > 0) {\n _usedIndexForKey = false;\n _keylessItemComponentName = '';\n var spacerKey = this._getSpacerKey(!horizontal);\n var renderRegions = this.state.renderMask.enumerateRegions();\n var lastSpacer = findLastWhere(renderRegions, r => r.isSpacer);\n for (var _iterator = _createForOfIteratorHelperLoose(renderRegions), _step; !(_step = _iterator()).done;) {\n var section = _step.value;\n if (section.isSpacer) {\n // Legacy behavior is to avoid spacers when virtualization is\n // disabled (including head spacers on initial render).\n if (this.props.disableVirtualization) {\n continue;\n }\n\n // Without getItemLayout, we limit our tail spacer to the _highestMeasuredFrameIndex to\n // prevent the user for hyperscrolling into un-measured area because otherwise content will\n // likely jump around as it renders in above the viewport.\n var isLastSpacer = section === lastSpacer;\n var constrainToMeasured = isLastSpacer && !this.props.getItemLayout;\n var last = constrainToMeasured ? clamp(section.first - 1, section.last, this._highestMeasuredFrameIndex) : section.last;\n var firstMetrics = this.__getFrameMetricsApprox(section.first, this.props);\n var lastMetrics = this.__getFrameMetricsApprox(last, this.props);\n var spacerSize = lastMetrics.offset + lastMetrics.length - firstMetrics.offset;\n cells.push( /*#__PURE__*/React.createElement(View, {\n key: \"$spacer-\" + section.first,\n style: {\n [spacerKey]: spacerSize\n }\n }));\n } else {\n this._pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, section.first, section.last, inversionStyle);\n }\n }\n if (!this._hasWarned.keys && _usedIndexForKey) {\n console.warn('VirtualizedList: missing keys for items, make sure to specify a key or id property on each ' + 'item or provide a custom keyExtractor.', _keylessItemComponentName);\n this._hasWarned.keys = true;\n }\n }\n\n // 3. Add cell for ListFooterComponent\n if (ListFooterComponent) {\n var _element3 = /*#__PURE__*/React.isValidElement(ListFooterComponent) ? ListFooterComponent :\n /*#__PURE__*/\n // $FlowFixMe[not-a-component]\n // $FlowFixMe[incompatible-type-arg]\n React.createElement(ListFooterComponent, null);\n cells.push( /*#__PURE__*/React.createElement(VirtualizedListCellContextProvider, {\n cellKey: this._getFooterCellKey(),\n key: \"$footer\"\n }, /*#__PURE__*/React.createElement(View, {\n onLayout: this._onLayoutFooter,\n style: [inversionStyle, this.props.ListFooterComponentStyle]\n },\n // $FlowFixMe[incompatible-type] - Typing ReactNativeComponent revealed errors\n _element3)));\n }\n\n // 4. Render the ScrollView\n var scrollProps = _objectSpread(_objectSpread({}, this.props), {}, {\n onContentSizeChange: this._onContentSizeChange,\n onLayout: this._onLayout,\n onScroll: this._onScroll,\n onScrollBeginDrag: this._onScrollBeginDrag,\n onScrollEndDrag: this._onScrollEndDrag,\n onMomentumScrollBegin: this._onMomentumScrollBegin,\n onMomentumScrollEnd: this._onMomentumScrollEnd,\n scrollEventThrottle: scrollEventThrottleOrDefault(this.props.scrollEventThrottle),\n // TODO: Android support\n invertStickyHeaders: this.props.invertStickyHeaders !== undefined ? this.props.invertStickyHeaders : this.props.inverted,\n stickyHeaderIndices,\n style: inversionStyle ? [inversionStyle, this.props.style] : this.props.style\n });\n this._hasMore = this.state.cellsAroundViewport.last < itemCount - 1;\n var innerRet = /*#__PURE__*/React.createElement(VirtualizedListContextProvider, {\n value: {\n cellKey: null,\n getScrollMetrics: this._getScrollMetrics,\n horizontal: horizontalOrDefault(this.props.horizontal),\n getOutermostParentListRef: this._getOutermostParentListRef,\n registerAsNestedChild: this._registerAsNestedChild,\n unregisterAsNestedChild: this._unregisterAsNestedChild\n }\n }, /*#__PURE__*/React.cloneElement((this.props.renderScrollComponent || this._defaultRenderScrollComponent)(scrollProps), {\n ref: this._captureScrollRef\n }, cells));\n var ret = innerRet;\n /* https://github.com/necolas/react-native-web/issues/2239: Re-enable when ScrollView.Context.Consumer is available.\n if (__DEV__) {\n ret = (\n \n {scrollContext => {\n if (\n scrollContext != null &&\n !scrollContext.horizontal ===\n !horizontalOrDefault(this.props.horizontal) &&\n !this._hasWarned.nesting &&\n this.context == null &&\n this.props.scrollEnabled !== false\n ) {\n // TODO (T46547044): use React.warn once 16.9 is sync'd: https://github.com/facebook/react/pull/15170\n console.error(\n 'VirtualizedLists should never be nested inside plain ScrollViews with the same ' +\n 'orientation because it can break windowing and other functionality - use another ' +\n 'VirtualizedList-backed container instead.',\n );\n this._hasWarned.nesting = true;\n }\n return innerRet;\n }}\n \n );\n }*/\n if (this.props.debug) {\n return /*#__PURE__*/React.createElement(View, {\n style: styles.debug\n }, ret, this._renderDebugOverlay());\n } else {\n return ret;\n }\n }\n componentDidUpdate(prevProps) {\n var _this$props7 = this.props,\n data = _this$props7.data,\n extraData = _this$props7.extraData;\n if (data !== prevProps.data || extraData !== prevProps.extraData) {\n // clear the viewableIndices cache to also trigger\n // the onViewableItemsChanged callback with the new data\n this._viewabilityTuples.forEach(tuple => {\n tuple.viewabilityHelper.resetViewableIndices();\n });\n }\n // The `this._hiPriInProgress` is guaranteeing a hiPri cell update will only happen\n // once per fiber update. The `_scheduleCellsToRenderUpdate` will set it to true\n // if a hiPri update needs to perform. If `componentDidUpdate` is triggered with\n // `this._hiPriInProgress=true`, means it's triggered by the hiPri update. The\n // `_scheduleCellsToRenderUpdate` will check this condition and not perform\n // another hiPri update.\n var hiPriInProgress = this._hiPriInProgress;\n this._scheduleCellsToRenderUpdate();\n // Make sure setting `this._hiPriInProgress` back to false after `componentDidUpdate`\n // is triggered with `this._hiPriInProgress = true`\n if (hiPriInProgress) {\n this._hiPriInProgress = false;\n }\n }\n\n // Used for preventing scrollToIndex from being called multiple times for initialScrollIndex\n\n // flag to prevent infinite hiPri cell limit update\n\n // $FlowFixMe[missing-local-annot]\n\n /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\n\n _computeBlankness() {\n this._fillRateHelper.computeBlankness(this.props, this.state.cellsAroundViewport, this._scrollMetrics);\n }\n\n /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\n\n _onCellFocusCapture(cellKey) {\n this._lastFocusedCellKey = cellKey;\n this._updateCellsToRender();\n }\n _triggerRemeasureForChildListsInCell(cellKey) {\n this._nestedChildLists.forEachInCell(cellKey, childList => {\n childList.measureLayoutRelativeToContainingList();\n });\n }\n measureLayoutRelativeToContainingList() {\n // TODO (T35574538): findNodeHandle sometimes crashes with \"Unable to find\n // node on an unmounted component\" during scrolling\n try {\n if (!this._scrollRef) {\n return;\n }\n // We are assuming that getOutermostParentListRef().getScrollRef()\n // is a non-null reference to a ScrollView\n this._scrollRef.measureLayout(this.context.getOutermostParentListRef().getScrollRef(), (x, y, width, height) => {\n this._offsetFromParentVirtualizedList = this._selectOffset({\n x,\n y\n });\n this._scrollMetrics.contentLength = this._selectLength({\n width,\n height\n });\n var scrollMetrics = this._convertParentScrollMetrics(this.context.getScrollMetrics());\n var metricsChanged = this._scrollMetrics.visibleLength !== scrollMetrics.visibleLength || this._scrollMetrics.offset !== scrollMetrics.offset;\n if (metricsChanged) {\n this._scrollMetrics.visibleLength = scrollMetrics.visibleLength;\n this._scrollMetrics.offset = scrollMetrics.offset;\n\n // If metrics of the scrollView changed, then we triggered remeasure for child list\n // to ensure VirtualizedList has the right information.\n this._nestedChildLists.forEach(childList => {\n childList.measureLayoutRelativeToContainingList();\n });\n }\n }, error => {\n console.warn(\"VirtualizedList: Encountered an error while measuring a list's\" + ' offset from its containing VirtualizedList.');\n });\n } catch (error) {\n console.warn('measureLayoutRelativeToContainingList threw an error', error.stack);\n }\n }\n _getFooterCellKey() {\n return this._getCellKey() + '-footer';\n }\n // $FlowFixMe[missing-local-annot]\n _renderDebugOverlay() {\n var normalize = this._scrollMetrics.visibleLength / (this._scrollMetrics.contentLength || 1);\n var framesInLayout = [];\n var itemCount = this.props.getItemCount(this.props.data);\n for (var ii = 0; ii < itemCount; ii++) {\n var frame = this.__getFrameMetricsApprox(ii, this.props);\n /* $FlowFixMe[prop-missing] (>=0.68.0 site=react_native_fb) This comment\n * suppresses an error found when Flow v0.68 was deployed. To see the\n * error delete this comment and run Flow. */\n if (frame.inLayout) {\n framesInLayout.push(frame);\n }\n }\n var windowTop = this.__getFrameMetricsApprox(this.state.cellsAroundViewport.first, this.props).offset;\n var frameLast = this.__getFrameMetricsApprox(this.state.cellsAroundViewport.last, this.props);\n var windowLen = frameLast.offset + frameLast.length - windowTop;\n var visTop = this._scrollMetrics.offset;\n var visLen = this._scrollMetrics.visibleLength;\n return /*#__PURE__*/React.createElement(View, {\n style: [styles.debugOverlayBase, styles.debugOverlay]\n }, framesInLayout.map((f, ii) => /*#__PURE__*/React.createElement(View, {\n key: 'f' + ii,\n style: [styles.debugOverlayBase, styles.debugOverlayFrame, {\n top: f.offset * normalize,\n height: f.length * normalize\n }]\n })), /*#__PURE__*/React.createElement(View, {\n style: [styles.debugOverlayBase, styles.debugOverlayFrameLast, {\n top: windowTop * normalize,\n height: windowLen * normalize\n }]\n }), /*#__PURE__*/React.createElement(View, {\n style: [styles.debugOverlayBase, styles.debugOverlayFrameVis, {\n top: visTop * normalize,\n height: visLen * normalize\n }]\n }));\n }\n _selectLength(metrics) {\n return !horizontalOrDefault(this.props.horizontal) ? metrics.height : metrics.width;\n }\n _selectOffset(metrics) {\n return !horizontalOrDefault(this.props.horizontal) ? metrics.y : metrics.x;\n }\n _maybeCallOnEdgeReached() {\n var _this$props8 = this.props,\n data = _this$props8.data,\n getItemCount = _this$props8.getItemCount,\n onStartReached = _this$props8.onStartReached,\n onStartReachedThreshold = _this$props8.onStartReachedThreshold,\n onEndReached = _this$props8.onEndReached,\n onEndReachedThreshold = _this$props8.onEndReachedThreshold,\n initialScrollIndex = _this$props8.initialScrollIndex;\n var _this$_scrollMetrics2 = this._scrollMetrics,\n contentLength = _this$_scrollMetrics2.contentLength,\n visibleLength = _this$_scrollMetrics2.visibleLength,\n offset = _this$_scrollMetrics2.offset;\n var distanceFromStart = offset;\n var distanceFromEnd = contentLength - visibleLength - offset;\n\n // Especially when oERT is zero it's necessary to 'floor' very small distance values to be 0\n // since debouncing causes us to not fire this event for every single \"pixel\" we scroll and can thus\n // be at the edge of the list with a distance approximating 0 but not quite there.\n if (distanceFromStart < ON_EDGE_REACHED_EPSILON) {\n distanceFromStart = 0;\n }\n if (distanceFromEnd < ON_EDGE_REACHED_EPSILON) {\n distanceFromEnd = 0;\n }\n\n // TODO: T121172172 Look into why we're \"defaulting\" to a threshold of 2px\n // when oERT is not present (different from 2 viewports used elsewhere)\n var DEFAULT_THRESHOLD_PX = 2;\n var startThreshold = onStartReachedThreshold != null ? onStartReachedThreshold * visibleLength : DEFAULT_THRESHOLD_PX;\n var endThreshold = onEndReachedThreshold != null ? onEndReachedThreshold * visibleLength : DEFAULT_THRESHOLD_PX;\n var isWithinStartThreshold = distanceFromStart <= startThreshold;\n var isWithinEndThreshold = distanceFromEnd <= endThreshold;\n\n // First check if the user just scrolled within the end threshold\n // and call onEndReached only once for a given content length,\n // and only if onStartReached is not being executed\n if (onEndReached && this.state.cellsAroundViewport.last === getItemCount(data) - 1 && isWithinEndThreshold && this._scrollMetrics.contentLength !== this._sentEndForContentLength) {\n this._sentEndForContentLength = this._scrollMetrics.contentLength;\n onEndReached({\n distanceFromEnd\n });\n }\n\n // Next check if the user just scrolled within the start threshold\n // and call onStartReached only once for a given content length,\n // and only if onEndReached is not being executed\n else if (onStartReached != null && this.state.cellsAroundViewport.first === 0 && isWithinStartThreshold && this._scrollMetrics.contentLength !== this._sentStartForContentLength) {\n // On initial mount when using initialScrollIndex the offset will be 0 initially\n // and will trigger an unexpected onStartReached. To avoid this we can use\n // timestamp to differentiate between the initial scroll metrics and when we actually\n // received the first scroll event.\n if (!initialScrollIndex || this._scrollMetrics.timestamp !== 0) {\n this._sentStartForContentLength = this._scrollMetrics.contentLength;\n onStartReached({\n distanceFromStart\n });\n }\n }\n\n // If the user scrolls away from the start or end and back again,\n // cause onStartReached or onEndReached to be triggered again\n else {\n this._sentStartForContentLength = isWithinStartThreshold ? this._sentStartForContentLength : 0;\n this._sentEndForContentLength = isWithinEndThreshold ? this._sentEndForContentLength : 0;\n }\n }\n\n /* Translates metrics from a scroll event in a parent VirtualizedList into\n * coordinates relative to the child list.\n */\n\n _scheduleCellsToRenderUpdate() {\n var _this$state$cellsArou = this.state.cellsAroundViewport,\n first = _this$state$cellsArou.first,\n last = _this$state$cellsArou.last;\n var _this$_scrollMetrics3 = this._scrollMetrics,\n offset = _this$_scrollMetrics3.offset,\n visibleLength = _this$_scrollMetrics3.visibleLength,\n velocity = _this$_scrollMetrics3.velocity;\n var itemCount = this.props.getItemCount(this.props.data);\n var hiPri = false;\n var onStartReachedThreshold = onStartReachedThresholdOrDefault(this.props.onStartReachedThreshold);\n var onEndReachedThreshold = onEndReachedThresholdOrDefault(this.props.onEndReachedThreshold);\n // Mark as high priority if we're close to the start of the first item\n // But only if there are items before the first rendered item\n if (first > 0) {\n var distTop = offset - this.__getFrameMetricsApprox(first, this.props).offset;\n hiPri = distTop < 0 || velocity < -2 && distTop < getScrollingThreshold(onStartReachedThreshold, visibleLength);\n }\n // Mark as high priority if we're close to the end of the last item\n // But only if there are items after the last rendered item\n if (!hiPri && last >= 0 && last < itemCount - 1) {\n var distBottom = this.__getFrameMetricsApprox(last, this.props).offset - (offset + visibleLength);\n hiPri = distBottom < 0 || velocity > 2 && distBottom < getScrollingThreshold(onEndReachedThreshold, visibleLength);\n }\n // Only trigger high-priority updates if we've actually rendered cells,\n // and with that size estimate, accurately compute how many cells we should render.\n // Otherwise, it would just render as many cells as it can (of zero dimension),\n // each time through attempting to render more (limited by maxToRenderPerBatch),\n // starving the renderer from actually laying out the objects and computing _averageCellLength.\n // If this is triggered in an `componentDidUpdate` followed by a hiPri cellToRenderUpdate\n // We shouldn't do another hipri cellToRenderUpdate\n if (hiPri && (this._averageCellLength || this.props.getItemLayout) && !this._hiPriInProgress) {\n this._hiPriInProgress = true;\n // Don't worry about interactions when scrolling quickly; focus on filling content as fast\n // as possible.\n this._updateCellsToRenderBatcher.dispose({\n abort: true\n });\n this._updateCellsToRender();\n return;\n } else {\n this._updateCellsToRenderBatcher.schedule();\n }\n }\n\n /**\n * Gets an approximate offset to an item at a given index. Supports\n * fractional indices.\n */\n\n _updateViewableItems(props, cellsAroundViewport) {\n this._viewabilityTuples.forEach(tuple => {\n tuple.viewabilityHelper.onUpdate(props, this._scrollMetrics.offset, this._scrollMetrics.visibleLength, this._getFrameMetrics, this._createViewToken, tuple.onViewableItemsChanged, cellsAroundViewport);\n });\n }\n}\nVirtualizedList.contextType = VirtualizedListContext;\nvar styles = StyleSheet.create({\n verticallyInverted: {\n transform: 'scaleY(-1)'\n },\n horizontallyInverted: {\n transform: 'scaleX(-1)'\n },\n debug: {\n flex: 1\n },\n debugOverlayBase: {\n position: 'absolute',\n top: 0,\n right: 0\n },\n debugOverlay: {\n bottom: 0,\n width: 20,\n borderColor: 'blue',\n borderWidth: 1\n },\n debugOverlayFrame: {\n left: 0,\n backgroundColor: 'orange'\n },\n debugOverlayFrameLast: {\n left: 0,\n borderColor: 'green',\n borderWidth: 2\n },\n debugOverlayFrameVis: {\n left: 0,\n borderColor: 'red',\n borderWidth: 2\n }\n});\nexport default VirtualizedList;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n/**\n * EventEmitter manages listeners and publishes events to them.\n *\n * EventEmitter accepts a single type parameter that defines the valid events\n * and associated listener argument(s).\n *\n * @example\n *\n * const emitter = new EventEmitter<{\n * success: [number, string],\n * error: [Error],\n * }>();\n *\n * emitter.on('success', (statusCode, responseText) => {...});\n * emitter.emit('success', 200, '...');\n *\n * emitter.on('error', error => {...});\n * emitter.emit('error', new Error('Resource not found'));\n *\n */\nexport default class EventEmitter {\n constructor() {\n this._registry = {};\n }\n /**\n * Registers a listener that is called when the supplied event is emitted.\n * Returns a subscription that has a `remove` method to undo registration.\n */\n addListener(eventType, listener, context) {\n var registrations = allocate(this._registry, eventType);\n var registration = {\n context,\n listener,\n remove() {\n registrations.delete(registration);\n }\n };\n registrations.add(registration);\n return registration;\n }\n\n /**\n * Emits the supplied event. Additional arguments supplied to `emit` will be\n * passed through to each of the registered listeners.\n *\n * If a listener modifies the listeners registered for the same event, those\n * changes will not be reflected in the current invocation of `emit`.\n */\n emit(eventType) {\n var registrations = this._registry[eventType];\n if (registrations != null) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n for (var _i = 0, _arr = [...registrations]; _i < _arr.length; _i++) {\n var registration = _arr[_i];\n registration.listener.apply(registration.context, args);\n }\n }\n }\n\n /**\n * Removes all registered listeners.\n */\n removeAllListeners(eventType) {\n if (eventType == null) {\n this._registry = {};\n } else {\n delete this._registry[eventType];\n }\n }\n\n /**\n * Returns the number of registered listeners for the supplied event.\n */\n listenerCount(eventType) {\n var registrations = this._registry[eventType];\n return registrations == null ? 0 : registrations.size;\n }\n}\nfunction allocate(registry, eventType) {\n var registrations = registry[eventType];\n if (registrations == null) {\n registrations = new Set();\n registry[eventType] = registrations;\n }\n return registrations;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @noflow\n */\n\n/* eslint no-bitwise: 0 */\n\n'use strict';\n\nfunction normalizeColor(color) {\n if (typeof color === 'number') {\n if (color >>> 0 === color && color >= 0 && color <= 0xffffffff) {\n return color;\n }\n return null;\n }\n\n if (typeof color !== 'string') {\n return null;\n }\n\n const matchers = getMatchers();\n let match;\n\n // Ordered based on occurrences on Facebook codebase\n if ((match = matchers.hex6.exec(color))) {\n return parseInt(match[1] + 'ff', 16) >>> 0;\n }\n\n const colorFromKeyword = normalizeKeyword(color);\n if (colorFromKeyword != null) {\n return colorFromKeyword;\n }\n\n if ((match = matchers.rgb.exec(color))) {\n return (\n ((parse255(match[1]) << 24) | // r\n (parse255(match[2]) << 16) | // g\n (parse255(match[3]) << 8) | // b\n 0x000000ff) >>> // a\n 0\n );\n }\n\n if ((match = matchers.rgba.exec(color))) {\n // rgba(R G B / A) notation\n if (match[6] !== undefined) {\n return (\n ((parse255(match[6]) << 24) | // r\n (parse255(match[7]) << 16) | // g\n (parse255(match[8]) << 8) | // b\n parse1(match[9])) >>> // a\n 0\n );\n }\n\n // rgba(R, G, B, A) notation\n return (\n ((parse255(match[2]) << 24) | // r\n (parse255(match[3]) << 16) | // g\n (parse255(match[4]) << 8) | // b\n parse1(match[5])) >>> // a\n 0\n );\n }\n\n if ((match = matchers.hex3.exec(color))) {\n return (\n parseInt(\n match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n 'ff', // a\n 16,\n ) >>> 0\n );\n }\n\n // https://drafts.csswg.org/css-color-4/#hex-notation\n if ((match = matchers.hex8.exec(color))) {\n return parseInt(match[1], 16) >>> 0;\n }\n\n if ((match = matchers.hex4.exec(color))) {\n return (\n parseInt(\n match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n match[4] +\n match[4], // a\n 16,\n ) >>> 0\n );\n }\n\n if ((match = matchers.hsl.exec(color))) {\n return (\n (hslToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]), // l\n ) |\n 0x000000ff) >>> // a\n 0\n );\n }\n\n if ((match = matchers.hsla.exec(color))) {\n // hsla(H S L / A) notation\n if (match[6] !== undefined) {\n return (\n (hslToRgb(\n parse360(match[6]), // h\n parsePercentage(match[7]), // s\n parsePercentage(match[8]), // l\n ) |\n parse1(match[9])) >>> // a\n 0\n );\n }\n\n // hsla(H, S, L, A) notation\n return (\n (hslToRgb(\n parse360(match[2]), // h\n parsePercentage(match[3]), // s\n parsePercentage(match[4]), // l\n ) |\n parse1(match[5])) >>> // a\n 0\n );\n }\n\n if ((match = matchers.hwb.exec(color))) {\n return (\n (hwbToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // w\n parsePercentage(match[3]), // b\n ) |\n 0x000000ff) >>> // a\n 0\n );\n }\n\n return null;\n}\n\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n\nfunction hslToRgb(h, s, l) {\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n const r = hue2rgb(p, q, h + 1 / 3);\n const g = hue2rgb(p, q, h);\n const b = hue2rgb(p, q, h - 1 / 3);\n\n return (\n (Math.round(r * 255) << 24) |\n (Math.round(g * 255) << 16) |\n (Math.round(b * 255) << 8)\n );\n}\n\nfunction hwbToRgb(h, w, b) {\n if (w + b >= 1) {\n const gray = Math.round((w * 255) / (w + b));\n\n return (gray << 24) | (gray << 16) | (gray << 8);\n }\n\n const red = hue2rgb(0, 1, h + 1 / 3) * (1 - w - b) + w;\n const green = hue2rgb(0, 1, h) * (1 - w - b) + w;\n const blue = hue2rgb(0, 1, h - 1 / 3) * (1 - w - b) + w;\n\n return (\n (Math.round(red * 255) << 24) |\n (Math.round(green * 255) << 16) |\n (Math.round(blue * 255) << 8)\n );\n}\n\nconst NUMBER = '[-+]?\\\\d*\\\\.?\\\\d+';\nconst PERCENTAGE = NUMBER + '%';\n\nfunction call(...args) {\n return '\\\\(\\\\s*(' + args.join(')\\\\s*,?\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nfunction callWithSlashSeparator(...args) {\n return (\n '\\\\(\\\\s*(' +\n args.slice(0, args.length - 1).join(')\\\\s*,?\\\\s*(') +\n ')\\\\s*/\\\\s*(' +\n args[args.length - 1] +\n ')\\\\s*\\\\)'\n );\n}\n\nfunction commaSeparatedCall(...args) {\n return '\\\\(\\\\s*(' + args.join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nlet cachedMatchers;\n\nfunction getMatchers() {\n if (cachedMatchers === undefined) {\n cachedMatchers = {\n rgb: new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER)),\n rgba: new RegExp(\n 'rgba(' +\n commaSeparatedCall(NUMBER, NUMBER, NUMBER, NUMBER) +\n '|' +\n callWithSlashSeparator(NUMBER, NUMBER, NUMBER, NUMBER) +\n ')',\n ),\n hsl: new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE)),\n hsla: new RegExp(\n 'hsla(' +\n commaSeparatedCall(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER) +\n '|' +\n callWithSlashSeparator(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER) +\n ')',\n ),\n hwb: new RegExp('hwb' + call(NUMBER, PERCENTAGE, PERCENTAGE)),\n hex3: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex4: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#([0-9a-fA-F]{6})$/,\n hex8: /^#([0-9a-fA-F]{8})$/,\n };\n }\n return cachedMatchers;\n}\n\nfunction parse255(str) {\n const int = parseInt(str, 10);\n if (int < 0) {\n return 0;\n }\n if (int > 255) {\n return 255;\n }\n return int;\n}\n\nfunction parse360(str) {\n const int = parseFloat(str);\n return (((int % 360) + 360) % 360) / 360;\n}\n\nfunction parse1(str) {\n const num = parseFloat(str);\n if (num < 0) {\n return 0;\n }\n if (num > 1) {\n return 255;\n }\n return Math.round(num * 255);\n}\n\nfunction parsePercentage(str) {\n // parseFloat conveniently ignores the final %\n const int = parseFloat(str);\n if (int < 0) {\n return 0;\n }\n if (int > 100) {\n return 1;\n }\n return int / 100;\n}\n\nfunction normalizeKeyword(name) {\n // prettier-ignore\n switch (name) {\n case 'transparent': return 0x00000000;\n // http://www.w3.org/TR/css3-color/#svg-color\n case 'aliceblue': return 0xf0f8ffff;\n case 'antiquewhite': return 0xfaebd7ff;\n case 'aqua': return 0x00ffffff;\n case 'aquamarine': return 0x7fffd4ff;\n case 'azure': return 0xf0ffffff;\n case 'beige': return 0xf5f5dcff;\n case 'bisque': return 0xffe4c4ff;\n case 'black': return 0x000000ff;\n case 'blanchedalmond': return 0xffebcdff;\n case 'blue': return 0x0000ffff;\n case 'blueviolet': return 0x8a2be2ff;\n case 'brown': return 0xa52a2aff;\n case 'burlywood': return 0xdeb887ff;\n case 'burntsienna': return 0xea7e5dff;\n case 'cadetblue': return 0x5f9ea0ff;\n case 'chartreuse': return 0x7fff00ff;\n case 'chocolate': return 0xd2691eff;\n case 'coral': return 0xff7f50ff;\n case 'cornflowerblue': return 0x6495edff;\n case 'cornsilk': return 0xfff8dcff;\n case 'crimson': return 0xdc143cff;\n case 'cyan': return 0x00ffffff;\n case 'darkblue': return 0x00008bff;\n case 'darkcyan': return 0x008b8bff;\n case 'darkgoldenrod': return 0xb8860bff;\n case 'darkgray': return 0xa9a9a9ff;\n case 'darkgreen': return 0x006400ff;\n case 'darkgrey': return 0xa9a9a9ff;\n case 'darkkhaki': return 0xbdb76bff;\n case 'darkmagenta': return 0x8b008bff;\n case 'darkolivegreen': return 0x556b2fff;\n case 'darkorange': return 0xff8c00ff;\n case 'darkorchid': return 0x9932ccff;\n case 'darkred': return 0x8b0000ff;\n case 'darksalmon': return 0xe9967aff;\n case 'darkseagreen': return 0x8fbc8fff;\n case 'darkslateblue': return 0x483d8bff;\n case 'darkslategray': return 0x2f4f4fff;\n case 'darkslategrey': return 0x2f4f4fff;\n case 'darkturquoise': return 0x00ced1ff;\n case 'darkviolet': return 0x9400d3ff;\n case 'deeppink': return 0xff1493ff;\n case 'deepskyblue': return 0x00bfffff;\n case 'dimgray': return 0x696969ff;\n case 'dimgrey': return 0x696969ff;\n case 'dodgerblue': return 0x1e90ffff;\n case 'firebrick': return 0xb22222ff;\n case 'floralwhite': return 0xfffaf0ff;\n case 'forestgreen': return 0x228b22ff;\n case 'fuchsia': return 0xff00ffff;\n case 'gainsboro': return 0xdcdcdcff;\n case 'ghostwhite': return 0xf8f8ffff;\n case 'gold': return 0xffd700ff;\n case 'goldenrod': return 0xdaa520ff;\n case 'gray': return 0x808080ff;\n case 'green': return 0x008000ff;\n case 'greenyellow': return 0xadff2fff;\n case 'grey': return 0x808080ff;\n case 'honeydew': return 0xf0fff0ff;\n case 'hotpink': return 0xff69b4ff;\n case 'indianred': return 0xcd5c5cff;\n case 'indigo': return 0x4b0082ff;\n case 'ivory': return 0xfffff0ff;\n case 'khaki': return 0xf0e68cff;\n case 'lavender': return 0xe6e6faff;\n case 'lavenderblush': return 0xfff0f5ff;\n case 'lawngreen': return 0x7cfc00ff;\n case 'lemonchiffon': return 0xfffacdff;\n case 'lightblue': return 0xadd8e6ff;\n case 'lightcoral': return 0xf08080ff;\n case 'lightcyan': return 0xe0ffffff;\n case 'lightgoldenrodyellow': return 0xfafad2ff;\n case 'lightgray': return 0xd3d3d3ff;\n case 'lightgreen': return 0x90ee90ff;\n case 'lightgrey': return 0xd3d3d3ff;\n case 'lightpink': return 0xffb6c1ff;\n case 'lightsalmon': return 0xffa07aff;\n case 'lightseagreen': return 0x20b2aaff;\n case 'lightskyblue': return 0x87cefaff;\n case 'lightslategray': return 0x778899ff;\n case 'lightslategrey': return 0x778899ff;\n case 'lightsteelblue': return 0xb0c4deff;\n case 'lightyellow': return 0xffffe0ff;\n case 'lime': return 0x00ff00ff;\n case 'limegreen': return 0x32cd32ff;\n case 'linen': return 0xfaf0e6ff;\n case 'magenta': return 0xff00ffff;\n case 'maroon': return 0x800000ff;\n case 'mediumaquamarine': return 0x66cdaaff;\n case 'mediumblue': return 0x0000cdff;\n case 'mediumorchid': return 0xba55d3ff;\n case 'mediumpurple': return 0x9370dbff;\n case 'mediumseagreen': return 0x3cb371ff;\n case 'mediumslateblue': return 0x7b68eeff;\n case 'mediumspringgreen': return 0x00fa9aff;\n case 'mediumturquoise': return 0x48d1ccff;\n case 'mediumvioletred': return 0xc71585ff;\n case 'midnightblue': return 0x191970ff;\n case 'mintcream': return 0xf5fffaff;\n case 'mistyrose': return 0xffe4e1ff;\n case 'moccasin': return 0xffe4b5ff;\n case 'navajowhite': return 0xffdeadff;\n case 'navy': return 0x000080ff;\n case 'oldlace': return 0xfdf5e6ff;\n case 'olive': return 0x808000ff;\n case 'olivedrab': return 0x6b8e23ff;\n case 'orange': return 0xffa500ff;\n case 'orangered': return 0xff4500ff;\n case 'orchid': return 0xda70d6ff;\n case 'palegoldenrod': return 0xeee8aaff;\n case 'palegreen': return 0x98fb98ff;\n case 'paleturquoise': return 0xafeeeeff;\n case 'palevioletred': return 0xdb7093ff;\n case 'papayawhip': return 0xffefd5ff;\n case 'peachpuff': return 0xffdab9ff;\n case 'peru': return 0xcd853fff;\n case 'pink': return 0xffc0cbff;\n case 'plum': return 0xdda0ddff;\n case 'powderblue': return 0xb0e0e6ff;\n case 'purple': return 0x800080ff;\n case 'rebeccapurple': return 0x663399ff;\n case 'red': return 0xff0000ff;\n case 'rosybrown': return 0xbc8f8fff;\n case 'royalblue': return 0x4169e1ff;\n case 'saddlebrown': return 0x8b4513ff;\n case 'salmon': return 0xfa8072ff;\n case 'sandybrown': return 0xf4a460ff;\n case 'seagreen': return 0x2e8b57ff;\n case 'seashell': return 0xfff5eeff;\n case 'sienna': return 0xa0522dff;\n case 'silver': return 0xc0c0c0ff;\n case 'skyblue': return 0x87ceebff;\n case 'slateblue': return 0x6a5acdff;\n case 'slategray': return 0x708090ff;\n case 'slategrey': return 0x708090ff;\n case 'snow': return 0xfffafaff;\n case 'springgreen': return 0x00ff7fff;\n case 'steelblue': return 0x4682b4ff;\n case 'tan': return 0xd2b48cff;\n case 'teal': return 0x008080ff;\n case 'thistle': return 0xd8bfd8ff;\n case 'tomato': return 0xff6347ff;\n case 'turquoise': return 0x40e0d0ff;\n case 'violet': return 0xee82eeff;\n case 'wheat': return 0xf5deb3ff;\n case 'white': return 0xffffffff;\n case 'whitesmoke': return 0xf5f5f5ff;\n case 'yellow': return 0xffff00ff;\n case 'yellowgreen': return 0x9acd32ff;\n }\n return null;\n}\n\nmodule.exports = normalizeColor;\n","var asn1 = exports;\n\nasn1.bignum = require('bn.js');\n\nasn1.define = require('./asn1/api').define;\nasn1.base = require('./asn1/base');\nasn1.constants = require('./asn1/constants');\nasn1.decoders = require('./asn1/decoders');\nasn1.encoders = require('./asn1/encoders');\n","var asn1 = require('../asn1');\nvar inherits = require('inherits');\n\nvar api = exports;\n\napi.define = function define(name, body) {\n return new Entity(name, body);\n};\n\nfunction Entity(name, body) {\n this.name = name;\n this.body = body;\n\n this.decoders = {};\n this.encoders = {};\n};\n\nEntity.prototype._createNamed = function createNamed(base) {\n var named;\n try {\n named = require('vm').runInThisContext(\n '(function ' + this.name + '(entity) {\\n' +\n ' this._initNamed(entity);\\n' +\n '})'\n );\n } catch (e) {\n named = function (entity) {\n this._initNamed(entity);\n };\n }\n inherits(named, base);\n named.prototype._initNamed = function initnamed(entity) {\n base.call(this, entity);\n };\n\n return new named(this);\n};\n\nEntity.prototype._getDecoder = function _getDecoder(enc) {\n enc = enc || 'der';\n // Lazily create decoder\n if (!this.decoders.hasOwnProperty(enc))\n this.decoders[enc] = this._createNamed(asn1.decoders[enc]);\n return this.decoders[enc];\n};\n\nEntity.prototype.decode = function decode(data, enc, options) {\n return this._getDecoder(enc).decode(data, options);\n};\n\nEntity.prototype._getEncoder = function _getEncoder(enc) {\n enc = enc || 'der';\n // Lazily create encoder\n if (!this.encoders.hasOwnProperty(enc))\n this.encoders[enc] = this._createNamed(asn1.encoders[enc]);\n return this.encoders[enc];\n};\n\nEntity.prototype.encode = function encode(data, enc, /* internal */ reporter) {\n return this._getEncoder(enc).encode(data, reporter);\n};\n","var inherits = require('inherits');\nvar Reporter = require('../base').Reporter;\nvar Buffer = require('buffer').Buffer;\n\nfunction DecoderBuffer(base, options) {\n Reporter.call(this, options);\n if (!Buffer.isBuffer(base)) {\n this.error('Input not Buffer');\n return;\n }\n\n this.base = base;\n this.offset = 0;\n this.length = base.length;\n}\ninherits(DecoderBuffer, Reporter);\nexports.DecoderBuffer = DecoderBuffer;\n\nDecoderBuffer.prototype.save = function save() {\n return { offset: this.offset, reporter: Reporter.prototype.save.call(this) };\n};\n\nDecoderBuffer.prototype.restore = function restore(save) {\n // Return skipped data\n var res = new DecoderBuffer(this.base);\n res.offset = save.offset;\n res.length = this.offset;\n\n this.offset = save.offset;\n Reporter.prototype.restore.call(this, save.reporter);\n\n return res;\n};\n\nDecoderBuffer.prototype.isEmpty = function isEmpty() {\n return this.offset === this.length;\n};\n\nDecoderBuffer.prototype.readUInt8 = function readUInt8(fail) {\n if (this.offset + 1 <= this.length)\n return this.base.readUInt8(this.offset++, true);\n else\n return this.error(fail || 'DecoderBuffer overrun');\n}\n\nDecoderBuffer.prototype.skip = function skip(bytes, fail) {\n if (!(this.offset + bytes <= this.length))\n return this.error(fail || 'DecoderBuffer overrun');\n\n var res = new DecoderBuffer(this.base);\n\n // Share reporter state\n res._reporterState = this._reporterState;\n\n res.offset = this.offset;\n res.length = this.offset + bytes;\n this.offset += bytes;\n return res;\n}\n\nDecoderBuffer.prototype.raw = function raw(save) {\n return this.base.slice(save ? save.offset : this.offset, this.length);\n}\n\nfunction EncoderBuffer(value, reporter) {\n if (Array.isArray(value)) {\n this.length = 0;\n this.value = value.map(function(item) {\n if (!(item instanceof EncoderBuffer))\n item = new EncoderBuffer(item, reporter);\n this.length += item.length;\n return item;\n }, this);\n } else if (typeof value === 'number') {\n if (!(0 <= value && value <= 0xff))\n return reporter.error('non-byte EncoderBuffer value');\n this.value = value;\n this.length = 1;\n } else if (typeof value === 'string') {\n this.value = value;\n this.length = Buffer.byteLength(value);\n } else if (Buffer.isBuffer(value)) {\n this.value = value;\n this.length = value.length;\n } else {\n return reporter.error('Unsupported type: ' + typeof value);\n }\n}\nexports.EncoderBuffer = EncoderBuffer;\n\nEncoderBuffer.prototype.join = function join(out, offset) {\n if (!out)\n out = new Buffer(this.length);\n if (!offset)\n offset = 0;\n\n if (this.length === 0)\n return out;\n\n if (Array.isArray(this.value)) {\n this.value.forEach(function(item) {\n item.join(out, offset);\n offset += item.length;\n });\n } else {\n if (typeof this.value === 'number')\n out[offset] = this.value;\n else if (typeof this.value === 'string')\n out.write(this.value, offset);\n else if (Buffer.isBuffer(this.value))\n this.value.copy(out, offset);\n offset += this.length;\n }\n\n return out;\n};\n","var base = exports;\n\nbase.Reporter = require('./reporter').Reporter;\nbase.DecoderBuffer = require('./buffer').DecoderBuffer;\nbase.EncoderBuffer = require('./buffer').EncoderBuffer;\nbase.Node = require('./node');\n","var Reporter = require('../base').Reporter;\nvar EncoderBuffer = require('../base').EncoderBuffer;\nvar DecoderBuffer = require('../base').DecoderBuffer;\nvar assert = require('minimalistic-assert');\n\n// Supported tags\nvar tags = [\n 'seq', 'seqof', 'set', 'setof', 'objid', 'bool',\n 'gentime', 'utctime', 'null_', 'enum', 'int', 'objDesc',\n 'bitstr', 'bmpstr', 'charstr', 'genstr', 'graphstr', 'ia5str', 'iso646str',\n 'numstr', 'octstr', 'printstr', 't61str', 'unistr', 'utf8str', 'videostr'\n];\n\n// Public methods list\nvar methods = [\n 'key', 'obj', 'use', 'optional', 'explicit', 'implicit', 'def', 'choice',\n 'any', 'contains'\n].concat(tags);\n\n// Overrided methods list\nvar overrided = [\n '_peekTag', '_decodeTag', '_use',\n '_decodeStr', '_decodeObjid', '_decodeTime',\n '_decodeNull', '_decodeInt', '_decodeBool', '_decodeList',\n\n '_encodeComposite', '_encodeStr', '_encodeObjid', '_encodeTime',\n '_encodeNull', '_encodeInt', '_encodeBool'\n];\n\nfunction Node(enc, parent) {\n var state = {};\n this._baseState = state;\n\n state.enc = enc;\n\n state.parent = parent || null;\n state.children = null;\n\n // State\n state.tag = null;\n state.args = null;\n state.reverseArgs = null;\n state.choice = null;\n state.optional = false;\n state.any = false;\n state.obj = false;\n state.use = null;\n state.useDecoder = null;\n state.key = null;\n state['default'] = null;\n state.explicit = null;\n state.implicit = null;\n state.contains = null;\n\n // Should create new instance on each method\n if (!state.parent) {\n state.children = [];\n this._wrap();\n }\n}\nmodule.exports = Node;\n\nvar stateProps = [\n 'enc', 'parent', 'children', 'tag', 'args', 'reverseArgs', 'choice',\n 'optional', 'any', 'obj', 'use', 'alteredUse', 'key', 'default', 'explicit',\n 'implicit', 'contains'\n];\n\nNode.prototype.clone = function clone() {\n var state = this._baseState;\n var cstate = {};\n stateProps.forEach(function(prop) {\n cstate[prop] = state[prop];\n });\n var res = new this.constructor(cstate.parent);\n res._baseState = cstate;\n return res;\n};\n\nNode.prototype._wrap = function wrap() {\n var state = this._baseState;\n methods.forEach(function(method) {\n this[method] = function _wrappedMethod() {\n var clone = new this.constructor(this);\n state.children.push(clone);\n return clone[method].apply(clone, arguments);\n };\n }, this);\n};\n\nNode.prototype._init = function init(body) {\n var state = this._baseState;\n\n assert(state.parent === null);\n body.call(this);\n\n // Filter children\n state.children = state.children.filter(function(child) {\n return child._baseState.parent === this;\n }, this);\n assert.equal(state.children.length, 1, 'Root node can have only one child');\n};\n\nNode.prototype._useArgs = function useArgs(args) {\n var state = this._baseState;\n\n // Filter children and args\n var children = args.filter(function(arg) {\n return arg instanceof this.constructor;\n }, this);\n args = args.filter(function(arg) {\n return !(arg instanceof this.constructor);\n }, this);\n\n if (children.length !== 0) {\n assert(state.children === null);\n state.children = children;\n\n // Replace parent to maintain backward link\n children.forEach(function(child) {\n child._baseState.parent = this;\n }, this);\n }\n if (args.length !== 0) {\n assert(state.args === null);\n state.args = args;\n state.reverseArgs = args.map(function(arg) {\n if (typeof arg !== 'object' || arg.constructor !== Object)\n return arg;\n\n var res = {};\n Object.keys(arg).forEach(function(key) {\n if (key == (key | 0))\n key |= 0;\n var value = arg[key];\n res[value] = key;\n });\n return res;\n });\n }\n};\n\n//\n// Overrided methods\n//\n\noverrided.forEach(function(method) {\n Node.prototype[method] = function _overrided() {\n var state = this._baseState;\n throw new Error(method + ' not implemented for encoding: ' + state.enc);\n };\n});\n\n//\n// Public methods\n//\n\ntags.forEach(function(tag) {\n Node.prototype[tag] = function _tagMethod() {\n var state = this._baseState;\n var args = Array.prototype.slice.call(arguments);\n\n assert(state.tag === null);\n state.tag = tag;\n\n this._useArgs(args);\n\n return this;\n };\n});\n\nNode.prototype.use = function use(item) {\n assert(item);\n var state = this._baseState;\n\n assert(state.use === null);\n state.use = item;\n\n return this;\n};\n\nNode.prototype.optional = function optional() {\n var state = this._baseState;\n\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.def = function def(val) {\n var state = this._baseState;\n\n assert(state['default'] === null);\n state['default'] = val;\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.explicit = function explicit(num) {\n var state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.explicit = num;\n\n return this;\n};\n\nNode.prototype.implicit = function implicit(num) {\n var state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.implicit = num;\n\n return this;\n};\n\nNode.prototype.obj = function obj() {\n var state = this._baseState;\n var args = Array.prototype.slice.call(arguments);\n\n state.obj = true;\n\n if (args.length !== 0)\n this._useArgs(args);\n\n return this;\n};\n\nNode.prototype.key = function key(newKey) {\n var state = this._baseState;\n\n assert(state.key === null);\n state.key = newKey;\n\n return this;\n};\n\nNode.prototype.any = function any() {\n var state = this._baseState;\n\n state.any = true;\n\n return this;\n};\n\nNode.prototype.choice = function choice(obj) {\n var state = this._baseState;\n\n assert(state.choice === null);\n state.choice = obj;\n this._useArgs(Object.keys(obj).map(function(key) {\n return obj[key];\n }));\n\n return this;\n};\n\nNode.prototype.contains = function contains(item) {\n var state = this._baseState;\n\n assert(state.use === null);\n state.contains = item;\n\n return this;\n};\n\n//\n// Decoding\n//\n\nNode.prototype._decode = function decode(input, options) {\n var state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return input.wrapResult(state.children[0]._decode(input, options));\n\n var result = state['default'];\n var present = true;\n\n var prevKey = null;\n if (state.key !== null)\n prevKey = input.enterKey(state.key);\n\n // Check if tag is there\n if (state.optional) {\n var tag = null;\n if (state.explicit !== null)\n tag = state.explicit;\n else if (state.implicit !== null)\n tag = state.implicit;\n else if (state.tag !== null)\n tag = state.tag;\n\n if (tag === null && !state.any) {\n // Trial and Error\n var save = input.save();\n try {\n if (state.choice === null)\n this._decodeGeneric(state.tag, input, options);\n else\n this._decodeChoice(input, options);\n present = true;\n } catch (e) {\n present = false;\n }\n input.restore(save);\n } else {\n present = this._peekTag(input, tag, state.any);\n\n if (input.isError(present))\n return present;\n }\n }\n\n // Push object on stack\n var prevObj;\n if (state.obj && present)\n prevObj = input.enterObject();\n\n if (present) {\n // Unwrap explicit values\n if (state.explicit !== null) {\n var explicit = this._decodeTag(input, state.explicit);\n if (input.isError(explicit))\n return explicit;\n input = explicit;\n }\n\n var start = input.offset;\n\n // Unwrap implicit and normal values\n if (state.use === null && state.choice === null) {\n if (state.any)\n var save = input.save();\n var body = this._decodeTag(\n input,\n state.implicit !== null ? state.implicit : state.tag,\n state.any\n );\n if (input.isError(body))\n return body;\n\n if (state.any)\n result = input.raw(save);\n else\n input = body;\n }\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), start, input.length, 'tagged');\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), input.offset, input.length, 'content');\n\n // Select proper method for tag\n if (state.any)\n result = result;\n else if (state.choice === null)\n result = this._decodeGeneric(state.tag, input, options);\n else\n result = this._decodeChoice(input, options);\n\n if (input.isError(result))\n return result;\n\n // Decode children\n if (!state.any && state.choice === null && state.children !== null) {\n state.children.forEach(function decodeChildren(child) {\n // NOTE: We are ignoring errors here, to let parser continue with other\n // parts of encoded data\n child._decode(input, options);\n });\n }\n\n // Decode contained/encoded by schema, only in bit or octet strings\n if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) {\n var data = new DecoderBuffer(result);\n result = this._getUse(state.contains, input._reporterState.obj)\n ._decode(data, options);\n }\n }\n\n // Pop object\n if (state.obj && present)\n result = input.leaveObject(prevObj);\n\n // Set key\n if (state.key !== null && (result !== null || present === true))\n input.leaveKey(prevKey, state.key, result);\n else if (prevKey !== null)\n input.exitKey(prevKey);\n\n return result;\n};\n\nNode.prototype._decodeGeneric = function decodeGeneric(tag, input, options) {\n var state = this._baseState;\n\n if (tag === 'seq' || tag === 'set')\n return null;\n if (tag === 'seqof' || tag === 'setof')\n return this._decodeList(input, tag, state.args[0], options);\n else if (/str$/.test(tag))\n return this._decodeStr(input, tag, options);\n else if (tag === 'objid' && state.args)\n return this._decodeObjid(input, state.args[0], state.args[1], options);\n else if (tag === 'objid')\n return this._decodeObjid(input, null, null, options);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._decodeTime(input, tag, options);\n else if (tag === 'null_')\n return this._decodeNull(input, options);\n else if (tag === 'bool')\n return this._decodeBool(input, options);\n else if (tag === 'objDesc')\n return this._decodeStr(input, tag, options);\n else if (tag === 'int' || tag === 'enum')\n return this._decodeInt(input, state.args && state.args[0], options);\n\n if (state.use !== null) {\n return this._getUse(state.use, input._reporterState.obj)\n ._decode(input, options);\n } else {\n return input.error('unknown tag: ' + tag);\n }\n};\n\nNode.prototype._getUse = function _getUse(entity, obj) {\n\n var state = this._baseState;\n // Create altered use decoder if implicit is set\n state.useDecoder = this._use(entity, obj);\n assert(state.useDecoder._baseState.parent === null);\n state.useDecoder = state.useDecoder._baseState.children[0];\n if (state.implicit !== state.useDecoder._baseState.implicit) {\n state.useDecoder = state.useDecoder.clone();\n state.useDecoder._baseState.implicit = state.implicit;\n }\n return state.useDecoder;\n};\n\nNode.prototype._decodeChoice = function decodeChoice(input, options) {\n var state = this._baseState;\n var result = null;\n var match = false;\n\n Object.keys(state.choice).some(function(key) {\n var save = input.save();\n var node = state.choice[key];\n try {\n var value = node._decode(input, options);\n if (input.isError(value))\n return false;\n\n result = { type: key, value: value };\n match = true;\n } catch (e) {\n input.restore(save);\n return false;\n }\n return true;\n }, this);\n\n if (!match)\n return input.error('Choice not matched');\n\n return result;\n};\n\n//\n// Encoding\n//\n\nNode.prototype._createEncoderBuffer = function createEncoderBuffer(data) {\n return new EncoderBuffer(data, this.reporter);\n};\n\nNode.prototype._encode = function encode(data, reporter, parent) {\n var state = this._baseState;\n if (state['default'] !== null && state['default'] === data)\n return;\n\n var result = this._encodeValue(data, reporter, parent);\n if (result === undefined)\n return;\n\n if (this._skipDefault(result, reporter, parent))\n return;\n\n return result;\n};\n\nNode.prototype._encodeValue = function encode(data, reporter, parent) {\n var state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return state.children[0]._encode(data, reporter || new Reporter());\n\n var result = null;\n\n // Set reporter to share it with a child class\n this.reporter = reporter;\n\n // Check if data is there\n if (state.optional && data === undefined) {\n if (state['default'] !== null)\n data = state['default']\n else\n return;\n }\n\n // Encode children first\n var content = null;\n var primitive = false;\n if (state.any) {\n // Anything that was given is translated to buffer\n result = this._createEncoderBuffer(data);\n } else if (state.choice) {\n result = this._encodeChoice(data, reporter);\n } else if (state.contains) {\n content = this._getUse(state.contains, parent)._encode(data, reporter);\n primitive = true;\n } else if (state.children) {\n content = state.children.map(function(child) {\n if (child._baseState.tag === 'null_')\n return child._encode(null, reporter, data);\n\n if (child._baseState.key === null)\n return reporter.error('Child should have a key');\n var prevKey = reporter.enterKey(child._baseState.key);\n\n if (typeof data !== 'object')\n return reporter.error('Child expected, but input is not object');\n\n var res = child._encode(data[child._baseState.key], reporter, data);\n reporter.leaveKey(prevKey);\n\n return res;\n }, this).filter(function(child) {\n return child;\n });\n content = this._createEncoderBuffer(content);\n } else {\n if (state.tag === 'seqof' || state.tag === 'setof') {\n // TODO(indutny): this should be thrown on DSL level\n if (!(state.args && state.args.length === 1))\n return reporter.error('Too many args for : ' + state.tag);\n\n if (!Array.isArray(data))\n return reporter.error('seqof/setof, but data is not Array');\n\n var child = this.clone();\n child._baseState.implicit = null;\n content = this._createEncoderBuffer(data.map(function(item) {\n var state = this._baseState;\n\n return this._getUse(state.args[0], data)._encode(item, reporter);\n }, child));\n } else if (state.use !== null) {\n result = this._getUse(state.use, parent)._encode(data, reporter);\n } else {\n content = this._encodePrimitive(state.tag, data);\n primitive = true;\n }\n }\n\n // Encode data itself\n var result;\n if (!state.any && state.choice === null) {\n var tag = state.implicit !== null ? state.implicit : state.tag;\n var cls = state.implicit === null ? 'universal' : 'context';\n\n if (tag === null) {\n if (state.use === null)\n reporter.error('Tag could be omitted only for .use()');\n } else {\n if (state.use === null)\n result = this._encodeComposite(tag, primitive, cls, content);\n }\n }\n\n // Wrap in explicit\n if (state.explicit !== null)\n result = this._encodeComposite(state.explicit, false, 'context', result);\n\n return result;\n};\n\nNode.prototype._encodeChoice = function encodeChoice(data, reporter) {\n var state = this._baseState;\n\n var node = state.choice[data.type];\n if (!node) {\n assert(\n false,\n data.type + ' not found in ' +\n JSON.stringify(Object.keys(state.choice)));\n }\n return node._encode(data.value, reporter);\n};\n\nNode.prototype._encodePrimitive = function encodePrimitive(tag, data) {\n var state = this._baseState;\n\n if (/str$/.test(tag))\n return this._encodeStr(data, tag);\n else if (tag === 'objid' && state.args)\n return this._encodeObjid(data, state.reverseArgs[0], state.args[1]);\n else if (tag === 'objid')\n return this._encodeObjid(data, null, null);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._encodeTime(data, tag);\n else if (tag === 'null_')\n return this._encodeNull();\n else if (tag === 'int' || tag === 'enum')\n return this._encodeInt(data, state.args && state.reverseArgs[0]);\n else if (tag === 'bool')\n return this._encodeBool(data);\n else if (tag === 'objDesc')\n return this._encodeStr(data, tag);\n else\n throw new Error('Unsupported tag: ' + tag);\n};\n\nNode.prototype._isNumstr = function isNumstr(str) {\n return /^[0-9 ]*$/.test(str);\n};\n\nNode.prototype._isPrintstr = function isPrintstr(str) {\n return /^[A-Za-z0-9 '\\(\\)\\+,\\-\\.\\/:=\\?]*$/.test(str);\n};\n","var inherits = require('inherits');\n\nfunction Reporter(options) {\n this._reporterState = {\n obj: null,\n path: [],\n options: options || {},\n errors: []\n };\n}\nexports.Reporter = Reporter;\n\nReporter.prototype.isError = function isError(obj) {\n return obj instanceof ReporterError;\n};\n\nReporter.prototype.save = function save() {\n var state = this._reporterState;\n\n return { obj: state.obj, pathLen: state.path.length };\n};\n\nReporter.prototype.restore = function restore(data) {\n var state = this._reporterState;\n\n state.obj = data.obj;\n state.path = state.path.slice(0, data.pathLen);\n};\n\nReporter.prototype.enterKey = function enterKey(key) {\n return this._reporterState.path.push(key);\n};\n\nReporter.prototype.exitKey = function exitKey(index) {\n var state = this._reporterState;\n\n state.path = state.path.slice(0, index - 1);\n};\n\nReporter.prototype.leaveKey = function leaveKey(index, key, value) {\n var state = this._reporterState;\n\n this.exitKey(index);\n if (state.obj !== null)\n state.obj[key] = value;\n};\n\nReporter.prototype.path = function path() {\n return this._reporterState.path.join('/');\n};\n\nReporter.prototype.enterObject = function enterObject() {\n var state = this._reporterState;\n\n var prev = state.obj;\n state.obj = {};\n return prev;\n};\n\nReporter.prototype.leaveObject = function leaveObject(prev) {\n var state = this._reporterState;\n\n var now = state.obj;\n state.obj = prev;\n return now;\n};\n\nReporter.prototype.error = function error(msg) {\n var err;\n var state = this._reporterState;\n\n var inherited = msg instanceof ReporterError;\n if (inherited) {\n err = msg;\n } else {\n err = new ReporterError(state.path.map(function(elem) {\n return '[' + JSON.stringify(elem) + ']';\n }).join(''), msg.message || msg, msg.stack);\n }\n\n if (!state.options.partial)\n throw err;\n\n if (!inherited)\n state.errors.push(err);\n\n return err;\n};\n\nReporter.prototype.wrapResult = function wrapResult(result) {\n var state = this._reporterState;\n if (!state.options.partial)\n return result;\n\n return {\n result: this.isError(result) ? null : result,\n errors: state.errors\n };\n};\n\nfunction ReporterError(path, msg) {\n this.path = path;\n this.rethrow(msg);\n};\ninherits(ReporterError, Error);\n\nReporterError.prototype.rethrow = function rethrow(msg) {\n this.message = msg + ' at: ' + (this.path || '(shallow)');\n if (Error.captureStackTrace)\n Error.captureStackTrace(this, ReporterError);\n\n if (!this.stack) {\n try {\n // IE only adds stack when thrown\n throw new Error(this.message);\n } catch (e) {\n this.stack = e.stack;\n }\n }\n return this;\n};\n","var constants = require('../constants');\n\nexports.tagClass = {\n 0: 'universal',\n 1: 'application',\n 2: 'context',\n 3: 'private'\n};\nexports.tagClassByName = constants._reverse(exports.tagClass);\n\nexports.tag = {\n 0x00: 'end',\n 0x01: 'bool',\n 0x02: 'int',\n 0x03: 'bitstr',\n 0x04: 'octstr',\n 0x05: 'null_',\n 0x06: 'objid',\n 0x07: 'objDesc',\n 0x08: 'external',\n 0x09: 'real',\n 0x0a: 'enum',\n 0x0b: 'embed',\n 0x0c: 'utf8str',\n 0x0d: 'relativeOid',\n 0x10: 'seq',\n 0x11: 'set',\n 0x12: 'numstr',\n 0x13: 'printstr',\n 0x14: 't61str',\n 0x15: 'videostr',\n 0x16: 'ia5str',\n 0x17: 'utctime',\n 0x18: 'gentime',\n 0x19: 'graphstr',\n 0x1a: 'iso646str',\n 0x1b: 'genstr',\n 0x1c: 'unistr',\n 0x1d: 'charstr',\n 0x1e: 'bmpstr'\n};\nexports.tagByName = constants._reverse(exports.tag);\n","var constants = exports;\n\n// Helper\nconstants._reverse = function reverse(map) {\n var res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n var value = map[key];\n res[value] = key;\n });\n\n return res;\n};\n\nconstants.der = require('./der');\n","var inherits = require('inherits');\n\nvar asn1 = require('../../asn1');\nvar base = asn1.base;\nvar bignum = asn1.bignum;\n\n// Import DER constants\nvar der = asn1.constants.der;\n\nfunction DERDecoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n};\nmodule.exports = DERDecoder;\n\nDERDecoder.prototype.decode = function decode(data, options) {\n if (!(data instanceof base.DecoderBuffer))\n data = new base.DecoderBuffer(data, options);\n\n return this.tree._decode(data, options);\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n base.Node.call(this, 'der', parent);\n}\ninherits(DERNode, base.Node);\n\nDERNode.prototype._peekTag = function peekTag(buffer, tag, any) {\n if (buffer.isEmpty())\n return false;\n\n var state = buffer.save();\n var decodedTag = derDecodeTag(buffer, 'Failed to peek tag: \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n buffer.restore(state);\n\n return decodedTag.tag === tag || decodedTag.tagStr === tag ||\n (decodedTag.tagStr + 'of') === tag || any;\n};\n\nDERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) {\n var decodedTag = derDecodeTag(buffer,\n 'Failed to decode tag of \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n var len = derDecodeLen(buffer,\n decodedTag.primitive,\n 'Failed to get length of \"' + tag + '\"');\n\n // Failure\n if (buffer.isError(len))\n return len;\n\n if (!any &&\n decodedTag.tag !== tag &&\n decodedTag.tagStr !== tag &&\n decodedTag.tagStr + 'of' !== tag) {\n return buffer.error('Failed to match tag: \"' + tag + '\"');\n }\n\n if (decodedTag.primitive || len !== null)\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n\n // Indefinite length... find END tag\n var state = buffer.save();\n var res = this._skipUntilEnd(\n buffer,\n 'Failed to skip indefinite length body: \"' + this.tag + '\"');\n if (buffer.isError(res))\n return res;\n\n len = buffer.offset - state.offset;\n buffer.restore(state);\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n};\n\nDERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) {\n while (true) {\n var tag = derDecodeTag(buffer, fail);\n if (buffer.isError(tag))\n return tag;\n var len = derDecodeLen(buffer, tag.primitive, fail);\n if (buffer.isError(len))\n return len;\n\n var res;\n if (tag.primitive || len !== null)\n res = buffer.skip(len)\n else\n res = this._skipUntilEnd(buffer, fail);\n\n // Failure\n if (buffer.isError(res))\n return res;\n\n if (tag.tagStr === 'end')\n break;\n }\n};\n\nDERNode.prototype._decodeList = function decodeList(buffer, tag, decoder,\n options) {\n var result = [];\n while (!buffer.isEmpty()) {\n var possibleEnd = this._peekTag(buffer, 'end');\n if (buffer.isError(possibleEnd))\n return possibleEnd;\n\n var res = decoder.decode(buffer, 'der', options);\n if (buffer.isError(res) && possibleEnd)\n break;\n result.push(res);\n }\n return result;\n};\n\nDERNode.prototype._decodeStr = function decodeStr(buffer, tag) {\n if (tag === 'bitstr') {\n var unused = buffer.readUInt8();\n if (buffer.isError(unused))\n return unused;\n return { unused: unused, data: buffer.raw() };\n } else if (tag === 'bmpstr') {\n var raw = buffer.raw();\n if (raw.length % 2 === 1)\n return buffer.error('Decoding of string type: bmpstr length mismatch');\n\n var str = '';\n for (var i = 0; i < raw.length / 2; i++) {\n str += String.fromCharCode(raw.readUInt16BE(i * 2));\n }\n return str;\n } else if (tag === 'numstr') {\n var numstr = buffer.raw().toString('ascii');\n if (!this._isNumstr(numstr)) {\n return buffer.error('Decoding of string type: ' +\n 'numstr unsupported characters');\n }\n return numstr;\n } else if (tag === 'octstr') {\n return buffer.raw();\n } else if (tag === 'objDesc') {\n return buffer.raw();\n } else if (tag === 'printstr') {\n var printstr = buffer.raw().toString('ascii');\n if (!this._isPrintstr(printstr)) {\n return buffer.error('Decoding of string type: ' +\n 'printstr unsupported characters');\n }\n return printstr;\n } else if (/str$/.test(tag)) {\n return buffer.raw().toString();\n } else {\n return buffer.error('Decoding of string type: ' + tag + ' unsupported');\n }\n};\n\nDERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) {\n var result;\n var identifiers = [];\n var ident = 0;\n while (!buffer.isEmpty()) {\n var subident = buffer.readUInt8();\n ident <<= 7;\n ident |= subident & 0x7f;\n if ((subident & 0x80) === 0) {\n identifiers.push(ident);\n ident = 0;\n }\n }\n if (subident & 0x80)\n identifiers.push(ident);\n\n var first = (identifiers[0] / 40) | 0;\n var second = identifiers[0] % 40;\n\n if (relative)\n result = identifiers;\n else\n result = [first, second].concat(identifiers.slice(1));\n\n if (values) {\n var tmp = values[result.join(' ')];\n if (tmp === undefined)\n tmp = values[result.join('.')];\n if (tmp !== undefined)\n result = tmp;\n }\n\n return result;\n};\n\nDERNode.prototype._decodeTime = function decodeTime(buffer, tag) {\n var str = buffer.raw().toString();\n if (tag === 'gentime') {\n var year = str.slice(0, 4) | 0;\n var mon = str.slice(4, 6) | 0;\n var day = str.slice(6, 8) | 0;\n var hour = str.slice(8, 10) | 0;\n var min = str.slice(10, 12) | 0;\n var sec = str.slice(12, 14) | 0;\n } else if (tag === 'utctime') {\n var year = str.slice(0, 2) | 0;\n var mon = str.slice(2, 4) | 0;\n var day = str.slice(4, 6) | 0;\n var hour = str.slice(6, 8) | 0;\n var min = str.slice(8, 10) | 0;\n var sec = str.slice(10, 12) | 0;\n if (year < 70)\n year = 2000 + year;\n else\n year = 1900 + year;\n } else {\n return buffer.error('Decoding ' + tag + ' time is not supported yet');\n }\n\n return Date.UTC(year, mon - 1, day, hour, min, sec, 0);\n};\n\nDERNode.prototype._decodeNull = function decodeNull(buffer) {\n return null;\n};\n\nDERNode.prototype._decodeBool = function decodeBool(buffer) {\n var res = buffer.readUInt8();\n if (buffer.isError(res))\n return res;\n else\n return res !== 0;\n};\n\nDERNode.prototype._decodeInt = function decodeInt(buffer, values) {\n // Bigint, return as it is (assume big endian)\n var raw = buffer.raw();\n var res = new bignum(raw);\n\n if (values)\n res = values[res.toString(10)] || res;\n\n return res;\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getDecoder('der').tree;\n};\n\n// Utility methods\n\nfunction derDecodeTag(buf, fail) {\n var tag = buf.readUInt8(fail);\n if (buf.isError(tag))\n return tag;\n\n var cls = der.tagClass[tag >> 6];\n var primitive = (tag & 0x20) === 0;\n\n // Multi-octet tag - load\n if ((tag & 0x1f) === 0x1f) {\n var oct = tag;\n tag = 0;\n while ((oct & 0x80) === 0x80) {\n oct = buf.readUInt8(fail);\n if (buf.isError(oct))\n return oct;\n\n tag <<= 7;\n tag |= oct & 0x7f;\n }\n } else {\n tag &= 0x1f;\n }\n var tagStr = der.tag[tag];\n\n return {\n cls: cls,\n primitive: primitive,\n tag: tag,\n tagStr: tagStr\n };\n}\n\nfunction derDecodeLen(buf, primitive, fail) {\n var len = buf.readUInt8(fail);\n if (buf.isError(len))\n return len;\n\n // Indefinite form\n if (!primitive && len === 0x80)\n return null;\n\n // Definite form\n if ((len & 0x80) === 0) {\n // Short form\n return len;\n }\n\n // Long form\n var num = len & 0x7f;\n if (num > 4)\n return buf.error('length octect is too long');\n\n len = 0;\n for (var i = 0; i < num; i++) {\n len <<= 8;\n var j = buf.readUInt8(fail);\n if (buf.isError(j))\n return j;\n len |= j;\n }\n\n return len;\n}\n","var decoders = exports;\n\ndecoders.der = require('./der');\ndecoders.pem = require('./pem');\n","var inherits = require('inherits');\nvar Buffer = require('buffer').Buffer;\n\nvar DERDecoder = require('./der');\n\nfunction PEMDecoder(entity) {\n DERDecoder.call(this, entity);\n this.enc = 'pem';\n};\ninherits(PEMDecoder, DERDecoder);\nmodule.exports = PEMDecoder;\n\nPEMDecoder.prototype.decode = function decode(data, options) {\n var lines = data.toString().split(/[\\r\\n]+/g);\n\n var label = options.label.toUpperCase();\n\n var re = /^-----(BEGIN|END) ([^-]+)-----$/;\n var start = -1;\n var end = -1;\n for (var i = 0; i < lines.length; i++) {\n var match = lines[i].match(re);\n if (match === null)\n continue;\n\n if (match[2] !== label)\n continue;\n\n if (start === -1) {\n if (match[1] !== 'BEGIN')\n break;\n start = i;\n } else {\n if (match[1] !== 'END')\n break;\n end = i;\n break;\n }\n }\n if (start === -1 || end === -1)\n throw new Error('PEM section not found for: ' + label);\n\n var base64 = lines.slice(start + 1, end).join('');\n // Remove excessive symbols\n base64.replace(/[^a-z0-9\\+\\/=]+/gi, '');\n\n var input = new Buffer(base64, 'base64');\n return DERDecoder.prototype.decode.call(this, input, options);\n};\n","var inherits = require('inherits');\nvar Buffer = require('buffer').Buffer;\n\nvar asn1 = require('../../asn1');\nvar base = asn1.base;\n\n// Import DER constants\nvar der = asn1.constants.der;\n\nfunction DEREncoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n};\nmodule.exports = DEREncoder;\n\nDEREncoder.prototype.encode = function encode(data, reporter) {\n return this.tree._encode(data, reporter).join();\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n base.Node.call(this, 'der', parent);\n}\ninherits(DERNode, base.Node);\n\nDERNode.prototype._encodeComposite = function encodeComposite(tag,\n primitive,\n cls,\n content) {\n var encodedTag = encodeTag(tag, primitive, cls, this.reporter);\n\n // Short form\n if (content.length < 0x80) {\n var header = new Buffer(2);\n header[0] = encodedTag;\n header[1] = content.length;\n return this._createEncoderBuffer([ header, content ]);\n }\n\n // Long form\n // Count octets required to store length\n var lenOctets = 1;\n for (var i = content.length; i >= 0x100; i >>= 8)\n lenOctets++;\n\n var header = new Buffer(1 + 1 + lenOctets);\n header[0] = encodedTag;\n header[1] = 0x80 | lenOctets;\n\n for (var i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8)\n header[i] = j & 0xff;\n\n return this._createEncoderBuffer([ header, content ]);\n};\n\nDERNode.prototype._encodeStr = function encodeStr(str, tag) {\n if (tag === 'bitstr') {\n return this._createEncoderBuffer([ str.unused | 0, str.data ]);\n } else if (tag === 'bmpstr') {\n var buf = new Buffer(str.length * 2);\n for (var i = 0; i < str.length; i++) {\n buf.writeUInt16BE(str.charCodeAt(i), i * 2);\n }\n return this._createEncoderBuffer(buf);\n } else if (tag === 'numstr') {\n if (!this._isNumstr(str)) {\n return this.reporter.error('Encoding of string type: numstr supports ' +\n 'only digits and space');\n }\n return this._createEncoderBuffer(str);\n } else if (tag === 'printstr') {\n if (!this._isPrintstr(str)) {\n return this.reporter.error('Encoding of string type: printstr supports ' +\n 'only latin upper and lower case letters, ' +\n 'digits, space, apostrophe, left and rigth ' +\n 'parenthesis, plus sign, comma, hyphen, ' +\n 'dot, slash, colon, equal sign, ' +\n 'question mark');\n }\n return this._createEncoderBuffer(str);\n } else if (/str$/.test(tag)) {\n return this._createEncoderBuffer(str);\n } else if (tag === 'objDesc') {\n return this._createEncoderBuffer(str);\n } else {\n return this.reporter.error('Encoding of string type: ' + tag +\n ' unsupported');\n }\n};\n\nDERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) {\n if (typeof id === 'string') {\n if (!values)\n return this.reporter.error('string objid given, but no values map found');\n if (!values.hasOwnProperty(id))\n return this.reporter.error('objid not found in values map');\n id = values[id].split(/[\\s\\.]+/g);\n for (var i = 0; i < id.length; i++)\n id[i] |= 0;\n } else if (Array.isArray(id)) {\n id = id.slice();\n for (var i = 0; i < id.length; i++)\n id[i] |= 0;\n }\n\n if (!Array.isArray(id)) {\n return this.reporter.error('objid() should be either array or string, ' +\n 'got: ' + JSON.stringify(id));\n }\n\n if (!relative) {\n if (id[1] >= 40)\n return this.reporter.error('Second objid identifier OOB');\n id.splice(0, 2, id[0] * 40 + id[1]);\n }\n\n // Count number of octets\n var size = 0;\n for (var i = 0; i < id.length; i++) {\n var ident = id[i];\n for (size++; ident >= 0x80; ident >>= 7)\n size++;\n }\n\n var objid = new Buffer(size);\n var offset = objid.length - 1;\n for (var i = id.length - 1; i >= 0; i--) {\n var ident = id[i];\n objid[offset--] = ident & 0x7f;\n while ((ident >>= 7) > 0)\n objid[offset--] = 0x80 | (ident & 0x7f);\n }\n\n return this._createEncoderBuffer(objid);\n};\n\nfunction two(num) {\n if (num < 10)\n return '0' + num;\n else\n return num;\n}\n\nDERNode.prototype._encodeTime = function encodeTime(time, tag) {\n var str;\n var date = new Date(time);\n\n if (tag === 'gentime') {\n str = [\n two(date.getFullYear()),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else if (tag === 'utctime') {\n str = [\n two(date.getFullYear() % 100),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else {\n this.reporter.error('Encoding ' + tag + ' time is not supported yet');\n }\n\n return this._encodeStr(str, 'octstr');\n};\n\nDERNode.prototype._encodeNull = function encodeNull() {\n return this._createEncoderBuffer('');\n};\n\nDERNode.prototype._encodeInt = function encodeInt(num, values) {\n if (typeof num === 'string') {\n if (!values)\n return this.reporter.error('String int or enum given, but no values map');\n if (!values.hasOwnProperty(num)) {\n return this.reporter.error('Values map doesn\\'t contain: ' +\n JSON.stringify(num));\n }\n num = values[num];\n }\n\n // Bignum, assume big endian\n if (typeof num !== 'number' && !Buffer.isBuffer(num)) {\n var numArray = num.toArray();\n if (!num.sign && numArray[0] & 0x80) {\n numArray.unshift(0);\n }\n num = new Buffer(numArray);\n }\n\n if (Buffer.isBuffer(num)) {\n var size = num.length;\n if (num.length === 0)\n size++;\n\n var out = new Buffer(size);\n num.copy(out);\n if (num.length === 0)\n out[0] = 0\n return this._createEncoderBuffer(out);\n }\n\n if (num < 0x80)\n return this._createEncoderBuffer(num);\n\n if (num < 0x100)\n return this._createEncoderBuffer([0, num]);\n\n var size = 1;\n for (var i = num; i >= 0x100; i >>= 8)\n size++;\n\n var out = new Array(size);\n for (var i = out.length - 1; i >= 0; i--) {\n out[i] = num & 0xff;\n num >>= 8;\n }\n if(out[0] & 0x80) {\n out.unshift(0);\n }\n\n return this._createEncoderBuffer(new Buffer(out));\n};\n\nDERNode.prototype._encodeBool = function encodeBool(value) {\n return this._createEncoderBuffer(value ? 0xff : 0);\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getEncoder('der').tree;\n};\n\nDERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) {\n var state = this._baseState;\n var i;\n if (state['default'] === null)\n return false;\n\n var data = dataBuffer.join();\n if (state.defaultBuffer === undefined)\n state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join();\n\n if (data.length !== state.defaultBuffer.length)\n return false;\n\n for (i=0; i < data.length; i++)\n if (data[i] !== state.defaultBuffer[i])\n return false;\n\n return true;\n};\n\n// Utility methods\n\nfunction encodeTag(tag, primitive, cls, reporter) {\n var res;\n\n if (tag === 'seqof')\n tag = 'seq';\n else if (tag === 'setof')\n tag = 'set';\n\n if (der.tagByName.hasOwnProperty(tag))\n res = der.tagByName[tag];\n else if (typeof tag === 'number' && (tag | 0) === tag)\n res = tag;\n else\n return reporter.error('Unknown tag: ' + tag);\n\n if (res >= 0x1f)\n return reporter.error('Multi-octet tag encoding unsupported');\n\n if (!primitive)\n res |= 0x20;\n\n res |= (der.tagClassByName[cls || 'universal'] << 6);\n\n return res;\n}\n","var encoders = exports;\n\nencoders.der = require('./der');\nencoders.pem = require('./pem');\n","var inherits = require('inherits');\n\nvar DEREncoder = require('./der');\n\nfunction PEMEncoder(entity) {\n DEREncoder.call(this, entity);\n this.enc = 'pem';\n};\ninherits(PEMEncoder, DEREncoder);\nmodule.exports = PEMEncoder;\n\nPEMEncoder.prototype.encode = function encode(data, options) {\n var buf = DEREncoder.prototype.encode.call(this, data);\n\n var p = buf.toString('base64');\n var out = [ '-----BEGIN ' + options.label + '-----' ];\n for (var i = 0; i < p.length; i += 64)\n out.push(p.slice(i, i + 64));\n out.push('-----END ' + options.label + '-----');\n return out.join('\\n');\n};\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var r;\n\nmodule.exports = function rand(len) {\n if (!r)\n r = new Rand(null);\n\n return r.generate(len);\n};\n\nfunction Rand(rand) {\n this.rand = rand;\n}\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n return this._rand(len);\n};\n\n// Emulate crypto API using randy\nRand.prototype._rand = function _rand(n) {\n if (this.rand.getBytes)\n return this.rand.getBytes(n);\n\n var res = new Uint8Array(n);\n for (var i = 0; i < res.length; i++)\n res[i] = this.rand.getByte();\n return res;\n};\n\nif (typeof self === 'object') {\n if (self.crypto && self.crypto.getRandomValues) {\n // Modern browsers\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.crypto.getRandomValues(arr);\n return arr;\n };\n } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n // IE\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.msCrypto.getRandomValues(arr);\n return arr;\n };\n\n // Safari's WebWorkers do not have `crypto`\n } else if (typeof window === 'object') {\n // Old junk\n Rand.prototype._rand = function() {\n throw new Error('Not implemented yet');\n };\n }\n} else {\n // Node.js or Web worker with no crypto support\n try {\n var crypto = require('crypto');\n if (typeof crypto.randomBytes !== 'function')\n throw new Error('Not supported');\n\n Rand.prototype._rand = function _rand(n) {\n return crypto.randomBytes(n);\n };\n } catch (e) {\n }\n}\n","// based on the aes implimentation in triple sec\n// https://github.com/keybase/triplesec\n// which is in turn based on the one from crypto-js\n// https://code.google.com/p/crypto-js/\n\nvar Buffer = require('safe-buffer').Buffer\n\nfunction asUInt32Array (buf) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n\n var len = (buf.length / 4) | 0\n var out = new Array(len)\n\n for (var i = 0; i < len; i++) {\n out[i] = buf.readUInt32BE(i * 4)\n }\n\n return out\n}\n\nfunction scrubVec (v) {\n for (var i = 0; i < v.length; v++) {\n v[i] = 0\n }\n}\n\nfunction cryptBlock (M, keySchedule, SUB_MIX, SBOX, nRounds) {\n var SUB_MIX0 = SUB_MIX[0]\n var SUB_MIX1 = SUB_MIX[1]\n var SUB_MIX2 = SUB_MIX[2]\n var SUB_MIX3 = SUB_MIX[3]\n\n var s0 = M[0] ^ keySchedule[0]\n var s1 = M[1] ^ keySchedule[1]\n var s2 = M[2] ^ keySchedule[2]\n var s3 = M[3] ^ keySchedule[3]\n var t0, t1, t2, t3\n var ksRow = 4\n\n for (var round = 1; round < nRounds; round++) {\n t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[(s1 >>> 16) & 0xff] ^ SUB_MIX2[(s2 >>> 8) & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++]\n t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[(s2 >>> 16) & 0xff] ^ SUB_MIX2[(s3 >>> 8) & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++]\n t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[(s3 >>> 16) & 0xff] ^ SUB_MIX2[(s0 >>> 8) & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++]\n t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[(s0 >>> 16) & 0xff] ^ SUB_MIX2[(s1 >>> 8) & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++]\n s0 = t0\n s1 = t1\n s2 = t2\n s3 = t3\n }\n\n t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]\n t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]\n t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]\n t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]\n t0 = t0 >>> 0\n t1 = t1 >>> 0\n t2 = t2 >>> 0\n t3 = t3 >>> 0\n\n return [t0, t1, t2, t3]\n}\n\n// AES constants\nvar RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]\nvar G = (function () {\n // Compute double table\n var d = new Array(256)\n for (var j = 0; j < 256; j++) {\n if (j < 128) {\n d[j] = j << 1\n } else {\n d[j] = (j << 1) ^ 0x11b\n }\n }\n\n var SBOX = []\n var INV_SBOX = []\n var SUB_MIX = [[], [], [], []]\n var INV_SUB_MIX = [[], [], [], []]\n\n // Walk GF(2^8)\n var x = 0\n var xi = 0\n for (var i = 0; i < 256; ++i) {\n // Compute sbox\n var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4)\n sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63\n SBOX[x] = sx\n INV_SBOX[sx] = x\n\n // Compute multiplication\n var x2 = d[x]\n var x4 = d[x2]\n var x8 = d[x4]\n\n // Compute sub bytes, mix columns tables\n var t = (d[sx] * 0x101) ^ (sx * 0x1010100)\n SUB_MIX[0][x] = (t << 24) | (t >>> 8)\n SUB_MIX[1][x] = (t << 16) | (t >>> 16)\n SUB_MIX[2][x] = (t << 8) | (t >>> 24)\n SUB_MIX[3][x] = t\n\n // Compute inv sub bytes, inv mix columns tables\n t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100)\n INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8)\n INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16)\n INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24)\n INV_SUB_MIX[3][sx] = t\n\n if (x === 0) {\n x = xi = 1\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]]\n xi ^= d[d[xi]]\n }\n }\n\n return {\n SBOX: SBOX,\n INV_SBOX: INV_SBOX,\n SUB_MIX: SUB_MIX,\n INV_SUB_MIX: INV_SUB_MIX\n }\n})()\n\nfunction AES (key) {\n this._key = asUInt32Array(key)\n this._reset()\n}\n\nAES.blockSize = 4 * 4\nAES.keySize = 256 / 8\nAES.prototype.blockSize = AES.blockSize\nAES.prototype.keySize = AES.keySize\nAES.prototype._reset = function () {\n var keyWords = this._key\n var keySize = keyWords.length\n var nRounds = keySize + 6\n var ksRows = (nRounds + 1) * 4\n\n var keySchedule = []\n for (var k = 0; k < keySize; k++) {\n keySchedule[k] = keyWords[k]\n }\n\n for (k = keySize; k < ksRows; k++) {\n var t = keySchedule[k - 1]\n\n if (k % keySize === 0) {\n t = (t << 8) | (t >>> 24)\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n\n t ^= RCON[(k / keySize) | 0] << 24\n } else if (keySize > 6 && k % keySize === 4) {\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n }\n\n keySchedule[k] = keySchedule[k - keySize] ^ t\n }\n\n var invKeySchedule = []\n for (var ik = 0; ik < ksRows; ik++) {\n var ksR = ksRows - ik\n var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)]\n\n if (ik < 4 || ksR <= 4) {\n invKeySchedule[ik] = tt\n } else {\n invKeySchedule[ik] =\n G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^\n G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 0xff]] ^\n G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 0xff]] ^\n G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]]\n }\n }\n\n this._nRounds = nRounds\n this._keySchedule = keySchedule\n this._invKeySchedule = invKeySchedule\n}\n\nAES.prototype.encryptBlockRaw = function (M) {\n M = asUInt32Array(M)\n return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds)\n}\n\nAES.prototype.encryptBlock = function (M) {\n var out = this.encryptBlockRaw(M)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[1], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[3], 12)\n return buf\n}\n\nAES.prototype.decryptBlock = function (M) {\n M = asUInt32Array(M)\n\n // swap\n var m1 = M[1]\n M[1] = M[3]\n M[3] = m1\n\n var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[3], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[1], 12)\n return buf\n}\n\nAES.prototype.scrub = function () {\n scrubVec(this._keySchedule)\n scrubVec(this._invKeySchedule)\n scrubVec(this._key)\n}\n\nmodule.exports.AES = AES\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\nvar GHASH = require('./ghash')\nvar xor = require('buffer-xor')\nvar incr32 = require('./incr32')\n\nfunction xorTest (a, b) {\n var out = 0\n if (a.length !== b.length) out++\n\n var len = Math.min(a.length, b.length)\n for (var i = 0; i < len; ++i) {\n out += (a[i] ^ b[i])\n }\n\n return out\n}\n\nfunction calcIv (self, iv, ck) {\n if (iv.length === 12) {\n self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])])\n return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])])\n }\n var ghash = new GHASH(ck)\n var len = iv.length\n var toPad = len % 16\n ghash.update(iv)\n if (toPad) {\n toPad = 16 - toPad\n ghash.update(Buffer.alloc(toPad, 0))\n }\n ghash.update(Buffer.alloc(8, 0))\n var ivBits = len * 8\n var tail = Buffer.alloc(8)\n tail.writeUIntBE(ivBits, 0, 8)\n ghash.update(tail)\n self._finID = ghash.state\n var out = Buffer.from(self._finID)\n incr32(out)\n return out\n}\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n var h = Buffer.alloc(4, 0)\n\n this._cipher = new aes.AES(key)\n var ck = this._cipher.encryptBlock(h)\n this._ghash = new GHASH(ck)\n iv = calcIv(this, iv, ck)\n\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._alen = 0\n this._len = 0\n this._mode = mode\n\n this._authTag = null\n this._called = false\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n if (!this._called && this._alen) {\n var rump = 16 - (this._alen % 16)\n if (rump < 16) {\n rump = Buffer.alloc(rump, 0)\n this._ghash.update(rump)\n }\n }\n\n this._called = true\n var out = this._mode.encrypt(this, chunk)\n if (this._decrypt) {\n this._ghash.update(chunk)\n } else {\n this._ghash.update(out)\n }\n this._len += chunk.length\n return out\n}\n\nStreamCipher.prototype._final = function () {\n if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data')\n\n var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID))\n if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data')\n\n this._authTag = tag\n this._cipher.scrub()\n}\n\nStreamCipher.prototype.getAuthTag = function getAuthTag () {\n if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state')\n\n return this._authTag\n}\n\nStreamCipher.prototype.setAuthTag = function setAuthTag (tag) {\n if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state')\n\n this._authTag = tag\n}\n\nStreamCipher.prototype.setAAD = function setAAD (buf) {\n if (this._called) throw new Error('Attempting to set AAD in unsupported state')\n\n this._ghash.update(buf)\n this._alen += buf.length\n}\n\nmodule.exports = StreamCipher\n","var ciphers = require('./encrypter')\nvar deciphers = require('./decrypter')\nvar modes = require('./modes/list.json')\n\nfunction getCiphers () {\n return Object.keys(modes)\n}\n\nexports.createCipher = exports.Cipher = ciphers.createCipher\nexports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv\nexports.createDecipher = exports.Decipher = deciphers.createDecipher\nexports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","var AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar MODES = require('./modes')\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Decipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._last = void 0\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Decipher, Transform)\n\nDecipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n while ((chunk = this._cache.get(this._autopadding))) {\n thing = this._mode.decrypt(this, chunk)\n out.push(thing)\n }\n return Buffer.concat(out)\n}\n\nDecipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n return unpad(this._mode.decrypt(this, chunk))\n } else if (chunk) {\n throw new Error('data not multiple of block length')\n }\n}\n\nDecipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function (autoPadding) {\n var out\n if (autoPadding) {\n if (this.cache.length > 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n } else {\n if (this.cache.length >= 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n }\n\n return null\n}\n\nSplitter.prototype.flush = function () {\n if (this.cache.length) return this.cache\n}\n\nfunction unpad (last) {\n var padded = last[15]\n if (padded < 1 || padded > 16) {\n throw new Error('unable to decrypt data')\n }\n var i = -1\n while (++i < padded) {\n if (last[(i + (16 - padded))] !== padded) {\n throw new Error('unable to decrypt data')\n }\n }\n if (padded === 16) return\n\n return last.slice(0, 16 - padded)\n}\n\nfunction createDecipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv, true)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv, true)\n }\n\n return new Decipher(config.module, password, iv)\n}\n\nfunction createDecipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createDecipher = createDecipher\nexports.createDecipheriv = createDecipheriv\n","var MODES = require('./modes')\nvar AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Cipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Cipher, Transform)\n\nCipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n\n while ((chunk = this._cache.get())) {\n thing = this._mode.encrypt(this, chunk)\n out.push(thing)\n }\n\n return Buffer.concat(out)\n}\n\nvar PADDING = Buffer.alloc(16, 0x10)\n\nCipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n chunk = this._mode.encrypt(this, chunk)\n this._cipher.scrub()\n return chunk\n }\n\n if (!chunk.equals(PADDING)) {\n this._cipher.scrub()\n throw new Error('data not multiple of block length')\n }\n}\n\nCipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function () {\n if (this.cache.length > 15) {\n var out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n return null\n}\n\nSplitter.prototype.flush = function () {\n var len = 16 - this.cache.length\n var padBuff = Buffer.allocUnsafe(len)\n\n var i = -1\n while (++i < len) {\n padBuff.writeUInt8(len, i)\n }\n\n return Buffer.concat([this.cache, padBuff])\n}\n\nfunction createCipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv)\n }\n\n return new Cipher(config.module, password, iv)\n}\n\nfunction createCipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createCipheriv = createCipheriv\nexports.createCipher = createCipher\n","var Buffer = require('safe-buffer').Buffer\nvar ZEROES = Buffer.alloc(16, 0)\n\nfunction toArray (buf) {\n return [\n buf.readUInt32BE(0),\n buf.readUInt32BE(4),\n buf.readUInt32BE(8),\n buf.readUInt32BE(12)\n ]\n}\n\nfunction fromArray (out) {\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0] >>> 0, 0)\n buf.writeUInt32BE(out[1] >>> 0, 4)\n buf.writeUInt32BE(out[2] >>> 0, 8)\n buf.writeUInt32BE(out[3] >>> 0, 12)\n return buf\n}\n\nfunction GHASH (key) {\n this.h = key\n this.state = Buffer.alloc(16, 0)\n this.cache = Buffer.allocUnsafe(0)\n}\n\n// from http://bitwiseshiftleft.github.io/sjcl/doc/symbols/src/core_gcm.js.html\n// by Juho Vähä-Herttua\nGHASH.prototype.ghash = function (block) {\n var i = -1\n while (++i < block.length) {\n this.state[i] ^= block[i]\n }\n this._multiply()\n}\n\nGHASH.prototype._multiply = function () {\n var Vi = toArray(this.h)\n var Zi = [0, 0, 0, 0]\n var j, xi, lsbVi\n var i = -1\n while (++i < 128) {\n xi = (this.state[~~(i / 8)] & (1 << (7 - (i % 8)))) !== 0\n if (xi) {\n // Z_i+1 = Z_i ^ V_i\n Zi[0] ^= Vi[0]\n Zi[1] ^= Vi[1]\n Zi[2] ^= Vi[2]\n Zi[3] ^= Vi[3]\n }\n\n // Store the value of LSB(V_i)\n lsbVi = (Vi[3] & 1) !== 0\n\n // V_i+1 = V_i >> 1\n for (j = 3; j > 0; j--) {\n Vi[j] = (Vi[j] >>> 1) | ((Vi[j - 1] & 1) << 31)\n }\n Vi[0] = Vi[0] >>> 1\n\n // If LSB(V_i) is 1, V_i+1 = (V_i >> 1) ^ R\n if (lsbVi) {\n Vi[0] = Vi[0] ^ (0xe1 << 24)\n }\n }\n this.state = fromArray(Zi)\n}\n\nGHASH.prototype.update = function (buf) {\n this.cache = Buffer.concat([this.cache, buf])\n var chunk\n while (this.cache.length >= 16) {\n chunk = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n this.ghash(chunk)\n }\n}\n\nGHASH.prototype.final = function (abl, bl) {\n if (this.cache.length) {\n this.ghash(Buffer.concat([this.cache, ZEROES], 16))\n }\n\n this.ghash(fromArray([0, abl, 0, bl]))\n return this.state\n}\n\nmodule.exports = GHASH\n","function incr32 (iv) {\n var len = iv.length\n var item\n while (len--) {\n item = iv.readUInt8(len)\n if (item === 255) {\n iv.writeUInt8(0, len)\n } else {\n item++\n iv.writeUInt8(item, len)\n break\n }\n }\n}\nmodule.exports = incr32\n","var xor = require('buffer-xor')\n\nexports.encrypt = function (self, block) {\n var data = xor(block, self._prev)\n\n self._prev = self._cipher.encryptBlock(data)\n return self._prev\n}\n\nexports.decrypt = function (self, block) {\n var pad = self._prev\n\n self._prev = block\n var out = self._cipher.decryptBlock(block)\n\n return xor(out, pad)\n}\n","var Buffer = require('safe-buffer').Buffer\nvar xor = require('buffer-xor')\n\nfunction encryptStart (self, data, decrypt) {\n var len = data.length\n var out = xor(data, self._cache)\n self._cache = self._cache.slice(len)\n self._prev = Buffer.concat([self._prev, decrypt ? data : out])\n return out\n}\n\nexports.encrypt = function (self, data, decrypt) {\n var out = Buffer.allocUnsafe(0)\n var len\n\n while (data.length) {\n if (self._cache.length === 0) {\n self._cache = self._cipher.encryptBlock(self._prev)\n self._prev = Buffer.allocUnsafe(0)\n }\n\n if (self._cache.length <= data.length) {\n len = self._cache.length\n out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)])\n data = data.slice(len)\n } else {\n out = Buffer.concat([out, encryptStart(self, data, decrypt)])\n break\n }\n }\n\n return out\n}\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad\n var i = -1\n var len = 8\n var out = 0\n var bit, value\n while (++i < len) {\n pad = self._cipher.encryptBlock(self._prev)\n bit = (byteParam & (1 << (7 - i))) ? 0x80 : 0\n value = pad[0] ^ bit\n out += ((value & 0x80) >> (i % 8))\n self._prev = shiftIn(self._prev, decrypt ? bit : value)\n }\n return out\n}\n\nfunction shiftIn (buffer, value) {\n var len = buffer.length\n var i = -1\n var out = Buffer.allocUnsafe(buffer.length)\n buffer = Buffer.concat([buffer, Buffer.from([value])])\n\n while (++i < len) {\n out[i] = buffer[i] << 1 | buffer[i + 1] >> (7)\n }\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad = self._cipher.encryptBlock(self._prev)\n var out = pad[0] ^ byteParam\n\n self._prev = Buffer.concat([\n self._prev.slice(1),\n Buffer.from([decrypt ? byteParam : out])\n ])\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","var xor = require('buffer-xor')\nvar Buffer = require('safe-buffer').Buffer\nvar incr32 = require('../incr32')\n\nfunction getBlock (self) {\n var out = self._cipher.encryptBlockRaw(self._prev)\n incr32(self._prev)\n return out\n}\n\nvar blockSize = 16\nexports.encrypt = function (self, chunk) {\n var chunkNum = Math.ceil(chunk.length / blockSize)\n var start = self._cache.length\n self._cache = Buffer.concat([\n self._cache,\n Buffer.allocUnsafe(chunkNum * blockSize)\n ])\n for (var i = 0; i < chunkNum; i++) {\n var out = getBlock(self)\n var offset = start + i * blockSize\n self._cache.writeUInt32BE(out[0], offset + 0)\n self._cache.writeUInt32BE(out[1], offset + 4)\n self._cache.writeUInt32BE(out[2], offset + 8)\n self._cache.writeUInt32BE(out[3], offset + 12)\n }\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","exports.encrypt = function (self, block) {\n return self._cipher.encryptBlock(block)\n}\n\nexports.decrypt = function (self, block) {\n return self._cipher.decryptBlock(block)\n}\n","var modeModules = {\n ECB: require('./ecb'),\n CBC: require('./cbc'),\n CFB: require('./cfb'),\n CFB8: require('./cfb8'),\n CFB1: require('./cfb1'),\n OFB: require('./ofb'),\n CTR: require('./ctr'),\n GCM: require('./ctr')\n}\n\nvar modes = require('./list.json')\n\nfor (var key in modes) {\n modes[key].module = modeModules[modes[key].mode]\n}\n\nmodule.exports = modes\n","var xor = require('buffer-xor')\n\nfunction getBlock (self) {\n self._prev = self._cipher.encryptBlock(self._prev)\n return self._prev\n}\n\nexports.encrypt = function (self, chunk) {\n while (self._cache.length < chunk.length) {\n self._cache = Buffer.concat([self._cache, getBlock(self)])\n }\n\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\n\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._mode = mode\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n return this._mode.encrypt(this, chunk, this._decrypt)\n}\n\nStreamCipher.prototype._final = function () {\n this._cipher.scrub()\n}\n\nmodule.exports = StreamCipher\n","var DES = require('browserify-des')\nvar aes = require('browserify-aes/browser')\nvar aesModes = require('browserify-aes/modes')\nvar desModes = require('browserify-des/modes')\nvar ebtk = require('evp_bytestokey')\n\nfunction createCipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createDecipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createCipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createCipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction createDecipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createDecipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite, decrypt: true })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction getCiphers () {\n return Object.keys(desModes).concat(aes.getCiphers())\n}\n\nexports.createCipher = exports.Cipher = createCipher\nexports.createCipheriv = exports.Cipheriv = createCipheriv\nexports.createDecipher = exports.Decipher = createDecipher\nexports.createDecipheriv = exports.Decipheriv = createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","var CipherBase = require('cipher-base')\nvar des = require('des.js')\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar modes = {\n 'des-ede3-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede3': des.EDE,\n 'des-ede-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede': des.EDE,\n 'des-cbc': des.CBC.instantiate(des.DES),\n 'des-ecb': des.DES\n}\nmodes.des = modes['des-cbc']\nmodes.des3 = modes['des-ede3-cbc']\nmodule.exports = DES\ninherits(DES, CipherBase)\nfunction DES (opts) {\n CipherBase.call(this)\n var modeName = opts.mode.toLowerCase()\n var mode = modes[modeName]\n var type\n if (opts.decrypt) {\n type = 'decrypt'\n } else {\n type = 'encrypt'\n }\n var key = opts.key\n if (!Buffer.isBuffer(key)) {\n key = Buffer.from(key)\n }\n if (modeName === 'des-ede' || modeName === 'des-ede-cbc') {\n key = Buffer.concat([key, key.slice(0, 8)])\n }\n var iv = opts.iv\n if (!Buffer.isBuffer(iv)) {\n iv = Buffer.from(iv)\n }\n this._des = mode.create({\n key: key,\n iv: iv,\n type: type\n })\n}\nDES.prototype._update = function (data) {\n return Buffer.from(this._des.update(data))\n}\nDES.prototype._final = function () {\n return Buffer.from(this._des.final())\n}\n","exports['des-ecb'] = {\n key: 8,\n iv: 0\n}\nexports['des-cbc'] = exports.des = {\n key: 8,\n iv: 8\n}\nexports['des-ede3-cbc'] = exports.des3 = {\n key: 24,\n iv: 8\n}\nexports['des-ede3'] = {\n key: 24,\n iv: 0\n}\nexports['des-ede-cbc'] = {\n key: 16,\n iv: 8\n}\nexports['des-ede'] = {\n key: 16,\n iv: 0\n}\n","var BN = require('bn.js')\nvar randomBytes = require('randombytes')\n\nfunction blind (priv) {\n var r = getr(priv)\n var blinder = r.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed()\n return { blinder: blinder, unblinder: r.invm(priv.modulus) }\n}\n\nfunction getr (priv) {\n var len = priv.modulus.byteLength()\n var r\n do {\n r = new BN(randomBytes(len))\n } while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2))\n return r\n}\n\nfunction crt (msg, priv) {\n var blinds = blind(priv)\n var len = priv.modulus.byteLength()\n var blinded = new BN(msg).mul(blinds.blinder).umod(priv.modulus)\n var c1 = blinded.toRed(BN.mont(priv.prime1))\n var c2 = blinded.toRed(BN.mont(priv.prime2))\n var qinv = priv.coefficient\n var p = priv.prime1\n var q = priv.prime2\n var m1 = c1.redPow(priv.exponent1).fromRed()\n var m2 = c2.redPow(priv.exponent2).fromRed()\n var h = m1.isub(m2).imul(qinv).umod(p).imul(q)\n return m2.iadd(h).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer, 'be', len)\n}\ncrt.getr = getr\n\nmodule.exports = crt\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\n\nmodule.exports = require('./browser/algorithms.json');\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\nvar createHash = require('create-hash');\nvar stream = require('readable-stream');\nvar inherits = require('inherits');\nvar sign = require('./sign');\nvar verify = require('./verify');\n\nvar algorithms = require('./algorithms.json');\nObject.keys(algorithms).forEach(function (key) {\n algorithms[key].id = Buffer.from(algorithms[key].id, 'hex');\n algorithms[key.toLowerCase()] = algorithms[key];\n});\n\nfunction Sign(algorithm) {\n stream.Writable.call(this);\n\n var data = algorithms[algorithm];\n if (!data) { throw new Error('Unknown message digest'); }\n\n this._hashType = data.hash;\n this._hash = createHash(data.hash);\n this._tag = data.id;\n this._signType = data.sign;\n}\ninherits(Sign, stream.Writable);\n\nSign.prototype._write = function _write(data, _, done) {\n this._hash.update(data);\n done();\n};\n\nSign.prototype.update = function update(data, enc) {\n this._hash.update(typeof data === 'string' ? Buffer.from(data, enc) : data);\n\n return this;\n};\n\nSign.prototype.sign = function signMethod(key, enc) {\n this.end();\n var hash = this._hash.digest();\n var sig = sign(hash, key, this._hashType, this._signType, this._tag);\n\n return enc ? sig.toString(enc) : sig;\n};\n\nfunction Verify(algorithm) {\n stream.Writable.call(this);\n\n var data = algorithms[algorithm];\n if (!data) { throw new Error('Unknown message digest'); }\n\n this._hash = createHash(data.hash);\n this._tag = data.id;\n this._signType = data.sign;\n}\ninherits(Verify, stream.Writable);\n\nVerify.prototype._write = function _write(data, _, done) {\n this._hash.update(data);\n done();\n};\n\nVerify.prototype.update = function update(data, enc) {\n this._hash.update(typeof data === 'string' ? Buffer.from(data, enc) : data);\n\n return this;\n};\n\nVerify.prototype.verify = function verifyMethod(key, sig, enc) {\n var sigBuffer = typeof sig === 'string' ? Buffer.from(sig, enc) : sig;\n\n this.end();\n var hash = this._hash.digest();\n return verify(sigBuffer, hash, key, this._signType, this._tag);\n};\n\nfunction createSign(algorithm) {\n return new Sign(algorithm);\n}\n\nfunction createVerify(algorithm) {\n return new Verify(algorithm);\n}\n\nmodule.exports = {\n Sign: createSign,\n Verify: createVerify,\n createSign: createSign,\n createVerify: createVerify\n};\n","'use strict';\n\n// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer;\nvar createHmac = require('create-hmac');\nvar crt = require('browserify-rsa');\nvar EC = require('elliptic').ec;\nvar BN = require('bn.js');\nvar parseKeys = require('parse-asn1');\nvar curves = require('./curves.json');\n\nvar RSA_PKCS1_PADDING = 1;\n\nfunction sign(hash, key, hashType, signType, tag) {\n var priv = parseKeys(key);\n if (priv.curve) {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong private key type'); }\n return ecSign(hash, priv);\n } else if (priv.type === 'dsa') {\n if (signType !== 'dsa') { throw new Error('wrong private key type'); }\n return dsaSign(hash, priv, hashType);\n }\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong private key type'); }\n if (key.padding !== undefined && key.padding !== RSA_PKCS1_PADDING) { throw new Error('illegal or unsupported padding mode'); }\n\n hash = Buffer.concat([tag, hash]);\n var len = priv.modulus.byteLength();\n var pad = [0, 1];\n while (hash.length + pad.length + 1 < len) { pad.push(0xff); }\n pad.push(0x00);\n var i = -1;\n while (++i < hash.length) { pad.push(hash[i]); }\n\n var out = crt(pad, priv);\n return out;\n}\n\nfunction ecSign(hash, priv) {\n var curveId = curves[priv.curve.join('.')];\n if (!curveId) { throw new Error('unknown curve ' + priv.curve.join('.')); }\n\n var curve = new EC(curveId);\n var key = curve.keyFromPrivate(priv.privateKey);\n var out = key.sign(hash);\n\n return Buffer.from(out.toDER());\n}\n\nfunction dsaSign(hash, priv, algo) {\n var x = priv.params.priv_key;\n var p = priv.params.p;\n var q = priv.params.q;\n var g = priv.params.g;\n var r = new BN(0);\n var k;\n var H = bits2int(hash, q).mod(q);\n var s = false;\n var kv = getKey(x, q, hash, algo);\n while (s === false) {\n k = makeKey(q, kv, algo);\n r = makeR(g, k, p, q);\n s = k.invm(q).imul(H.add(x.mul(r))).mod(q);\n if (s.cmpn(0) === 0) {\n s = false;\n r = new BN(0);\n }\n }\n return toDER(r, s);\n}\n\nfunction toDER(r, s) {\n r = r.toArray();\n s = s.toArray();\n\n // Pad values\n if (r[0] & 0x80) { r = [0].concat(r); }\n if (s[0] & 0x80) { s = [0].concat(s); }\n\n var total = r.length + s.length + 4;\n var res = [\n 0x30, total, 0x02, r.length\n ];\n res = res.concat(r, [0x02, s.length], s);\n return Buffer.from(res);\n}\n\nfunction getKey(x, q, hash, algo) {\n x = Buffer.from(x.toArray());\n if (x.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - x.length);\n x = Buffer.concat([zeros, x]);\n }\n var hlen = hash.length;\n var hbits = bits2octets(hash, q);\n var v = Buffer.alloc(hlen);\n v.fill(1);\n var k = Buffer.alloc(hlen);\n k = createHmac(algo, k).update(v).update(Buffer.from([0])).update(x).update(hbits).digest();\n v = createHmac(algo, k).update(v).digest();\n k = createHmac(algo, k).update(v).update(Buffer.from([1])).update(x).update(hbits).digest();\n v = createHmac(algo, k).update(v).digest();\n return { k: k, v: v };\n}\n\nfunction bits2int(obits, q) {\n var bits = new BN(obits);\n var shift = (obits.length << 3) - q.bitLength();\n if (shift > 0) { bits.ishrn(shift); }\n return bits;\n}\n\nfunction bits2octets(bits, q) {\n bits = bits2int(bits, q);\n bits = bits.mod(q);\n var out = Buffer.from(bits.toArray());\n if (out.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - out.length);\n out = Buffer.concat([zeros, out]);\n }\n return out;\n}\n\nfunction makeKey(q, kv, algo) {\n var t;\n var k;\n\n do {\n t = Buffer.alloc(0);\n\n while (t.length * 8 < q.bitLength()) {\n kv.v = createHmac(algo, kv.k).update(kv.v).digest();\n t = Buffer.concat([t, kv.v]);\n }\n\n k = bits2int(t, q);\n kv.k = createHmac(algo, kv.k).update(kv.v).update(Buffer.from([0])).digest();\n kv.v = createHmac(algo, kv.k).update(kv.v).digest();\n } while (k.cmp(q) !== -1);\n\n return k;\n}\n\nfunction makeR(g, k, p, q) {\n return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q);\n}\n\nmodule.exports = sign;\nmodule.exports.getKey = getKey;\nmodule.exports.makeKey = makeKey;\n","'use strict';\n\n// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer;\nvar BN = require('bn.js');\nvar EC = require('elliptic').ec;\nvar parseKeys = require('parse-asn1');\nvar curves = require('./curves.json');\n\nfunction verify(sig, hash, key, signType, tag) {\n var pub = parseKeys(key);\n if (pub.type === 'ec') {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong public key type'); }\n return ecVerify(sig, hash, pub);\n } else if (pub.type === 'dsa') {\n if (signType !== 'dsa') { throw new Error('wrong public key type'); }\n return dsaVerify(sig, hash, pub);\n }\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong public key type'); }\n\n hash = Buffer.concat([tag, hash]);\n var len = pub.modulus.byteLength();\n var pad = [1];\n var padNum = 0;\n while (hash.length + pad.length + 2 < len) {\n pad.push(0xff);\n padNum += 1;\n }\n pad.push(0x00);\n var i = -1;\n while (++i < hash.length) {\n pad.push(hash[i]);\n }\n pad = Buffer.from(pad);\n var red = BN.mont(pub.modulus);\n sig = new BN(sig).toRed(red);\n\n sig = sig.redPow(new BN(pub.publicExponent));\n sig = Buffer.from(sig.fromRed().toArray());\n var out = padNum < 8 ? 1 : 0;\n len = Math.min(sig.length, pad.length);\n if (sig.length !== pad.length) { out = 1; }\n\n i = -1;\n while (++i < len) { out |= sig[i] ^ pad[i]; }\n return out === 0;\n}\n\nfunction ecVerify(sig, hash, pub) {\n var curveId = curves[pub.data.algorithm.curve.join('.')];\n if (!curveId) { throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.')); }\n\n var curve = new EC(curveId);\n var pubkey = pub.data.subjectPrivateKey.data;\n\n return curve.verify(hash, sig, pubkey);\n}\n\nfunction dsaVerify(sig, hash, pub) {\n var p = pub.data.p;\n var q = pub.data.q;\n var g = pub.data.g;\n var y = pub.data.pub_key;\n var unpacked = parseKeys.signature.decode(sig, 'der');\n var s = unpacked.s;\n var r = unpacked.r;\n checkValue(s, q);\n checkValue(r, q);\n var montp = BN.mont(p);\n var w = s.invm(q);\n var v = g.toRed(montp)\n .redPow(new BN(hash).mul(w).mod(q))\n .fromRed()\n .mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed())\n .mod(p)\n .mod(q);\n return v.cmp(r) === 0;\n}\n\nfunction checkValue(b, q) {\n if (b.cmpn(0) <= 0) { throw new Error('invalid sig'); }\n if (b.cmp(q) >= 0) { throw new Error('invalid sig'); }\n}\n\nmodule.exports = verify;\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, { hasUnpiped: false });\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n pna.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n pna.nextTick(emitErrorNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, _this, err);\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","module.exports = require('events').EventEmitter;\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","module.exports = function xor (a, b) {\n var length = Math.min(a.length, b.length)\n var buffer = new Buffer(length)\n\n for (var i = 0; i < length; ++i) {\n buffer[i] = a[i] ^ b[i]\n }\n\n return buffer\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nvar K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n var arr = new Uint8Array(1)\n var proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n var buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n var valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n var b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(\n value[Symbol.toPrimitive]('string'), encodingOrOffset, length\n )\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n var length = byteLength(string, encoding) | 0\n var buf = createBuffer(length)\n\n var actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n var buf = createBuffer(length)\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n var copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n var buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n var buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n Buffer.from(buf).copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n var len = string.length\n var mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n var strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (var i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n var len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nvar hexSliceLookupTable = (function () {\n var alphabet = '0123456789abcdef'\n var table = new Array(256)\n for (var i = 0; i < 16; ++i) {\n var i16 = i * 16\n for (var j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n","var Buffer = require('safe-buffer').Buffer\nvar Transform = require('stream').Transform\nvar StringDecoder = require('string_decoder').StringDecoder\nvar inherits = require('inherits')\n\nfunction CipherBase (hashMode) {\n Transform.call(this)\n this.hashMode = typeof hashMode === 'string'\n if (this.hashMode) {\n this[hashMode] = this._finalOrDigest\n } else {\n this.final = this._finalOrDigest\n }\n if (this._final) {\n this.__final = this._final\n this._final = null\n }\n this._decoder = null\n this._encoding = null\n}\ninherits(CipherBase, Transform)\n\nCipherBase.prototype.update = function (data, inputEnc, outputEnc) {\n if (typeof data === 'string') {\n data = Buffer.from(data, inputEnc)\n }\n\n var outData = this._update(data)\n if (this.hashMode) return this\n\n if (outputEnc) {\n outData = this._toString(outData, outputEnc)\n }\n\n return outData\n}\n\nCipherBase.prototype.setAutoPadding = function () {}\nCipherBase.prototype.getAuthTag = function () {\n throw new Error('trying to get auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAuthTag = function () {\n throw new Error('trying to set auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAAD = function () {\n throw new Error('trying to set aad in unsupported state')\n}\n\nCipherBase.prototype._transform = function (data, _, next) {\n var err\n try {\n if (this.hashMode) {\n this._update(data)\n } else {\n this.push(this._update(data))\n }\n } catch (e) {\n err = e\n } finally {\n next(err)\n }\n}\nCipherBase.prototype._flush = function (done) {\n var err\n try {\n this.push(this.__final())\n } catch (e) {\n err = e\n }\n\n done(err)\n}\nCipherBase.prototype._finalOrDigest = function (outputEnc) {\n var outData = this.__final() || Buffer.alloc(0)\n if (outputEnc) {\n outData = this._toString(outData, outputEnc, true)\n }\n return outData\n}\n\nCipherBase.prototype._toString = function (value, enc, fin) {\n if (!this._decoder) {\n this._decoder = new StringDecoder(enc)\n this._encoding = enc\n }\n\n if (this._encoding !== enc) throw new Error('can\\'t switch encodings')\n\n var out = this._decoder.write(value)\n if (fin) {\n out += this._decoder.end()\n }\n\n return out\n}\n\nmodule.exports = CipherBase\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('buffer').Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","var elliptic = require('elliptic')\nvar BN = require('bn.js')\n\nmodule.exports = function createECDH (curve) {\n return new ECDH(curve)\n}\n\nvar aliases = {\n secp256k1: {\n name: 'secp256k1',\n byteLength: 32\n },\n secp224r1: {\n name: 'p224',\n byteLength: 28\n },\n prime256v1: {\n name: 'p256',\n byteLength: 32\n },\n prime192v1: {\n name: 'p192',\n byteLength: 24\n },\n ed25519: {\n name: 'ed25519',\n byteLength: 32\n },\n secp384r1: {\n name: 'p384',\n byteLength: 48\n },\n secp521r1: {\n name: 'p521',\n byteLength: 66\n }\n}\n\naliases.p224 = aliases.secp224r1\naliases.p256 = aliases.secp256r1 = aliases.prime256v1\naliases.p192 = aliases.secp192r1 = aliases.prime192v1\naliases.p384 = aliases.secp384r1\naliases.p521 = aliases.secp521r1\n\nfunction ECDH (curve) {\n this.curveType = aliases[curve]\n if (!this.curveType) {\n this.curveType = {\n name: curve\n }\n }\n this.curve = new elliptic.ec(this.curveType.name) // eslint-disable-line new-cap\n this.keys = void 0\n}\n\nECDH.prototype.generateKeys = function (enc, format) {\n this.keys = this.curve.genKeyPair()\n return this.getPublicKey(enc, format)\n}\n\nECDH.prototype.computeSecret = function (other, inenc, enc) {\n inenc = inenc || 'utf8'\n if (!Buffer.isBuffer(other)) {\n other = new Buffer(other, inenc)\n }\n var otherPub = this.curve.keyFromPublic(other).getPublic()\n var out = otherPub.mul(this.keys.getPrivate()).getX()\n return formatReturnValue(out, enc, this.curveType.byteLength)\n}\n\nECDH.prototype.getPublicKey = function (enc, format) {\n var key = this.keys.getPublic(format === 'compressed', true)\n if (format === 'hybrid') {\n if (key[key.length - 1] % 2) {\n key[0] = 7\n } else {\n key[0] = 6\n }\n }\n return formatReturnValue(key, enc)\n}\n\nECDH.prototype.getPrivateKey = function (enc) {\n return formatReturnValue(this.keys.getPrivate(), enc)\n}\n\nECDH.prototype.setPublicKey = function (pub, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc)\n }\n this.keys._importPublic(pub)\n return this\n}\n\nECDH.prototype.setPrivateKey = function (priv, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc)\n }\n\n var _priv = new BN(priv)\n _priv = _priv.toString(16)\n this.keys = this.curve.genKeyPair()\n this.keys._importPrivate(_priv)\n return this\n}\n\nfunction formatReturnValue (bn, enc, len) {\n if (!Array.isArray(bn)) {\n bn = bn.toArray()\n }\n var buf = new Buffer(bn)\n if (len && buf.length < len) {\n var zeros = new Buffer(len - buf.length)\n zeros.fill(0)\n buf = Buffer.concat([zeros, buf])\n }\n if (!enc) {\n return buf\n } else {\n return buf.toString(enc)\n }\n}\n","'use strict'\nvar inherits = require('inherits')\nvar MD5 = require('md5.js')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Base = require('cipher-base')\n\nfunction Hash (hash) {\n Base.call(this, 'digest')\n\n this._hash = hash\n}\n\ninherits(Hash, Base)\n\nHash.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHash.prototype._final = function () {\n return this._hash.digest()\n}\n\nmodule.exports = function createHash (alg) {\n alg = alg.toLowerCase()\n if (alg === 'md5') return new MD5()\n if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160()\n\n return new Hash(sha(alg))\n}\n","var MD5 = require('md5.js')\n\nmodule.exports = function (buffer) {\n return new MD5().update(buffer).digest()\n}\n","'use strict'\nvar inherits = require('inherits')\nvar Legacy = require('./legacy')\nvar Base = require('cipher-base')\nvar Buffer = require('safe-buffer').Buffer\nvar md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\n\nvar sha = require('sha.js')\n\nvar ZEROS = Buffer.alloc(128)\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n this._alg = alg\n this._key = key\n if (key.length > blocksize) {\n var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n key = hash.update(key).digest()\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n this._hash.update(ipad)\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._hash.digest()\n var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)\n return hash.update(this._opad).update(h).digest()\n}\n\nmodule.exports = function createHmac (alg, key) {\n alg = alg.toLowerCase()\n if (alg === 'rmd160' || alg === 'ripemd160') {\n return new Hmac('rmd160', key)\n }\n if (alg === 'md5') {\n return new Legacy(md5, key)\n }\n return new Hmac(alg, key)\n}\n","'use strict'\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar Base = require('cipher-base')\n\nvar ZEROS = Buffer.alloc(128)\nvar blocksize = 64\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n this._alg = alg\n this._key = key\n\n if (key.length > blocksize) {\n key = alg(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n this._hash = [ipad]\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.push(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._alg(Buffer.concat(this._hash))\n return this._alg(Buffer.concat([this._opad, h]))\n}\nmodule.exports = Hmac\n","'use strict'\n\nexports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = require('randombytes')\nexports.createHash = exports.Hash = require('create-hash')\nexports.createHmac = exports.Hmac = require('create-hmac')\n\nvar algos = require('browserify-sign/algos')\nvar algoKeys = Object.keys(algos)\nvar hashes = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'].concat(algoKeys)\nexports.getHashes = function () {\n return hashes\n}\n\nvar p = require('pbkdf2')\nexports.pbkdf2 = p.pbkdf2\nexports.pbkdf2Sync = p.pbkdf2Sync\n\nvar aes = require('browserify-cipher')\n\nexports.Cipher = aes.Cipher\nexports.createCipher = aes.createCipher\nexports.Cipheriv = aes.Cipheriv\nexports.createCipheriv = aes.createCipheriv\nexports.Decipher = aes.Decipher\nexports.createDecipher = aes.createDecipher\nexports.Decipheriv = aes.Decipheriv\nexports.createDecipheriv = aes.createDecipheriv\nexports.getCiphers = aes.getCiphers\nexports.listCiphers = aes.listCiphers\n\nvar dh = require('diffie-hellman')\n\nexports.DiffieHellmanGroup = dh.DiffieHellmanGroup\nexports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup\nexports.getDiffieHellman = dh.getDiffieHellman\nexports.createDiffieHellman = dh.createDiffieHellman\nexports.DiffieHellman = dh.DiffieHellman\n\nvar sign = require('browserify-sign')\n\nexports.createSign = sign.createSign\nexports.Sign = sign.Sign\nexports.createVerify = sign.createVerify\nexports.Verify = sign.Verify\n\nexports.createECDH = require('create-ecdh')\n\nvar publicEncrypt = require('public-encrypt')\n\nexports.publicEncrypt = publicEncrypt.publicEncrypt\nexports.privateEncrypt = publicEncrypt.privateEncrypt\nexports.publicDecrypt = publicEncrypt.publicDecrypt\nexports.privateDecrypt = publicEncrypt.privateDecrypt\n\n// the least I can do is make error messages for the rest of the node.js/crypto api.\n// ;[\n// 'createCredentials'\n// ].forEach(function (name) {\n// exports[name] = function () {\n// throw new Error([\n// 'sorry, ' + name + ' is not implemented yet',\n// 'we accept pull requests',\n// 'https://github.com/crypto-browserify/crypto-browserify'\n// ].join('\\n'))\n// }\n// })\n\nvar rf = require('randomfill')\n\nexports.randomFill = rf.randomFill\nexports.randomFillSync = rf.randomFillSync\n\nexports.createCredentials = function () {\n throw new Error([\n 'sorry, createCredentials is not implemented yet',\n 'we accept pull requests',\n 'https://github.com/crypto-browserify/crypto-browserify'\n ].join('\\n'))\n}\n\nexports.constants = {\n 'DH_CHECK_P_NOT_SAFE_PRIME': 2,\n 'DH_CHECK_P_NOT_PRIME': 1,\n 'DH_UNABLE_TO_CHECK_GENERATOR': 4,\n 'DH_NOT_SUITABLE_GENERATOR': 8,\n 'NPN_ENABLED': 1,\n 'ALPN_ENABLED': 1,\n 'RSA_PKCS1_PADDING': 1,\n 'RSA_SSLV23_PADDING': 2,\n 'RSA_NO_PADDING': 3,\n 'RSA_PKCS1_OAEP_PADDING': 4,\n 'RSA_X931_PADDING': 5,\n 'RSA_PKCS1_PSS_PADDING': 6,\n 'POINT_CONVERSION_COMPRESSED': 2,\n 'POINT_CONVERSION_UNCOMPRESSED': 4,\n 'POINT_CONVERSION_HYBRID': 6\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(n); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction filterUniqueArray(arr) {\n return arr.filter(function (val, index) {\n return arr.lastIndexOf(val) === index;\n });\n}\n\nexport default function assignStyle(base) {\n for (var i = 0, len = arguments.length <= 1 ? 0 : arguments.length - 1; i < len; ++i) {\n var style = i + 1 < 1 || arguments.length <= i + 1 ? undefined : arguments[i + 1];\n\n for (var property in style) {\n var value = style[property];\n var baseValue = base[property];\n\n if (baseValue && value) {\n if (Array.isArray(baseValue)) {\n base[property] = filterUniqueArray(baseValue.concat(value));\n continue;\n }\n\n if (Array.isArray(value)) {\n base[property] = filterUniqueArray([baseValue].concat(_toConsumableArray(value)));\n continue;\n }\n\n if (_typeof(value) === 'object') {\n base[property] = assignStyle({}, baseValue, value);\n continue;\n }\n }\n\n base[property] = value;\n }\n }\n\n return base;\n}","var DASH = /-([a-z])/g;\nvar MS = /^Ms/g;\nvar cache = {};\n\nfunction toUpper(match) {\n return match[1].toUpperCase();\n}\n\nexport default function camelCaseProperty(property) {\n if (cache.hasOwnProperty(property)) {\n return cache[property];\n }\n\n var camelProp = property.replace(DASH, toUpper).replace(MS, 'ms');\n cache[property] = camelProp;\n return camelProp;\n}","import hyphenateStyleName from 'hyphenate-style-name';\nexport default function hyphenateProperty(property) {\n return hyphenateStyleName(property);\n}","import hyphenateProperty from './hyphenateProperty';\nexport default function cssifyDeclaration(property, value) {\n return hyphenateProperty(property) + ':' + value;\n}","import cssifyDeclaration from './cssifyDeclaration';\nexport default function cssifyObject(style) {\n var css = '';\n\n for (var property in style) {\n var value = style[property];\n\n if (typeof value !== 'string' && typeof value !== 'number') {\n continue;\n } // prevents the semicolon after\n // the last rule declaration\n\n\n if (css) {\n css += ';';\n }\n\n css += cssifyDeclaration(property, value);\n }\n\n return css;\n}","var RE = /^(Webkit|Moz|O|ms)/;\nexport default function isPrefixedProperty(property) {\n return RE.test(property);\n}","var RE = /-webkit-|-moz-|-ms-/;\nexport default function isPrefixedValue(value) {\n return typeof value === 'string' && RE.test(value);\n}","import hyphenateProperty from './hyphenateProperty';\nvar unitlessProperties = {\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n fontWeight: true,\n lineHeight: true,\n opacity: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n // SVG-related properties\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true\n};\nvar prefixedUnitlessProperties = ['animationIterationCount', 'boxFlex', 'boxFlexGroup', 'boxOrdinalGroup', 'columnCount', 'flex', 'flexGrow', 'flexPositive', 'flexShrink', 'flexNegative', 'flexOrder', 'gridColumn', 'gridColumnEnd', 'gridColumnStart', 'gridRow', 'gridRowEnd', 'gridRowStart', 'lineClamp', 'order'];\nvar prefixes = ['Webkit', 'ms', 'Moz', 'O'];\n\nfunction getPrefixedProperty(prefix, property) {\n return prefix + property.charAt(0).toUpperCase() + property.slice(1);\n} // add all prefixed properties to the unitless properties\n\n\nfor (var i = 0, len = prefixedUnitlessProperties.length; i < len; ++i) {\n var property = prefixedUnitlessProperties[i];\n unitlessProperties[property] = true;\n\n for (var j = 0, jLen = prefixes.length; j < jLen; ++j) {\n unitlessProperties[getPrefixedProperty(prefixes[j], property)] = true;\n }\n} // add all hypenated properties as well\n\n\nfor (var _property in unitlessProperties) {\n unitlessProperties[hyphenateProperty(_property)] = true;\n}\n\nexport default function isUnitlessProperty(property) {\n return unitlessProperties.hasOwnProperty(property);\n}","var RE = /^(ms|Webkit|Moz|O)/;\nexport default function unprefixProperty(property) {\n var propertyWithoutPrefix = property.replace(RE, '');\n return propertyWithoutPrefix.charAt(0).toLowerCase() + propertyWithoutPrefix.slice(1);\n}","import camelCaseProperty from './camelCaseProperty';\nimport unprefixProperty from './unprefixProperty';\nexport default function normalizeProperty(property) {\n return unprefixProperty(camelCaseProperty(property));\n}","import hyphenateProperty from './hyphenateProperty';\nexport default function resolveArrayValue(property, value) {\n return value.join(';' + hyphenateProperty(property) + ':');\n}","var RE = /(-ms-|-webkit-|-moz-|-o-)/g;\nexport default function unprefixValue(value) {\n if (typeof value === 'string') {\n return value.replace(RE, '');\n }\n\n return value;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = hyphenateProperty;\n\nvar _hyphenateStyleName = require(\"hyphenate-style-name\");\n\nvar _hyphenateStyleName2 = _interopRequireDefault(_hyphenateStyleName);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction hyphenateProperty(property) {\n return (0, _hyphenateStyleName2[\"default\"])(property);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = isPrefixedValue;\nvar RE = /-webkit-|-moz-|-ms-/;\n\nfunction isPrefixedValue(value) {\n return typeof value === 'string' && RE.test(value);\n}","'use strict';\n\nexports.utils = require('./des/utils');\nexports.Cipher = require('./des/cipher');\nexports.DES = require('./des/des');\nexports.CBC = require('./des/cbc');\nexports.EDE = require('./des/ede');\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar proto = {};\n\nfunction CBCState(iv) {\n assert.equal(iv.length, 8, 'Invalid IV length');\n\n this.iv = new Array(8);\n for (var i = 0; i < this.iv.length; i++)\n this.iv[i] = iv[i];\n}\n\nfunction instantiate(Base) {\n function CBC(options) {\n Base.call(this, options);\n this._cbcInit();\n }\n inherits(CBC, Base);\n\n var keys = Object.keys(proto);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n CBC.prototype[key] = proto[key];\n }\n\n CBC.create = function create(options) {\n return new CBC(options);\n };\n\n return CBC;\n}\n\nexports.instantiate = instantiate;\n\nproto._cbcInit = function _cbcInit() {\n var state = new CBCState(this.options.iv);\n this._cbcState = state;\n};\n\nproto._update = function _update(inp, inOff, out, outOff) {\n var state = this._cbcState;\n var superProto = this.constructor.super_.prototype;\n\n var iv = state.iv;\n if (this.type === 'encrypt') {\n for (var i = 0; i < this.blockSize; i++)\n iv[i] ^= inp[inOff + i];\n\n superProto._update.call(this, iv, 0, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = out[outOff + i];\n } else {\n superProto._update.call(this, inp, inOff, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n out[outOff + i] ^= iv[i];\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = inp[inOff + i];\n }\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\n\nfunction Cipher(options) {\n this.options = options;\n\n this.type = this.options.type;\n this.blockSize = 8;\n this._init();\n\n this.buffer = new Array(this.blockSize);\n this.bufferOff = 0;\n this.padding = options.padding !== false\n}\nmodule.exports = Cipher;\n\nCipher.prototype._init = function _init() {\n // Might be overrided\n};\n\nCipher.prototype.update = function update(data) {\n if (data.length === 0)\n return [];\n\n if (this.type === 'decrypt')\n return this._updateDecrypt(data);\n else\n return this._updateEncrypt(data);\n};\n\nCipher.prototype._buffer = function _buffer(data, off) {\n // Append data to buffer\n var min = Math.min(this.buffer.length - this.bufferOff, data.length - off);\n for (var i = 0; i < min; i++)\n this.buffer[this.bufferOff + i] = data[off + i];\n this.bufferOff += min;\n\n // Shift next\n return min;\n};\n\nCipher.prototype._flushBuffer = function _flushBuffer(out, off) {\n this._update(this.buffer, 0, out, off);\n this.bufferOff = 0;\n return this.blockSize;\n};\n\nCipher.prototype._updateEncrypt = function _updateEncrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = ((this.bufferOff + data.length) / this.blockSize) | 0;\n var out = new Array(count * this.blockSize);\n\n if (this.bufferOff !== 0) {\n inputOff += this._buffer(data, inputOff);\n\n if (this.bufferOff === this.buffer.length)\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Write blocks\n var max = data.length - ((data.length - inputOff) % this.blockSize);\n for (; inputOff < max; inputOff += this.blockSize) {\n this._update(data, inputOff, out, outputOff);\n outputOff += this.blockSize;\n }\n\n // Queue rest\n for (; inputOff < data.length; inputOff++, this.bufferOff++)\n this.buffer[this.bufferOff] = data[inputOff];\n\n return out;\n};\n\nCipher.prototype._updateDecrypt = function _updateDecrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1;\n var out = new Array(count * this.blockSize);\n\n // TODO(indutny): optimize it, this is far from optimal\n for (; count > 0; count--) {\n inputOff += this._buffer(data, inputOff);\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Buffer rest of the input\n inputOff += this._buffer(data, inputOff);\n\n return out;\n};\n\nCipher.prototype.final = function final(buffer) {\n var first;\n if (buffer)\n first = this.update(buffer);\n\n var last;\n if (this.type === 'encrypt')\n last = this._finalEncrypt();\n else\n last = this._finalDecrypt();\n\n if (first)\n return first.concat(last);\n else\n return last;\n};\n\nCipher.prototype._pad = function _pad(buffer, off) {\n if (off === 0)\n return false;\n\n while (off < buffer.length)\n buffer[off++] = 0;\n\n return true;\n};\n\nCipher.prototype._finalEncrypt = function _finalEncrypt() {\n if (!this._pad(this.buffer, this.bufferOff))\n return [];\n\n var out = new Array(this.blockSize);\n this._update(this.buffer, 0, out, 0);\n return out;\n};\n\nCipher.prototype._unpad = function _unpad(buffer) {\n return buffer;\n};\n\nCipher.prototype._finalDecrypt = function _finalDecrypt() {\n assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt');\n var out = new Array(this.blockSize);\n this._flushBuffer(out, 0);\n\n return this._unpad(out);\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar utils = require('./utils');\nvar Cipher = require('./cipher');\n\nfunction DESState() {\n this.tmp = new Array(2);\n this.keys = null;\n}\n\nfunction DES(options) {\n Cipher.call(this, options);\n\n var state = new DESState();\n this._desState = state;\n\n this.deriveKeys(state, options.key);\n}\ninherits(DES, Cipher);\nmodule.exports = DES;\n\nDES.create = function create(options) {\n return new DES(options);\n};\n\nvar shiftTable = [\n 1, 1, 2, 2, 2, 2, 2, 2,\n 1, 2, 2, 2, 2, 2, 2, 1\n];\n\nDES.prototype.deriveKeys = function deriveKeys(state, key) {\n state.keys = new Array(16 * 2);\n\n assert.equal(key.length, this.blockSize, 'Invalid key length');\n\n var kL = utils.readUInt32BE(key, 0);\n var kR = utils.readUInt32BE(key, 4);\n\n utils.pc1(kL, kR, state.tmp, 0);\n kL = state.tmp[0];\n kR = state.tmp[1];\n for (var i = 0; i < state.keys.length; i += 2) {\n var shift = shiftTable[i >>> 1];\n kL = utils.r28shl(kL, shift);\n kR = utils.r28shl(kR, shift);\n utils.pc2(kL, kR, state.keys, i);\n }\n};\n\nDES.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._desState;\n\n var l = utils.readUInt32BE(inp, inOff);\n var r = utils.readUInt32BE(inp, inOff + 4);\n\n // Initial Permutation\n utils.ip(l, r, state.tmp, 0);\n l = state.tmp[0];\n r = state.tmp[1];\n\n if (this.type === 'encrypt')\n this._encrypt(state, l, r, state.tmp, 0);\n else\n this._decrypt(state, l, r, state.tmp, 0);\n\n l = state.tmp[0];\n r = state.tmp[1];\n\n utils.writeUInt32BE(out, l, outOff);\n utils.writeUInt32BE(out, r, outOff + 4);\n};\n\nDES.prototype._pad = function _pad(buffer, off) {\n if (this.padding === false) {\n return false;\n }\n\n var value = buffer.length - off;\n for (var i = off; i < buffer.length; i++)\n buffer[i] = value;\n\n return true;\n};\n\nDES.prototype._unpad = function _unpad(buffer) {\n if (this.padding === false) {\n return buffer;\n }\n\n var pad = buffer[buffer.length - 1];\n for (var i = buffer.length - pad; i < buffer.length; i++)\n assert.equal(buffer[i], pad);\n\n return buffer.slice(0, buffer.length - pad);\n};\n\nDES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) {\n var l = lStart;\n var r = rStart;\n\n // Apply f() x16 times\n for (var i = 0; i < state.keys.length; i += 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(r, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = r;\n r = (l ^ f) >>> 0;\n l = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(r, l, out, off);\n};\n\nDES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) {\n var l = rStart;\n var r = lStart;\n\n // Apply f() x16 times\n for (var i = state.keys.length - 2; i >= 0; i -= 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(l, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = l;\n l = (r ^ f) >>> 0;\n r = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(l, r, out, off);\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar Cipher = require('./cipher');\nvar DES = require('./des');\n\nfunction EDEState(type, key) {\n assert.equal(key.length, 24, 'Invalid key length');\n\n var k1 = key.slice(0, 8);\n var k2 = key.slice(8, 16);\n var k3 = key.slice(16, 24);\n\n if (type === 'encrypt') {\n this.ciphers = [\n DES.create({ type: 'encrypt', key: k1 }),\n DES.create({ type: 'decrypt', key: k2 }),\n DES.create({ type: 'encrypt', key: k3 })\n ];\n } else {\n this.ciphers = [\n DES.create({ type: 'decrypt', key: k3 }),\n DES.create({ type: 'encrypt', key: k2 }),\n DES.create({ type: 'decrypt', key: k1 })\n ];\n }\n}\n\nfunction EDE(options) {\n Cipher.call(this, options);\n\n var state = new EDEState(this.type, this.options.key);\n this._edeState = state;\n}\ninherits(EDE, Cipher);\n\nmodule.exports = EDE;\n\nEDE.create = function create(options) {\n return new EDE(options);\n};\n\nEDE.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._edeState;\n\n state.ciphers[0]._update(inp, inOff, out, outOff);\n state.ciphers[1]._update(out, outOff, out, outOff);\n state.ciphers[2]._update(out, outOff, out, outOff);\n};\n\nEDE.prototype._pad = DES.prototype._pad;\nEDE.prototype._unpad = DES.prototype._unpad;\n","'use strict';\n\nexports.readUInt32BE = function readUInt32BE(bytes, off) {\n var res = (bytes[0 + off] << 24) |\n (bytes[1 + off] << 16) |\n (bytes[2 + off] << 8) |\n bytes[3 + off];\n return res >>> 0;\n};\n\nexports.writeUInt32BE = function writeUInt32BE(bytes, value, off) {\n bytes[0 + off] = value >>> 24;\n bytes[1 + off] = (value >>> 16) & 0xff;\n bytes[2 + off] = (value >>> 8) & 0xff;\n bytes[3 + off] = value & 0xff;\n};\n\nexports.ip = function ip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n }\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.rip = function rip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 0; i < 4; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n for (var i = 4; i < 8; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.pc1 = function pc1(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n // 7, 15, 23, 31, 39, 47, 55, 63\n // 6, 14, 22, 30, 39, 47, 55, 63\n // 5, 13, 21, 29, 39, 47, 55, 63\n // 4, 12, 20, 28\n for (var i = 7; i >= 5; i--) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n\n // 1, 9, 17, 25, 33, 41, 49, 57\n // 2, 10, 18, 26, 34, 42, 50, 58\n // 3, 11, 19, 27, 35, 43, 51, 59\n // 36, 44, 52, 60\n for (var i = 1; i <= 3; i++) {\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.r28shl = function r28shl(num, shift) {\n return ((num << shift) & 0xfffffff) | (num >>> (28 - shift));\n};\n\nvar pc2table = [\n // inL => outL\n 14, 11, 17, 4, 27, 23, 25, 0,\n 13, 22, 7, 18, 5, 9, 16, 24,\n 2, 20, 12, 21, 1, 8, 15, 26,\n\n // inR => outR\n 15, 4, 25, 19, 9, 1, 26, 16,\n 5, 11, 23, 8, 12, 7, 17, 0,\n 22, 3, 10, 14, 6, 20, 27, 24\n];\n\nexports.pc2 = function pc2(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n var len = pc2table.length >>> 1;\n for (var i = 0; i < len; i++) {\n outL <<= 1;\n outL |= (inL >>> pc2table[i]) & 0x1;\n }\n for (var i = len; i < pc2table.length; i++) {\n outR <<= 1;\n outR |= (inR >>> pc2table[i]) & 0x1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.expand = function expand(r, out, off) {\n var outL = 0;\n var outR = 0;\n\n outL = ((r & 1) << 5) | (r >>> 27);\n for (var i = 23; i >= 15; i -= 4) {\n outL <<= 6;\n outL |= (r >>> i) & 0x3f;\n }\n for (var i = 11; i >= 3; i -= 4) {\n outR |= (r >>> i) & 0x3f;\n outR <<= 6;\n }\n outR |= ((r & 0x1f) << 1) | (r >>> 31);\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nvar sTable = [\n 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1,\n 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8,\n 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7,\n 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13,\n\n 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14,\n 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5,\n 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2,\n 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9,\n\n 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10,\n 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1,\n 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7,\n 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12,\n\n 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3,\n 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9,\n 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8,\n 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14,\n\n 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1,\n 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6,\n 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13,\n 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3,\n\n 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5,\n 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8,\n 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10,\n 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13,\n\n 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10,\n 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6,\n 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7,\n 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12,\n\n 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4,\n 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2,\n 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13,\n 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11\n];\n\nexports.substitute = function substitute(inL, inR) {\n var out = 0;\n for (var i = 0; i < 4; i++) {\n var b = (inL >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n for (var i = 0; i < 4; i++) {\n var b = (inR >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[4 * 0x40 + i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n return out >>> 0;\n};\n\nvar permuteTable = [\n 16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22,\n 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7\n];\n\nexports.permute = function permute(num) {\n var out = 0;\n for (var i = 0; i < permuteTable.length; i++) {\n out <<= 1;\n out |= (num >>> permuteTable[i]) & 0x1;\n }\n return out >>> 0;\n};\n\nexports.padSplit = function padSplit(num, size, group) {\n var str = num.toString(2);\n while (str.length < size)\n str = '0' + str;\n\n var out = [];\n for (var i = 0; i < size; i += group)\n out.push(str.slice(i, i + group));\n return out.join(' ');\n};\n","var generatePrime = require('./lib/generatePrime')\nvar primes = require('./lib/primes.json')\n\nvar DH = require('./lib/dh')\n\nfunction getDiffieHellman (mod) {\n var prime = new Buffer(primes[mod].prime, 'hex')\n var gen = new Buffer(primes[mod].gen, 'hex')\n\n return new DH(prime, gen)\n}\n\nvar ENCODINGS = {\n 'binary': true, 'hex': true, 'base64': true\n}\n\nfunction createDiffieHellman (prime, enc, generator, genc) {\n if (Buffer.isBuffer(enc) || ENCODINGS[enc] === undefined) {\n return createDiffieHellman(prime, 'binary', enc, generator)\n }\n\n enc = enc || 'binary'\n genc = genc || 'binary'\n generator = generator || new Buffer([2])\n\n if (!Buffer.isBuffer(generator)) {\n generator = new Buffer(generator, genc)\n }\n\n if (typeof prime === 'number') {\n return new DH(generatePrime(prime, generator), generator, true)\n }\n\n if (!Buffer.isBuffer(prime)) {\n prime = new Buffer(prime, enc)\n }\n\n return new DH(prime, generator, true)\n}\n\nexports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman\nexports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman\n","var BN = require('bn.js');\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar TWENTYFOUR = new BN(24);\nvar ELEVEN = new BN(11);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar primes = require('./generatePrime');\nvar randomBytes = require('randombytes');\nmodule.exports = DH;\n\nfunction setPublicKey(pub, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc);\n }\n this._pub = new BN(pub);\n return this;\n}\n\nfunction setPrivateKey(priv, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc);\n }\n this._priv = new BN(priv);\n return this;\n}\n\nvar primeCache = {};\nfunction checkPrime(prime, generator) {\n var gen = generator.toString('hex');\n var hex = [gen, prime.toString(16)].join('_');\n if (hex in primeCache) {\n return primeCache[hex];\n }\n var error = 0;\n\n if (prime.isEven() ||\n !primes.simpleSieve ||\n !primes.fermatTest(prime) ||\n !millerRabin.test(prime)) {\n //not a prime so +1\n error += 1;\n\n if (gen === '02' || gen === '05') {\n // we'd be able to check the generator\n // it would fail so +8\n error += 8;\n } else {\n //we wouldn't be able to test the generator\n // so +4\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n }\n if (!millerRabin.test(prime.shrn(1))) {\n //not a safe prime\n error += 2;\n }\n var rem;\n switch (gen) {\n case '02':\n if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) {\n // unsuidable generator\n error += 8;\n }\n break;\n case '05':\n rem = prime.mod(TEN);\n if (rem.cmp(THREE) && rem.cmp(SEVEN)) {\n // prime mod 10 needs to equal 3 or 7\n error += 8;\n }\n break;\n default:\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n}\n\nfunction DH(prime, generator, malleable) {\n this.setGenerator(generator);\n this.__prime = new BN(prime);\n this._prime = BN.mont(this.__prime);\n this._primeLen = prime.length;\n this._pub = undefined;\n this._priv = undefined;\n this._primeCode = undefined;\n if (malleable) {\n this.setPublicKey = setPublicKey;\n this.setPrivateKey = setPrivateKey;\n } else {\n this._primeCode = 8;\n }\n}\nObject.defineProperty(DH.prototype, 'verifyError', {\n enumerable: true,\n get: function () {\n if (typeof this._primeCode !== 'number') {\n this._primeCode = checkPrime(this.__prime, this.__gen);\n }\n return this._primeCode;\n }\n});\nDH.prototype.generateKeys = function () {\n if (!this._priv) {\n this._priv = new BN(randomBytes(this._primeLen));\n }\n this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed();\n return this.getPublicKey();\n};\n\nDH.prototype.computeSecret = function (other) {\n other = new BN(other);\n other = other.toRed(this._prime);\n var secret = other.redPow(this._priv).fromRed();\n var out = new Buffer(secret.toArray());\n var prime = this.getPrime();\n if (out.length < prime.length) {\n var front = new Buffer(prime.length - out.length);\n front.fill(0);\n out = Buffer.concat([front, out]);\n }\n return out;\n};\n\nDH.prototype.getPublicKey = function getPublicKey(enc) {\n return formatReturnValue(this._pub, enc);\n};\n\nDH.prototype.getPrivateKey = function getPrivateKey(enc) {\n return formatReturnValue(this._priv, enc);\n};\n\nDH.prototype.getPrime = function (enc) {\n return formatReturnValue(this.__prime, enc);\n};\n\nDH.prototype.getGenerator = function (enc) {\n return formatReturnValue(this._gen, enc);\n};\n\nDH.prototype.setGenerator = function (gen, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(gen)) {\n gen = new Buffer(gen, enc);\n }\n this.__gen = gen;\n this._gen = new BN(gen);\n return this;\n};\n\nfunction formatReturnValue(bn, enc) {\n var buf = new Buffer(bn.toArray());\n if (!enc) {\n return buf;\n } else {\n return buf.toString(enc);\n }\n}\n","var randomBytes = require('randombytes');\nmodule.exports = findPrime;\nfindPrime.simpleSieve = simpleSieve;\nfindPrime.fermatTest = fermatTest;\nvar BN = require('bn.js');\nvar TWENTYFOUR = new BN(24);\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar ONE = new BN(1);\nvar TWO = new BN(2);\nvar FIVE = new BN(5);\nvar SIXTEEN = new BN(16);\nvar EIGHT = new BN(8);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar ELEVEN = new BN(11);\nvar FOUR = new BN(4);\nvar TWELVE = new BN(12);\nvar primes = null;\n\nfunction _getPrimes() {\n if (primes !== null)\n return primes;\n\n var limit = 0x100000;\n var res = [];\n res[0] = 2;\n for (var i = 1, k = 3; k < limit; k += 2) {\n var sqrt = Math.ceil(Math.sqrt(k));\n for (var j = 0; j < i && res[j] <= sqrt; j++)\n if (k % res[j] === 0)\n break;\n\n if (i !== j && res[j] <= sqrt)\n continue;\n\n res[i++] = k;\n }\n primes = res;\n return res;\n}\n\nfunction simpleSieve(p) {\n var primes = _getPrimes();\n\n for (var i = 0; i < primes.length; i++)\n if (p.modn(primes[i]) === 0) {\n if (p.cmpn(primes[i]) === 0) {\n return true;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\nfunction fermatTest(p) {\n var red = BN.mont(p);\n return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0;\n}\n\nfunction findPrime(bits, gen) {\n if (bits < 16) {\n // this is what openssl does\n if (gen === 2 || gen === 5) {\n return new BN([0x8c, 0x7b]);\n } else {\n return new BN([0x8c, 0x27]);\n }\n }\n gen = new BN(gen);\n\n var num, n2;\n\n while (true) {\n num = new BN(randomBytes(Math.ceil(bits / 8)));\n while (num.bitLength() > bits) {\n num.ishrn(1);\n }\n if (num.isEven()) {\n num.iadd(ONE);\n }\n if (!num.testn(1)) {\n num.iadd(TWO);\n }\n if (!gen.cmp(TWO)) {\n while (num.mod(TWENTYFOUR).cmp(ELEVEN)) {\n num.iadd(FOUR);\n }\n } else if (!gen.cmp(FIVE)) {\n while (num.mod(TEN).cmp(THREE)) {\n num.iadd(FOUR);\n }\n }\n n2 = num.shrn(1);\n if (simpleSieve(n2) && simpleSieve(num) &&\n fermatTest(n2) && fermatTest(num) &&\n millerRabin.test(n2) && millerRabin.test(num)) {\n return num;\n }\n }\n\n}\n","'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n // NOTE: Important as we are creating point in Base.call()\n this.twisted = (conf.a | 0) !== 1;\n this.mOneA = this.twisted && (conf.a | 0) === -1;\n this.extended = this.mOneA;\n\n Base.call(this, 'edwards', conf);\n\n this.a = new BN(conf.a, 16).umod(this.red.m);\n this.a = this.a.toRed(this.red);\n this.c = new BN(conf.c, 16).toRed(this.red);\n this.c2 = this.c.redSqr();\n this.d = new BN(conf.d, 16).toRed(this.red);\n this.dd = this.d.redAdd(this.d);\n\n assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n this.oneC = (conf.c | 0) === 1;\n}\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n if (this.mOneA)\n return num.redNeg();\n else\n return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n if (this.oneC)\n return num;\n else\n return this.c.redMul(num);\n};\n\n// Just for compatibility with Short curve\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var x2 = x.redSqr();\n var rhs = this.c2.redSub(this.a.redMul(x2));\n var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n\n var y2 = rhs.redMul(lhs.redInvm());\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n y = new BN(y, 16);\n if (!y.red)\n y = y.toRed(this.red);\n\n // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n var y2 = y.redSqr();\n var lhs = y2.redSub(this.c2);\n var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n var x2 = lhs.redMul(rhs.redInvm());\n\n if (x2.cmp(this.zero) === 0) {\n if (odd)\n throw new Error('invalid point');\n else\n return this.point(this.zero, y);\n }\n\n var x = x2.redSqrt();\n if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n if (x.fromRed().isOdd() !== odd)\n x = x.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n if (point.isInfinity())\n return true;\n\n // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n point.normalize();\n\n var x2 = point.x.redSqr();\n var y2 = point.y.redSqr();\n var lhs = x2.redMul(this.a).redAdd(y2);\n var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n\n return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && y === null && z === null) {\n this.x = this.curve.zero;\n this.y = this.curve.one;\n this.z = this.curve.one;\n this.t = this.curve.zero;\n this.zOne = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = z ? new BN(z, 16) : this.curve.one;\n this.t = t && new BN(t, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n if (this.t && !this.t.red)\n this.t = this.t.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n\n // Use extended coordinates\n if (this.curve.extended && !this.t) {\n this.t = this.x.redMul(this.y);\n if (!this.zOne)\n this.t = this.t.redMul(this.z.redInvm());\n }\n }\n}\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.x.cmpn(0) === 0 &&\n (this.y.cmp(this.z) === 0 ||\n (this.zOne && this.y.cmp(this.curve.c) === 0));\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #doubling-dbl-2008-hwcd\n // 4M + 4S\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = 2 * Z1^2\n var c = this.z.redSqr();\n c = c.redIAdd(c);\n // D = a * A\n var d = this.curve._mulA(a);\n // E = (X1 + Y1)^2 - A - B\n var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);\n // G = D + B\n var g = d.redAdd(b);\n // F = G - C\n var f = g.redSub(c);\n // H = D - B\n var h = d.redSub(b);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #doubling-dbl-2008-bbjlp\n // #doubling-dbl-2007-bl\n // and others\n // Generally 3M + 4S or 2M + 4S\n\n // B = (X1 + Y1)^2\n var b = this.x.redAdd(this.y).redSqr();\n // C = X1^2\n var c = this.x.redSqr();\n // D = Y1^2\n var d = this.y.redSqr();\n\n var nx;\n var ny;\n var nz;\n var e;\n var h;\n var j;\n if (this.curve.twisted) {\n // E = a * C\n e = this.curve._mulA(c);\n // F = E + D\n var f = e.redAdd(d);\n if (this.zOne) {\n // X3 = (B - C - D) * (F - 2)\n nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F^2 - 2 * F\n nz = f.redSqr().redSub(f).redSub(f);\n } else {\n // H = Z1^2\n h = this.z.redSqr();\n // J = F - 2 * H\n j = f.redSub(h).redISub(h);\n // X3 = (B-C-D)*J\n nx = b.redSub(c).redISub(d).redMul(j);\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F * J\n nz = f.redMul(j);\n }\n } else {\n // E = C + D\n e = c.redAdd(d);\n // H = (c * Z1)^2\n h = this.curve._mulC(this.z).redSqr();\n // J = E - 2 * H\n j = e.redSub(h).redSub(h);\n // X3 = c * (B - E) * J\n nx = this.curve._mulC(b.redISub(e)).redMul(j);\n // Y3 = c * E * (C - D)\n ny = this.curve._mulC(e).redMul(c.redISub(d));\n // Z3 = E * J\n nz = e.redMul(j);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n // Double in extended coordinates\n if (this.curve.extended)\n return this._extDbl();\n else\n return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #addition-add-2008-hwcd-3\n // 8M\n\n // A = (Y1 - X1) * (Y2 - X2)\n var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));\n // B = (Y1 + X1) * (Y2 + X2)\n var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));\n // C = T1 * k * T2\n var c = this.t.redMul(this.curve.dd).redMul(p.t);\n // D = Z1 * 2 * Z2\n var d = this.z.redMul(p.z.redAdd(p.z));\n // E = B - A\n var e = b.redSub(a);\n // F = D - C\n var f = d.redSub(c);\n // G = D + C\n var g = d.redAdd(c);\n // H = B + A\n var h = b.redAdd(a);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #addition-add-2008-bbjlp\n // #addition-add-2007-bl\n // 10M + 1S\n\n // A = Z1 * Z2\n var a = this.z.redMul(p.z);\n // B = A^2\n var b = a.redSqr();\n // C = X1 * X2\n var c = this.x.redMul(p.x);\n // D = Y1 * Y2\n var d = this.y.redMul(p.y);\n // E = d * C * D\n var e = this.curve.d.redMul(c).redMul(d);\n // F = B - E\n var f = b.redSub(e);\n // G = B + E\n var g = b.redAdd(e);\n // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n var nx = a.redMul(f).redMul(tmp);\n var ny;\n var nz;\n if (this.curve.twisted) {\n // Y3 = A * G * (D - a * C)\n ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));\n // Z3 = F * G\n nz = f.redMul(g);\n } else {\n // Y3 = A * G * (D - C)\n ny = a.redMul(g).redMul(d.redSub(c));\n // Z3 = c * F * G\n nz = this.curve._mulC(f).redMul(g);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n if (this.isInfinity())\n return p;\n if (p.isInfinity())\n return this;\n\n if (this.curve.extended)\n return this._extAdd(p);\n else\n return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n if (this.zOne)\n return this;\n\n // Normalize coordinates\n var zi = this.z.redInvm();\n this.x = this.x.redMul(zi);\n this.y = this.y.redMul(zi);\n if (this.t)\n this.t = this.t.redMul(zi);\n this.z = this.curve.one;\n this.zOne = true;\n return this;\n};\n\nPoint.prototype.neg = function neg() {\n return this.curve.point(this.x.redNeg(),\n this.y,\n this.z,\n this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n this.normalize();\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n this.normalize();\n return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n return this === other ||\n this.getX().cmp(other.getX()) === 0 &&\n this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n var rx = x.toRed(this.curve.red).redMul(this.z);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(this.z);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\n// Compatibility with BaseCurve\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\n","'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n","'use strict';\n\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar utils = require('../utils');\n\nfunction MontCurve(conf) {\n Base.call(this, 'mont', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.i4 = new BN(4).toRed(this.red).redInvm();\n this.two = new BN(2).toRed(this.red);\n this.a24 = this.i4.redMul(this.a.redAdd(this.two));\n}\ninherits(MontCurve, Base);\nmodule.exports = MontCurve;\n\nMontCurve.prototype.validate = function validate(point) {\n var x = point.normalize().x;\n var x2 = x.redSqr();\n var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);\n var y = rhs.redSqrt();\n\n return y.redSqr().cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, z) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && z === null) {\n this.x = this.curve.one;\n this.z = this.curve.zero;\n } else {\n this.x = new BN(x, 16);\n this.z = new BN(z, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n }\n}\ninherits(Point, Base.BasePoint);\n\nMontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n return this.point(utils.toArray(bytes, enc), 1);\n};\n\nMontCurve.prototype.point = function point(x, z) {\n return new Point(this, x, z);\n};\n\nMontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nPoint.prototype.precompute = function precompute() {\n // No-op\n};\n\nPoint.prototype._encode = function _encode() {\n return this.getX().toArray('be', this.curve.p.byteLength());\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1] || curve.one);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nPoint.prototype.dbl = function dbl() {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3\n // 2M + 2S + 4A\n\n // A = X1 + Z1\n var a = this.x.redAdd(this.z);\n // AA = A^2\n var aa = a.redSqr();\n // B = X1 - Z1\n var b = this.x.redSub(this.z);\n // BB = B^2\n var bb = b.redSqr();\n // C = AA - BB\n var c = aa.redSub(bb);\n // X3 = AA * BB\n var nx = aa.redMul(bb);\n // Z3 = C * (BB + A24 * C)\n var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.add = function add() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.diffAdd = function diffAdd(p, diff) {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3\n // 4M + 2S + 6A\n\n // A = X2 + Z2\n var a = this.x.redAdd(this.z);\n // B = X2 - Z2\n var b = this.x.redSub(this.z);\n // C = X3 + Z3\n var c = p.x.redAdd(p.z);\n // D = X3 - Z3\n var d = p.x.redSub(p.z);\n // DA = D * A\n var da = d.redMul(a);\n // CB = C * B\n var cb = c.redMul(b);\n // X5 = Z1 * (DA + CB)^2\n var nx = diff.z.redMul(da.redAdd(cb).redSqr());\n // Z5 = X1 * (DA - CB)^2\n var nz = diff.x.redMul(da.redISub(cb).redSqr());\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.mul = function mul(k) {\n var t = k.clone();\n var a = this; // (N / 2) * Q + Q\n var b = this.curve.point(null, null); // (N / 2) * Q\n var c = this; // Q\n\n for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))\n bits.push(t.andln(1));\n\n for (var i = bits.length - 1; i >= 0; i--) {\n if (bits[i] === 0) {\n // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q\n a = a.diffAdd(b, c);\n // N * Q = 2 * ((N / 2) * Q + Q))\n b = b.dbl();\n } else {\n // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)\n b = a.diffAdd(b, c);\n // N * Q + Q = 2 * ((N / 2) * Q + Q)\n a = a.dbl();\n }\n }\n return b;\n};\n\nPoint.prototype.mulAdd = function mulAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.jumlAdd = function jumlAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.eq = function eq(other) {\n return this.getX().cmp(other.getX()) === 0;\n};\n\nPoint.prototype.normalize = function normalize() {\n this.x = this.x.redMul(this.z.redInvm());\n this.z = this.curve.one;\n return this;\n};\n\nPoint.prototype.getX = function getX() {\n // Normalize coordinates\n this.normalize();\n\n return this.x.fromRed();\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n","'use strict';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(Object.prototype.hasOwnProperty.call(curves, options),\n 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly) {\n var delta = msg.byteLength() * 8 - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(new BN(msg, 16));\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc) {\n msg = this._truncateToN(new BN(msg, 16));\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature) {\n return this.ec.verify(msg, signature, this);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n","'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n if(buf[p.place] === 0x00) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n if ((data[p.place] & 128) !== 0) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n if ((data[p.place] & 128) !== 0) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n","'use strict';\n\nvar hash = require('hash.js');\nvar curves = require('../curves');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EDDSA(curve) {\n assert(curve === 'ed25519', 'only tested with ed25519 so far');\n\n if (!(this instanceof EDDSA))\n return new EDDSA(curve);\n\n curve = curves[curve].curve;\n this.curve = curve;\n this.g = curve.g;\n this.g.precompute(curve.n.bitLength() + 1);\n\n this.pointClass = curve.point().constructor;\n this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\nEDDSA.prototype.sign = function sign(message, secret) {\n message = parseBytes(message);\n var key = this.keyFromSecret(secret);\n var r = this.hashInt(key.messagePrefix(), message);\n var R = this.g.mul(r);\n var Rencoded = this.encodePoint(R);\n var s_ = this.hashInt(Rencoded, key.pubBytes(), message)\n .mul(key.priv());\n var S = r.add(s_).umod(this.curve.n);\n return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });\n};\n\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n message = parseBytes(message);\n sig = this.makeSignature(sig);\n if (sig.S().gte(sig.eddsa.curve.n) || sig.S().isNeg()) {\n return false;\n }\n var key = this.keyFromPublic(pub);\n var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n var SG = this.g.mul(sig.S());\n var RplusAh = sig.R().add(key.pub().mul(h));\n return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n var hash = this.hash();\n for (var i = 0; i < arguments.length; i++)\n hash.update(arguments[i]);\n return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n if (sig instanceof Signature)\n return sig;\n return new Signature(this, sig);\n};\n\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n var enc = point.getY().toArray('le', this.encodingLength);\n enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n bytes = utils.parseBytes(bytes);\n\n var lastIx = bytes.length - 1;\n var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n\n var y = utils.intFromLE(normed);\n return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n return val instanceof this.pointClass;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array} [params.pub] - public key point encoded as bytes\n*\n*/\nfunction KeyPair(eddsa, params) {\n this.eddsa = eddsa;\n this._secret = parseBytes(params.secret);\n if (eddsa.isPoint(params.pub))\n this._pub = params.pub;\n else\n this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n if (pub instanceof KeyPair)\n return pub;\n return new KeyPair(eddsa, { pub: pub });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n if (secret instanceof KeyPair)\n return secret;\n return new KeyPair(eddsa, { secret: secret });\n};\n\nKeyPair.prototype.secret = function secret() {\n return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n return this.eddsa.encodePoint(this.pub());\n});\n\ncachedProperty(KeyPair, 'pub', function pub() {\n if (this._pubBytes)\n return this.eddsa.decodePoint(this._pubBytes);\n return this.eddsa.g.mul(this.priv());\n});\n\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n var eddsa = this.eddsa;\n var hash = this.hash();\n var lastIx = eddsa.encodingLength - 1;\n\n var a = hash.slice(0, eddsa.encodingLength);\n a[0] &= 248;\n a[lastIx] &= 127;\n a[lastIx] |= 64;\n\n return a;\n});\n\ncachedProperty(KeyPair, 'priv', function priv() {\n return this.eddsa.decodeInt(this.privBytes());\n});\n\ncachedProperty(KeyPair, 'hash', function hash() {\n return this.eddsa.hash().update(this.secret()).digest();\n});\n\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n assert(this._secret, 'KeyPair can only verify');\n return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n assert(this._secret, 'KeyPair is public only');\n return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array|Object} sig -\n* @param {Array|Point} [sig.R] - R point as Point or bytes\n* @param {Array|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array} [sig.Rencoded] - R point encoded\n* @param {Array} [sig.Sencoded] - S scalar encoded\n*/\nfunction Signature(eddsa, sig) {\n this.eddsa = eddsa;\n\n if (typeof sig !== 'object')\n sig = parseBytes(sig);\n\n if (Array.isArray(sig)) {\n assert(sig.length === eddsa.encodingLength * 2, 'Signature has invalid size');\n sig = {\n R: sig.slice(0, eddsa.encodingLength),\n S: sig.slice(eddsa.encodingLength),\n };\n }\n\n assert(sig.R && sig.S, 'Signature without R or S');\n\n if (eddsa.isPoint(sig.R))\n this._R = sig.R;\n if (sig.S instanceof BN)\n this._S = sig.S;\n\n this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n return this.eddsa.decodeInt(this.Sencoded());\n});\n\ncachedProperty(Signature, 'R', function R() {\n return this.eddsa.decodePoint(this.Rencoded());\n});\n\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n return this.eddsa.encodePoint(this.R());\n});\n\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n","module.exports = {\n doubles: {\n step: 4,\n points: [\n [\n 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',\n 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821',\n ],\n [\n '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',\n '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf',\n ],\n [\n '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',\n 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695',\n ],\n [\n '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',\n '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9',\n ],\n [\n '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',\n '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36',\n ],\n [\n '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',\n '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f',\n ],\n [\n 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',\n '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999',\n ],\n [\n '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',\n 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09',\n ],\n [\n 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',\n '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d',\n ],\n [\n 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',\n 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088',\n ],\n [\n 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',\n '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d',\n ],\n [\n '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',\n '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8',\n ],\n [\n '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',\n '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a',\n ],\n [\n '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',\n '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453',\n ],\n [\n '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',\n '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160',\n ],\n [\n '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',\n '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0',\n ],\n [\n '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',\n '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6',\n ],\n [\n '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',\n '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589',\n ],\n [\n '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',\n 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17',\n ],\n [\n 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',\n '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda',\n ],\n [\n 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',\n '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd',\n ],\n [\n '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',\n '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2',\n ],\n [\n '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',\n '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6',\n ],\n [\n 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',\n '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f',\n ],\n [\n '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',\n 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01',\n ],\n [\n 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',\n '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3',\n ],\n [\n 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',\n 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f',\n ],\n [\n 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',\n '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7',\n ],\n [\n 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',\n 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78',\n ],\n [\n 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',\n '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1',\n ],\n [\n '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',\n 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150',\n ],\n [\n '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',\n '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82',\n ],\n [\n 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',\n '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc',\n ],\n [\n '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',\n 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b',\n ],\n [\n 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',\n '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51',\n ],\n [\n 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',\n '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45',\n ],\n [\n 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',\n 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120',\n ],\n [\n '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',\n '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84',\n ],\n [\n '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',\n '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d',\n ],\n [\n '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',\n 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d',\n ],\n [\n '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',\n '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8',\n ],\n [\n 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',\n '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8',\n ],\n [\n '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',\n '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac',\n ],\n [\n '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',\n 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f',\n ],\n [\n '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',\n '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962',\n ],\n [\n 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',\n '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907',\n ],\n [\n '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',\n 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec',\n ],\n [\n 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',\n 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d',\n ],\n [\n 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',\n '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414',\n ],\n [\n '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',\n 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd',\n ],\n [\n '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',\n 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0',\n ],\n [\n 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',\n '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811',\n ],\n [\n 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',\n '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1',\n ],\n [\n 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',\n '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c',\n ],\n [\n '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',\n 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73',\n ],\n [\n '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',\n '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd',\n ],\n [\n 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',\n 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405',\n ],\n [\n '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',\n 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589',\n ],\n [\n '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',\n '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e',\n ],\n [\n '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',\n '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27',\n ],\n [\n 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',\n 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1',\n ],\n [\n '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',\n '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482',\n ],\n [\n '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',\n '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945',\n ],\n [\n 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',\n '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573',\n ],\n [\n 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',\n 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82',\n ],\n ],\n },\n naf: {\n wnd: 7,\n points: [\n [\n 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',\n '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672',\n ],\n [\n '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',\n 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6',\n ],\n [\n '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',\n '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da',\n ],\n [\n 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',\n 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37',\n ],\n [\n '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',\n 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b',\n ],\n [\n 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',\n 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81',\n ],\n [\n 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',\n '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58',\n ],\n [\n 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',\n '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77',\n ],\n [\n '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',\n '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a',\n ],\n [\n '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',\n '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c',\n ],\n [\n '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',\n '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67',\n ],\n [\n '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',\n '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402',\n ],\n [\n 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',\n 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55',\n ],\n [\n 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',\n '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482',\n ],\n [\n '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',\n 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82',\n ],\n [\n '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',\n 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396',\n ],\n [\n '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',\n '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49',\n ],\n [\n '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',\n '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf',\n ],\n [\n '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',\n '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a',\n ],\n [\n '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',\n 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7',\n ],\n [\n 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',\n 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933',\n ],\n [\n '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',\n '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a',\n ],\n [\n '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',\n '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6',\n ],\n [\n 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',\n 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37',\n ],\n [\n '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',\n '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e',\n ],\n [\n 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',\n 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6',\n ],\n [\n 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',\n 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476',\n ],\n [\n '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',\n '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40',\n ],\n [\n '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',\n '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61',\n ],\n [\n '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',\n '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683',\n ],\n [\n 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',\n '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5',\n ],\n [\n '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',\n '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b',\n ],\n [\n 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',\n '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417',\n ],\n [\n '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',\n 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868',\n ],\n [\n '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',\n 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a',\n ],\n [\n 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',\n 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6',\n ],\n [\n '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',\n '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996',\n ],\n [\n '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',\n 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e',\n ],\n [\n 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',\n 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d',\n ],\n [\n '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',\n '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2',\n ],\n [\n '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',\n 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e',\n ],\n [\n '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',\n '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437',\n ],\n [\n '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',\n 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311',\n ],\n [\n 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',\n '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4',\n ],\n [\n '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',\n '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575',\n ],\n [\n '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',\n 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d',\n ],\n [\n '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',\n 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d',\n ],\n [\n 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',\n 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629',\n ],\n [\n 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',\n 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06',\n ],\n [\n '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',\n '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374',\n ],\n [\n '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',\n '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee',\n ],\n [\n 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',\n '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1',\n ],\n [\n 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',\n 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b',\n ],\n [\n '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',\n '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661',\n ],\n [\n '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',\n '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6',\n ],\n [\n 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',\n '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e',\n ],\n [\n '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',\n '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d',\n ],\n [\n 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',\n 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc',\n ],\n [\n '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',\n 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4',\n ],\n [\n '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',\n '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c',\n ],\n [\n 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',\n '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b',\n ],\n [\n 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',\n '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913',\n ],\n [\n '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',\n '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154',\n ],\n [\n '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',\n '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865',\n ],\n [\n '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',\n 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc',\n ],\n [\n '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',\n 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224',\n ],\n [\n '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',\n '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e',\n ],\n [\n '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',\n '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6',\n ],\n [\n '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',\n '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511',\n ],\n [\n '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',\n 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b',\n ],\n [\n 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',\n 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2',\n ],\n [\n '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',\n 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c',\n ],\n [\n 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',\n '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3',\n ],\n [\n 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',\n '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d',\n ],\n [\n 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',\n '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700',\n ],\n [\n 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',\n '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4',\n ],\n [\n '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',\n 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196',\n ],\n [\n '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',\n '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4',\n ],\n [\n '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',\n 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257',\n ],\n [\n 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',\n 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13',\n ],\n [\n 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',\n '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096',\n ],\n [\n 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',\n 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38',\n ],\n [\n 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',\n '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f',\n ],\n [\n '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',\n '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448',\n ],\n [\n 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',\n '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a',\n ],\n [\n 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',\n '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4',\n ],\n [\n '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',\n '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437',\n ],\n [\n '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',\n 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7',\n ],\n [\n 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',\n '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d',\n ],\n [\n 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',\n '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a',\n ],\n [\n 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',\n '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54',\n ],\n [\n '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',\n '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77',\n ],\n [\n 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',\n 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517',\n ],\n [\n '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',\n 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10',\n ],\n [\n 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',\n 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125',\n ],\n [\n 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',\n '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e',\n ],\n [\n '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',\n 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1',\n ],\n [\n 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',\n '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2',\n ],\n [\n 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',\n '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423',\n ],\n [\n 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',\n '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8',\n ],\n [\n '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',\n 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758',\n ],\n [\n '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',\n 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375',\n ],\n [\n 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',\n '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d',\n ],\n [\n '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',\n 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec',\n ],\n [\n '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',\n '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0',\n ],\n [\n '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',\n 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c',\n ],\n [\n 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',\n 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4',\n ],\n [\n '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',\n 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f',\n ],\n [\n '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',\n '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649',\n ],\n [\n '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',\n 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826',\n ],\n [\n '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',\n '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5',\n ],\n [\n 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',\n 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87',\n ],\n [\n '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',\n '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b',\n ],\n [\n 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',\n '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc',\n ],\n [\n '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',\n '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c',\n ],\n [\n 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',\n 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f',\n ],\n [\n 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',\n '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a',\n ],\n [\n 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',\n 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46',\n ],\n [\n '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',\n 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f',\n ],\n [\n '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',\n '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03',\n ],\n [\n '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',\n 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08',\n ],\n [\n '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',\n '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8',\n ],\n [\n '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',\n '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373',\n ],\n [\n '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',\n 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3',\n ],\n [\n '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',\n '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8',\n ],\n [\n '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',\n '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1',\n ],\n [\n '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',\n '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9',\n ],\n ],\n },\n};\n","'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n var i;\n for (i = 0; i < naf.length; i += 1) {\n naf[i] = 0;\n }\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","var Buffer = require('safe-buffer').Buffer\nvar MD5 = require('md5.js')\n\n/* eslint-disable camelcase */\nfunction EVP_BytesToKey (password, salt, keyBits, ivLen) {\n if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary')\n if (salt) {\n if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary')\n if (salt.length !== 8) throw new RangeError('salt should be Buffer with 8 byte length')\n }\n\n var keyLen = keyBits / 8\n var key = Buffer.alloc(keyLen)\n var iv = Buffer.alloc(ivLen || 0)\n var tmp = Buffer.alloc(0)\n\n while (keyLen > 0 || ivLen > 0) {\n var hash = new MD5()\n hash.update(tmp)\n hash.update(password)\n if (salt) hash.update(salt)\n tmp = hash.digest()\n\n var used = 0\n\n if (keyLen > 0) {\n var keyStart = key.length - keyLen\n used = Math.min(keyLen, tmp.length)\n tmp.copy(key, keyStart, 0, used)\n keyLen -= used\n }\n\n if (used < tmp.length && ivLen > 0) {\n var ivStart = iv.length - ivLen\n var length = Math.min(ivLen, tmp.length - used)\n tmp.copy(iv, ivStart, used, used + length)\n ivLen -= length\n }\n }\n\n tmp.fill(0)\n return { key: key, iv: iv }\n}\n\nmodule.exports = EVP_BytesToKey\n","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\n\n\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\n\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\n\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n'use strict';\n\nvar validateFormat = process.env.NODE_ENV !== \"production\" ? function (format) {\n if (format === undefined) {\n throw new Error('invariant(...): Second argument must be a string.');\n }\n} : function (format) {};\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments to provide\n * information about what broke and what you were expecting.\n *\n * The invariant message will be stripped in production, but the invariant will\n * remain to ensure logic does not differ in production.\n */\n\nfunction invariant(condition, format) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n validateFormat(format);\n\n if (!condition) {\n var error;\n\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return String(args[argIndex++]);\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // Skip invariant's own stack frame.\n\n throw error;\n }\n}\n\nmodule.exports = invariant;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n'use strict';\n\nvar emptyFunction = require(\"./emptyFunction\");\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\n\nfunction printWarning(format) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n}\n\nvar warning = process.env.NODE_ENV !== \"production\" ? function (condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(void 0, [format].concat(args));\n }\n} : emptyFunction;\nmodule.exports = warning;","/* Font Face Observer v2.3.0 - © Bram Stein. License: BSD-3-Clause */(function(){function p(a,c){document.addEventListener?a.addEventListener(\"scroll\",c,!1):a.attachEvent(\"scroll\",c)}function u(a){document.body?a():document.addEventListener?document.addEventListener(\"DOMContentLoaded\",function b(){document.removeEventListener(\"DOMContentLoaded\",b);a()}):document.attachEvent(\"onreadystatechange\",function g(){if(\"interactive\"==document.readyState||\"complete\"==document.readyState)document.detachEvent(\"onreadystatechange\",g),a()})};function w(a){this.g=document.createElement(\"div\");this.g.setAttribute(\"aria-hidden\",\"true\");this.g.appendChild(document.createTextNode(a));this.h=document.createElement(\"span\");this.i=document.createElement(\"span\");this.m=document.createElement(\"span\");this.j=document.createElement(\"span\");this.l=-1;this.h.style.cssText=\"max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;\";this.i.style.cssText=\"max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;\";\nthis.j.style.cssText=\"max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;\";this.m.style.cssText=\"display:inline-block;width:200%;height:200%;font-size:16px;max-width:none;\";this.h.appendChild(this.m);this.i.appendChild(this.j);this.g.appendChild(this.h);this.g.appendChild(this.i)}\nfunction x(a,c){a.g.style.cssText=\"max-width:none;min-width:20px;min-height:20px;display:inline-block;overflow:hidden;position:absolute;width:auto;margin:0;padding:0;top:-999px;white-space:nowrap;font-synthesis:none;font:\"+c+\";\"}function B(a){var c=a.g.offsetWidth,b=c+100;a.j.style.width=b+\"px\";a.i.scrollLeft=b;a.h.scrollLeft=a.h.scrollWidth+100;return a.l!==c?(a.l=c,!0):!1}function C(a,c){function b(){var e=g;B(e)&&null!==e.g.parentNode&&c(e.l)}var g=a;p(a.h,b);p(a.i,b);B(a)};function D(a,c,b){c=c||{};b=b||window;this.family=a;this.style=c.style||\"normal\";this.weight=c.weight||\"normal\";this.stretch=c.stretch||\"normal\";this.context=b}var E=null,F=null,G=null,H=null;function I(a){null===F&&(M(a)&&/Apple/.test(window.navigator.vendor)?(a=/AppleWebKit\\/([0-9]+)(?:\\.([0-9]+))(?:\\.([0-9]+))/.exec(window.navigator.userAgent),F=!!a&&603>parseInt(a[1],10)):F=!1);return F}function M(a){null===H&&(H=!!a.document.fonts);return H}\nfunction N(a,c){var b=a.style,g=a.weight;if(null===G){var e=document.createElement(\"div\");try{e.style.font=\"condensed 100px sans-serif\"}catch(q){}G=\"\"!==e.style.font}return[b,g,G?a.stretch:\"\",\"100px\",c].join(\" \")}\nD.prototype.load=function(a,c){var b=this,g=a||\"BESbswy\",e=0,q=c||3E3,J=(new Date).getTime();return new Promise(function(K,L){if(M(b.context)&&!I(b.context)){var O=new Promise(function(r,t){function h(){(new Date).getTime()-J>=q?t(Error(\"\"+q+\"ms timeout exceeded\")):b.context.document.fonts.load(N(b,'\"'+b.family+'\"'),g).then(function(n){1<=n.length?r():setTimeout(h,25)},t)}h()}),P=new Promise(function(r,t){e=setTimeout(function(){t(Error(\"\"+q+\"ms timeout exceeded\"))},q)});Promise.race([P,O]).then(function(){clearTimeout(e);\nK(b)},L)}else u(function(){function r(){var d;if(d=-1!=k&&-1!=l||-1!=k&&-1!=m||-1!=l&&-1!=m)(d=k!=l&&k!=m&&l!=m)||(null===E&&(d=/AppleWebKit\\/([0-9]+)(?:\\.([0-9]+))/.exec(window.navigator.userAgent),E=!!d&&(536>parseInt(d[1],10)||536===parseInt(d[1],10)&&11>=parseInt(d[2],10))),d=E&&(k==y&&l==y&&m==y||k==z&&l==z&&m==z||k==A&&l==A&&m==A)),d=!d;d&&(null!==f.parentNode&&f.parentNode.removeChild(f),clearTimeout(e),K(b))}function t(){if((new Date).getTime()-J>=q)null!==f.parentNode&&f.parentNode.removeChild(f),\nL(Error(\"\"+q+\"ms timeout exceeded\"));else{var d=b.context.document.hidden;if(!0===d||void 0===d)k=h.g.offsetWidth,l=n.g.offsetWidth,m=v.g.offsetWidth,r();e=setTimeout(t,50)}}var h=new w(g),n=new w(g),v=new w(g),k=-1,l=-1,m=-1,y=-1,z=-1,A=-1,f=document.createElement(\"div\");f.dir=\"ltr\";x(h,N(b,\"sans-serif\"));x(n,N(b,\"serif\"));x(v,N(b,\"monospace\"));f.appendChild(h.g);f.appendChild(n.g);f.appendChild(v.g);b.context.document.body.appendChild(f);y=h.g.offsetWidth;z=n.g.offsetWidth;A=v.g.offsetWidth;t();\nC(h,function(d){k=d;r()});x(h,N(b,'\"'+b.family+'\",sans-serif'));C(n,function(d){l=d;r()});x(n,N(b,'\"'+b.family+'\",serif'));C(v,function(d){m=d;r()});x(v,N(b,'\"'+b.family+'\",monospace'))})})};\"object\"===typeof module?module.exports=D:(window.FontFaceObserver=D,window.FontFaceObserver.prototype.load=D.prototype.load);}());\n","var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize)\n key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize);\n\n // Add padding to key\n for (var i = key.length; i < this.blockSize; i++)\n key.push(0);\n\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x36;\n this.inner = new this.Hash().update(key);\n\n // 0x36 ^ 0x5c = 0x6a\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x6a;\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n\n BlockHash.call(this);\n\n this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\n var A = this.h[0];\n var B = this.h[1];\n var C = this.h[2];\n var D = this.h[3];\n var E = this.h[4];\n var Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n s[j]),\n E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]),\n Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'little');\n else\n return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return (x & y) | ((~x) & z);\n else if (j <= 47)\n return (x | (~y)) ^ z;\n else if (j <= 63)\n return (x & z) | (y & (~z));\n else\n return x ^ (y | (~z));\n}\n\nfunction K(j) {\n if (j <= 15)\n return 0x00000000;\n else if (j <= 31)\n return 0x5a827999;\n else if (j <= 47)\n return 0x6ed9eba1;\n else if (j <= 63)\n return 0x8f1bbcdc;\n else\n return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15)\n return 0x50a28be6;\n else if (j <= 31)\n return 0x5c4dd124;\n else if (j <= 47)\n return 0x6d703ef3;\n else if (j <= 63)\n return 0x7a6d76e9;\n else\n return 0x00000000;\n}\n\nvar r = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar rh = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar s = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sh = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n","'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n\n SHA512.call(this);\n this.h = [\n 0xcbbb9d5d, 0xc1059ed8,\n 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17,\n 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31,\n 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7,\n 0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 12), 'big');\n else\n return utils.split32(this.h.slice(0, 12), 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n","'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n","'use strict';\n\nvar hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n","/* eslint-disable no-var, prefer-template */\nvar uppercasePattern = /[A-Z]/g\nvar msPattern = /^ms-/\nvar cache = {}\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase()\n}\n\nfunction hyphenateStyleName(name) {\n if (cache.hasOwnProperty(name)) {\n return cache[name]\n }\n\n var hName = name.replace(uppercasePattern, toHyphenLower)\n return (cache[name] = msPattern.test(hName) ? '-' + hName : hName)\n}\n\nexport default hyphenateStyleName\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createPrefixer;\n\nvar _prefixProperty = require('./utils/prefixProperty');\n\nvar _prefixProperty2 = _interopRequireDefault(_prefixProperty);\n\nvar _prefixValue = require('./utils/prefixValue');\n\nvar _prefixValue2 = _interopRequireDefault(_prefixValue);\n\nvar _addNewValuesOnly = require('./utils/addNewValuesOnly');\n\nvar _addNewValuesOnly2 = _interopRequireDefault(_addNewValuesOnly);\n\nvar _isObject = require('./utils/isObject');\n\nvar _isObject2 = _interopRequireDefault(_isObject);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction createPrefixer(_ref) {\n var prefixMap = _ref.prefixMap,\n plugins = _ref.plugins;\n\n return function prefix(style) {\n for (var property in style) {\n var value = style[property];\n\n // handle nested objects\n if ((0, _isObject2.default)(value)) {\n style[property] = prefix(value);\n // handle array values\n } else if (Array.isArray(value)) {\n var combinedValue = [];\n\n for (var i = 0, len = value.length; i < len; ++i) {\n var processedValue = (0, _prefixValue2.default)(plugins, property, value[i], style, prefixMap);\n\n (0, _addNewValuesOnly2.default)(combinedValue, processedValue || value[i]);\n }\n\n // only modify the value if it was touched\n // by any plugin to prevent unnecessary mutations\n if (combinedValue.length > 0) {\n style[property] = combinedValue;\n }\n } else {\n var _processedValue = (0, _prefixValue2.default)(plugins, property, value, style, prefixMap);\n\n // only modify the value if it was touched\n // by any plugin to prevent unnecessary mutations\n if (_processedValue) {\n style[property] = _processedValue;\n }\n\n style = (0, _prefixProperty2.default)(prefixMap, property, style);\n }\n }\n\n return style;\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = backgroundClip;\nfunction backgroundClip() {\n return null;\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = crossFade;\n\nvar _cssInJsUtils = require('css-in-js-utils');\n\nvar CROSS_FADE_REGEX = /cross-fade\\(/g;\n// http://caniuse.com/#search=cross-fade\nvar prefixes = ['-webkit-', ''];\n\nfunction crossFade(property, value) {\n if (typeof value === 'string' && !(0, _cssInJsUtils.isPrefixedValue)(value) && value.indexOf('cross-fade(') !== -1) {\n return prefixes.map(function (prefix) {\n return value.replace(CROSS_FADE_REGEX, prefix + 'cross-fade(');\n });\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = cursor;\nvar prefixes = ['-webkit-', '-moz-', ''];\n\nvar values = {\n 'zoom-in': true,\n 'zoom-out': true,\n grab: true,\n grabbing: true\n};\n\nfunction cursor(property, value) {\n if (property === 'cursor' && values.hasOwnProperty(value)) {\n return prefixes.map(function (prefix) {\n return prefix + value;\n });\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = filter;\n\nvar _cssInJsUtils = require('css-in-js-utils');\n\nvar FILTER_REGEX = /filter\\(/g;\n// http://caniuse.com/#feat=css-filter-function\nvar prefixes = ['-webkit-', ''];\n\nfunction filter(property, value) {\n if (typeof value === 'string' && !(0, _cssInJsUtils.isPrefixedValue)(value) && value.indexOf('filter(') !== -1) {\n return prefixes.map(function (prefix) {\n return value.replace(FILTER_REGEX, prefix + 'filter(');\n });\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = imageSet;\n\nvar _isPrefixedValue = require('css-in-js-utils/lib/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// http://caniuse.com/#feat=css-image-set\nvar prefixes = ['-webkit-', ''];\n\nfunction imageSet(property, value) {\n if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && value.indexOf('image-set(') > -1) {\n return prefixes.map(function (prefix) {\n return value.replace(/image-set\\(/g, prefix + 'image-set(');\n });\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = logical;\nvar alternativeProps = {\n marginBlockStart: ['WebkitMarginBefore'],\n marginBlockEnd: ['WebkitMarginAfter'],\n marginInlineStart: ['WebkitMarginStart', 'MozMarginStart'],\n marginInlineEnd: ['WebkitMarginEnd', 'MozMarginEnd'],\n paddingBlockStart: ['WebkitPaddingBefore'],\n paddingBlockEnd: ['WebkitPaddingAfter'],\n paddingInlineStart: ['WebkitPaddingStart', 'MozPaddingStart'],\n paddingInlineEnd: ['WebkitPaddingEnd', 'MozPaddingEnd'],\n borderBlockStart: ['WebkitBorderBefore'],\n borderBlockStartColor: ['WebkitBorderBeforeColor'],\n borderBlockStartStyle: ['WebkitBorderBeforeStyle'],\n borderBlockStartWidth: ['WebkitBorderBeforeWidth'],\n borderBlockEnd: ['WebkitBorderAfter'],\n borderBlockEndColor: ['WebkitBorderAfterColor'],\n borderBlockEndStyle: ['WebkitBorderAfterStyle'],\n borderBlockEndWidth: ['WebkitBorderAfterWidth'],\n borderInlineStart: ['WebkitBorderStart', 'MozBorderStart'],\n borderInlineStartColor: ['WebkitBorderStartColor', 'MozBorderStartColor'],\n borderInlineStartStyle: ['WebkitBorderStartStyle', 'MozBorderStartStyle'],\n borderInlineStartWidth: ['WebkitBorderStartWidth', 'MozBorderStartWidth'],\n borderInlineEnd: ['WebkitBorderEnd', 'MozBorderEnd'],\n borderInlineEndColor: ['WebkitBorderEndColor', 'MozBorderEndColor'],\n borderInlineEndStyle: ['WebkitBorderEndStyle', 'MozBorderEndStyle'],\n borderInlineEndWidth: ['WebkitBorderEndWidth', 'MozBorderEndWidth']\n};\n\nfunction logical(property, value, style) {\n if (Object.prototype.hasOwnProperty.call(alternativeProps, property)) {\n var alternativePropList = alternativeProps[property];\n for (var i = 0, len = alternativePropList.length; i < len; ++i) {\n style[alternativePropList[i]] = value;\n }\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = position;\nfunction position(property, value) {\n if (property === 'position' && value === 'sticky') {\n return ['-webkit-sticky', 'sticky'];\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = sizing;\nvar prefixes = ['-webkit-', '-moz-', ''];\n\nvar properties = {\n maxHeight: true,\n maxWidth: true,\n width: true,\n height: true,\n columnWidth: true,\n minWidth: true,\n minHeight: true\n};\nvar values = {\n 'min-content': true,\n 'max-content': true,\n 'fill-available': true,\n 'fit-content': true,\n 'contain-floats': true\n};\n\nfunction sizing(property, value) {\n if (properties.hasOwnProperty(property) && values.hasOwnProperty(value)) {\n return prefixes.map(function (prefix) {\n return prefix + value;\n });\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = transition;\n\nvar _hyphenateProperty = require('css-in-js-utils/lib/hyphenateProperty');\n\nvar _hyphenateProperty2 = _interopRequireDefault(_hyphenateProperty);\n\nvar _isPrefixedValue = require('css-in-js-utils/lib/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nvar _capitalizeString = require('../utils/capitalizeString');\n\nvar _capitalizeString2 = _interopRequireDefault(_capitalizeString);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar properties = {\n transition: true,\n transitionProperty: true,\n WebkitTransition: true,\n WebkitTransitionProperty: true,\n MozTransition: true,\n MozTransitionProperty: true\n};\n\nvar prefixMapping = {\n Webkit: '-webkit-',\n Moz: '-moz-',\n ms: '-ms-'\n};\n\nfunction prefixValue(value, propertyPrefixMap) {\n if ((0, _isPrefixedValue2.default)(value)) {\n return value;\n }\n\n // only split multi values, not cubic beziers\n var multipleValues = value.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g);\n\n for (var i = 0, len = multipleValues.length; i < len; ++i) {\n var singleValue = multipleValues[i];\n var values = [singleValue];\n for (var property in propertyPrefixMap) {\n var dashCaseProperty = (0, _hyphenateProperty2.default)(property);\n\n if (singleValue.indexOf(dashCaseProperty) > -1 && dashCaseProperty !== 'order') {\n var prefixes = propertyPrefixMap[property];\n for (var j = 0, pLen = prefixes.length; j < pLen; ++j) {\n // join all prefixes and create a new value\n values.unshift(singleValue.replace(dashCaseProperty, prefixMapping[prefixes[j]] + dashCaseProperty));\n }\n }\n }\n\n multipleValues[i] = values.join(',');\n }\n\n return multipleValues.join(',');\n}\n\nfunction transition(property, value, style, propertyPrefixMap) {\n // also check for already prefixed transitions\n if (typeof value === 'string' && properties.hasOwnProperty(property)) {\n var outputValue = prefixValue(value, propertyPrefixMap);\n // if the property is already prefixed\n var webkitOutput = outputValue.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g).filter(function (val) {\n return !/-moz-|-ms-/.test(val);\n }).join(',');\n\n if (property.indexOf('Webkit') > -1) {\n return webkitOutput;\n }\n\n var mozOutput = outputValue.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g).filter(function (val) {\n return !/-webkit-|-ms-/.test(val);\n }).join(',');\n\n if (property.indexOf('Moz') > -1) {\n return mozOutput;\n }\n\n style['Webkit' + (0, _capitalizeString2.default)(property)] = webkitOutput;\n style['Moz' + (0, _capitalizeString2.default)(property)] = mozOutput;\n return outputValue;\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = addNewValuesOnly;\nfunction addIfNew(list, value) {\n if (list.indexOf(value) === -1) {\n list.push(value);\n }\n}\n\nfunction addNewValuesOnly(list, values) {\n if (Array.isArray(values)) {\n for (var i = 0, len = values.length; i < len; ++i) {\n addIfNew(list, values[i]);\n }\n } else {\n addIfNew(list, values);\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = capitalizeString;\nfunction capitalizeString(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isObject;\nfunction isObject(value) {\n return value instanceof Object && !Array.isArray(value);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = prefixProperty;\n\nvar _capitalizeString = require('./capitalizeString');\n\nvar _capitalizeString2 = _interopRequireDefault(_capitalizeString);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction prefixProperty(prefixProperties, property, style) {\n var requiredPrefixes = prefixProperties[property];\n\n if (requiredPrefixes && style.hasOwnProperty(property)) {\n var capitalizedProperty = (0, _capitalizeString2.default)(property);\n\n for (var i = 0; i < requiredPrefixes.length; ++i) {\n var prefixedProperty = requiredPrefixes[i] + capitalizedProperty;\n\n if (!style[prefixedProperty]) {\n style[prefixedProperty] = style[property];\n }\n }\n }\n\n return style;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = prefixValue;\nfunction prefixValue(plugins, property, value, style, metaData) {\n for (var i = 0, len = plugins.length; i < len; ++i) {\n var processedValue = plugins[i](property, value, style, metaData);\n\n // we can stop processing if a value is returned\n // as all plugin criteria are unique\n if (processedValue) {\n return processedValue;\n }\n }\n}","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n arrayMap = require('./_arrayMap'),\n baseUnary = require('./_baseUnary'),\n cacheHas = require('./_cacheHas');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\nfunction baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseDifference;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var assignValue = require('./_assignValue'),\n copyObject = require('./_copyObject'),\n createAssigner = require('./_createAssigner'),\n isArrayLike = require('./isArrayLike'),\n isPrototype = require('./_isPrototype'),\n keys = require('./keys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\nmodule.exports = assign;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","var baseDifference = require('./_baseDifference'),\n baseFlatten = require('./_baseFlatten'),\n baseRest = require('./_baseRest'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n last = require('./last');\n\n/**\n * This method is like `_.difference` except that it accepts `comparator`\n * which is invoked to compare elements of `array` to `values`. The order and\n * references of result values are determined by the first array. The comparator\n * is invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.pullAllWith`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n *\n * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }]\n */\nvar differenceWith = baseRest(function(array, values) {\n var comparator = last(values);\n if (isArrayLikeObject(comparator)) {\n comparator = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator)\n : [];\n});\n\nmodule.exports = differenceWith;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIteratee = require('./_baseIteratee'),\n toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nmodule.exports = findIndex;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","'use strict'\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\nvar Buffer = require('safe-buffer').Buffer\n\nvar ARRAY16 = new Array(16)\n\nfunction MD5 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n}\n\ninherits(MD5, HashBase)\n\nMD5.prototype._update = function () {\n var M = ARRAY16\n for (var i = 0; i < 16; ++i) M[i] = this._block.readInt32LE(i * 4)\n\n var a = this._a\n var b = this._b\n var c = this._c\n var d = this._d\n\n a = fnF(a, b, c, d, M[0], 0xd76aa478, 7)\n d = fnF(d, a, b, c, M[1], 0xe8c7b756, 12)\n c = fnF(c, d, a, b, M[2], 0x242070db, 17)\n b = fnF(b, c, d, a, M[3], 0xc1bdceee, 22)\n a = fnF(a, b, c, d, M[4], 0xf57c0faf, 7)\n d = fnF(d, a, b, c, M[5], 0x4787c62a, 12)\n c = fnF(c, d, a, b, M[6], 0xa8304613, 17)\n b = fnF(b, c, d, a, M[7], 0xfd469501, 22)\n a = fnF(a, b, c, d, M[8], 0x698098d8, 7)\n d = fnF(d, a, b, c, M[9], 0x8b44f7af, 12)\n c = fnF(c, d, a, b, M[10], 0xffff5bb1, 17)\n b = fnF(b, c, d, a, M[11], 0x895cd7be, 22)\n a = fnF(a, b, c, d, M[12], 0x6b901122, 7)\n d = fnF(d, a, b, c, M[13], 0xfd987193, 12)\n c = fnF(c, d, a, b, M[14], 0xa679438e, 17)\n b = fnF(b, c, d, a, M[15], 0x49b40821, 22)\n\n a = fnG(a, b, c, d, M[1], 0xf61e2562, 5)\n d = fnG(d, a, b, c, M[6], 0xc040b340, 9)\n c = fnG(c, d, a, b, M[11], 0x265e5a51, 14)\n b = fnG(b, c, d, a, M[0], 0xe9b6c7aa, 20)\n a = fnG(a, b, c, d, M[5], 0xd62f105d, 5)\n d = fnG(d, a, b, c, M[10], 0x02441453, 9)\n c = fnG(c, d, a, b, M[15], 0xd8a1e681, 14)\n b = fnG(b, c, d, a, M[4], 0xe7d3fbc8, 20)\n a = fnG(a, b, c, d, M[9], 0x21e1cde6, 5)\n d = fnG(d, a, b, c, M[14], 0xc33707d6, 9)\n c = fnG(c, d, a, b, M[3], 0xf4d50d87, 14)\n b = fnG(b, c, d, a, M[8], 0x455a14ed, 20)\n a = fnG(a, b, c, d, M[13], 0xa9e3e905, 5)\n d = fnG(d, a, b, c, M[2], 0xfcefa3f8, 9)\n c = fnG(c, d, a, b, M[7], 0x676f02d9, 14)\n b = fnG(b, c, d, a, M[12], 0x8d2a4c8a, 20)\n\n a = fnH(a, b, c, d, M[5], 0xfffa3942, 4)\n d = fnH(d, a, b, c, M[8], 0x8771f681, 11)\n c = fnH(c, d, a, b, M[11], 0x6d9d6122, 16)\n b = fnH(b, c, d, a, M[14], 0xfde5380c, 23)\n a = fnH(a, b, c, d, M[1], 0xa4beea44, 4)\n d = fnH(d, a, b, c, M[4], 0x4bdecfa9, 11)\n c = fnH(c, d, a, b, M[7], 0xf6bb4b60, 16)\n b = fnH(b, c, d, a, M[10], 0xbebfbc70, 23)\n a = fnH(a, b, c, d, M[13], 0x289b7ec6, 4)\n d = fnH(d, a, b, c, M[0], 0xeaa127fa, 11)\n c = fnH(c, d, a, b, M[3], 0xd4ef3085, 16)\n b = fnH(b, c, d, a, M[6], 0x04881d05, 23)\n a = fnH(a, b, c, d, M[9], 0xd9d4d039, 4)\n d = fnH(d, a, b, c, M[12], 0xe6db99e5, 11)\n c = fnH(c, d, a, b, M[15], 0x1fa27cf8, 16)\n b = fnH(b, c, d, a, M[2], 0xc4ac5665, 23)\n\n a = fnI(a, b, c, d, M[0], 0xf4292244, 6)\n d = fnI(d, a, b, c, M[7], 0x432aff97, 10)\n c = fnI(c, d, a, b, M[14], 0xab9423a7, 15)\n b = fnI(b, c, d, a, M[5], 0xfc93a039, 21)\n a = fnI(a, b, c, d, M[12], 0x655b59c3, 6)\n d = fnI(d, a, b, c, M[3], 0x8f0ccc92, 10)\n c = fnI(c, d, a, b, M[10], 0xffeff47d, 15)\n b = fnI(b, c, d, a, M[1], 0x85845dd1, 21)\n a = fnI(a, b, c, d, M[8], 0x6fa87e4f, 6)\n d = fnI(d, a, b, c, M[15], 0xfe2ce6e0, 10)\n c = fnI(c, d, a, b, M[6], 0xa3014314, 15)\n b = fnI(b, c, d, a, M[13], 0x4e0811a1, 21)\n a = fnI(a, b, c, d, M[4], 0xf7537e82, 6)\n d = fnI(d, a, b, c, M[11], 0xbd3af235, 10)\n c = fnI(c, d, a, b, M[2], 0x2ad7d2bb, 15)\n b = fnI(b, c, d, a, M[9], 0xeb86d391, 21)\n\n this._a = (this._a + a) | 0\n this._b = (this._b + b) | 0\n this._c = (this._c + c) | 0\n this._d = (this._d + d) | 0\n}\n\nMD5.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.allocUnsafe(16)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fnF (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnG (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnH (a, b, c, d, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnI (a, b, c, d, m, k, s) {\n return (rotl((a + ((c ^ (b | (~d)))) + m + k) | 0, s) + b) | 0\n}\n\nmodule.exports = MD5\n","'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('readable-stream').Transform\nvar inherits = require('inherits')\n\nfunction throwIfNotStringOrBuffer (val, prefix) {\n if (!Buffer.isBuffer(val) && typeof val !== 'string') {\n throw new TypeError(prefix + ' must be a string or a buffer')\n }\n}\n\nfunction HashBase (blockSize) {\n Transform.call(this)\n\n this._block = Buffer.allocUnsafe(blockSize)\n this._blockSize = blockSize\n this._blockOffset = 0\n this._length = [0, 0, 0, 0]\n\n this._finalized = false\n}\n\ninherits(HashBase, Transform)\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype._flush = function (callback) {\n var error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype.update = function (data, encoding) {\n throwIfNotStringOrBuffer(data, 'Data')\n if (this._finalized) throw new Error('Digest already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n // consume data\n var block = this._block\n var offset = 0\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]\n this._update()\n this._blockOffset = 0\n }\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n\n // update length\n for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n this._length[j] += carry\n carry = (this._length[j] / 0x0100000000) | 0\n if (carry > 0) this._length[j] -= 0x0100000000 * carry\n }\n\n return this\n}\n\nHashBase.prototype._update = function () {\n throw new Error('_update is not implemented')\n}\n\nHashBase.prototype.digest = function (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n var digest = this._digest()\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n // reset state\n this._block.fill(0)\n this._blockOffset = 0\n for (var i = 0; i < 4; ++i) this._length[i] = 0\n\n return digest\n}\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented')\n}\n\nmodule.exports = HashBase\n","var bn = require('bn.js');\nvar brorand = require('brorand');\n\nfunction MillerRabin(rand) {\n this.rand = rand || new brorand.Rand();\n}\nmodule.exports = MillerRabin;\n\nMillerRabin.create = function create(rand) {\n return new MillerRabin(rand);\n};\n\nMillerRabin.prototype._randbelow = function _randbelow(n) {\n var len = n.bitLength();\n var min_bytes = Math.ceil(len / 8);\n\n // Generage random bytes until a number less than n is found.\n // This ensures that 0..n-1 have an equal probability of being selected.\n do\n var a = new bn(this.rand.generate(min_bytes));\n while (a.cmp(n) >= 0);\n\n return a;\n};\n\nMillerRabin.prototype._randrange = function _randrange(start, stop) {\n // Generate a random number greater than or equal to start and less than stop.\n var size = stop.sub(start);\n return start.add(this._randbelow(size));\n};\n\nMillerRabin.prototype.test = function test(n, k, cb) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n var prime = true;\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n if (cb)\n cb(a);\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return false;\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s)\n return false;\n }\n\n return prime;\n};\n\nMillerRabin.prototype.getDivisor = function getDivisor(n, k) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n\n var g = n.gcd(a);\n if (g.cmpn(1) !== 0)\n return g;\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return x.fromRed().subn(1).gcd(n);\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s) {\n x = x.redSqr();\n return x.fromRed().subn(1).gcd(n);\n }\n }\n\n return false;\n};\n","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n","'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n","'use strict';\n\nfunction nullthrows(x, message) {\n if (x != null) {\n return x;\n }\n var error = new Error(message !== undefined ? message : 'Got unexpected ' + x);\n error.framesToPop = 1; // Skip nullthrows's own stack frame.\n throw error;\n}\n\nmodule.exports = nullthrows;\nmodule.exports.default = nullthrows;\n\nObject.defineProperty(module.exports, '__esModule', {value: true});\n","// from https://github.com/indutny/self-signed/blob/gh-pages/lib/asn1.js\n// Fedor, you are amazing.\n\n'use strict';\n\nvar asn1 = require('asn1.js');\n\nexports.certificate = require('./certificate');\n\nvar RSAPrivateKey = asn1.define('RSAPrivateKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('modulus')['int'](),\n\t\tthis.key('publicExponent')['int'](),\n\t\tthis.key('privateExponent')['int'](),\n\t\tthis.key('prime1')['int'](),\n\t\tthis.key('prime2')['int'](),\n\t\tthis.key('exponent1')['int'](),\n\t\tthis.key('exponent2')['int'](),\n\t\tthis.key('coefficient')['int']()\n\t);\n});\nexports.RSAPrivateKey = RSAPrivateKey;\n\nvar RSAPublicKey = asn1.define('RSAPublicKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('modulus')['int'](),\n\t\tthis.key('publicExponent')['int']()\n\t);\n});\nexports.RSAPublicKey = RSAPublicKey;\n\nvar AlgorithmIdentifier = asn1.define('AlgorithmIdentifier', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').objid(),\n\t\tthis.key('none').null_().optional(),\n\t\tthis.key('curve').objid().optional(),\n\t\tthis.key('params').seq().obj(\n\t\t\tthis.key('p')['int'](),\n\t\t\tthis.key('q')['int'](),\n\t\t\tthis.key('g')['int']()\n\t\t).optional()\n\t);\n});\n\nvar PublicKey = asn1.define('SubjectPublicKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').use(AlgorithmIdentifier),\n\t\tthis.key('subjectPublicKey').bitstr()\n\t);\n});\nexports.PublicKey = PublicKey;\n\nvar PrivateKeyInfo = asn1.define('PrivateKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('algorithm').use(AlgorithmIdentifier),\n\t\tthis.key('subjectPrivateKey').octstr()\n\t);\n});\nexports.PrivateKey = PrivateKeyInfo;\nvar EncryptedPrivateKeyInfo = asn1.define('EncryptedPrivateKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').seq().obj(\n\t\t\tthis.key('id').objid(),\n\t\t\tthis.key('decrypt').seq().obj(\n\t\t\t\tthis.key('kde').seq().obj(\n\t\t\t\t\tthis.key('id').objid(),\n\t\t\t\t\tthis.key('kdeparams').seq().obj(\n\t\t\t\t\t\tthis.key('salt').octstr(),\n\t\t\t\t\t\tthis.key('iters')['int']()\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t\tthis.key('cipher').seq().obj(\n\t\t\t\t\tthis.key('algo').objid(),\n\t\t\t\t\tthis.key('iv').octstr()\n\t\t\t\t)\n\t\t\t)\n\t\t),\n\t\tthis.key('subjectPrivateKey').octstr()\n\t);\n});\n\nexports.EncryptedPrivateKey = EncryptedPrivateKeyInfo;\n\nvar DSAPrivateKey = asn1.define('DSAPrivateKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('p')['int'](),\n\t\tthis.key('q')['int'](),\n\t\tthis.key('g')['int'](),\n\t\tthis.key('pub_key')['int'](),\n\t\tthis.key('priv_key')['int']()\n\t);\n});\nexports.DSAPrivateKey = DSAPrivateKey;\n\nexports.DSAparam = asn1.define('DSAparam', function () {\n\tthis['int']();\n});\n\nvar ECParameters = asn1.define('ECParameters', function () {\n\tthis.choice({\n\t\tnamedCurve: this.objid()\n\t});\n});\n\nvar ECPrivateKey = asn1.define('ECPrivateKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('privateKey').octstr(),\n\t\tthis.key('parameters').optional().explicit(0).use(ECParameters),\n\t\tthis.key('publicKey').optional().explicit(1).bitstr()\n\t);\n});\nexports.ECPrivateKey = ECPrivateKey;\n\nexports.signature = asn1.define('signature', function () {\n\tthis.seq().obj(\n\t\tthis.key('r')['int'](),\n\t\tthis.key('s')['int']()\n\t);\n});\n","// from https://github.com/Rantanen/node-dtls/blob/25a7dc861bda38cfeac93a723500eea4f0ac2e86/Certificate.js\n// thanks to @Rantanen\n\n'use strict';\n\nvar asn = require('asn1.js');\n\nvar Time = asn.define('Time', function () {\n\tthis.choice({\n\t\tutcTime: this.utctime(),\n\t\tgeneralTime: this.gentime()\n\t});\n});\n\nvar AttributeTypeValue = asn.define('AttributeTypeValue', function () {\n\tthis.seq().obj(\n\t\tthis.key('type').objid(),\n\t\tthis.key('value').any()\n\t);\n});\n\nvar AlgorithmIdentifier = asn.define('AlgorithmIdentifier', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').objid(),\n\t\tthis.key('parameters').optional(),\n\t\tthis.key('curve').objid().optional()\n\t);\n});\n\nvar SubjectPublicKeyInfo = asn.define('SubjectPublicKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').use(AlgorithmIdentifier),\n\t\tthis.key('subjectPublicKey').bitstr()\n\t);\n});\n\nvar RelativeDistinguishedName = asn.define('RelativeDistinguishedName', function () {\n\tthis.setof(AttributeTypeValue);\n});\n\nvar RDNSequence = asn.define('RDNSequence', function () {\n\tthis.seqof(RelativeDistinguishedName);\n});\n\nvar Name = asn.define('Name', function () {\n\tthis.choice({\n\t\trdnSequence: this.use(RDNSequence)\n\t});\n});\n\nvar Validity = asn.define('Validity', function () {\n\tthis.seq().obj(\n\t\tthis.key('notBefore').use(Time),\n\t\tthis.key('notAfter').use(Time)\n\t);\n});\n\nvar Extension = asn.define('Extension', function () {\n\tthis.seq().obj(\n\t\tthis.key('extnID').objid(),\n\t\tthis.key('critical').bool().def(false),\n\t\tthis.key('extnValue').octstr()\n\t);\n});\n\nvar TBSCertificate = asn.define('TBSCertificate', function () {\n\tthis.seq().obj(\n\t\tthis.key('version').explicit(0)['int']().optional(),\n\t\tthis.key('serialNumber')['int'](),\n\t\tthis.key('signature').use(AlgorithmIdentifier),\n\t\tthis.key('issuer').use(Name),\n\t\tthis.key('validity').use(Validity),\n\t\tthis.key('subject').use(Name),\n\t\tthis.key('subjectPublicKeyInfo').use(SubjectPublicKeyInfo),\n\t\tthis.key('issuerUniqueID').implicit(1).bitstr().optional(),\n\t\tthis.key('subjectUniqueID').implicit(2).bitstr().optional(),\n\t\tthis.key('extensions').explicit(3).seqof(Extension).optional()\n\t);\n});\n\nvar X509Certificate = asn.define('X509Certificate', function () {\n\tthis.seq().obj(\n\t\tthis.key('tbsCertificate').use(TBSCertificate),\n\t\tthis.key('signatureAlgorithm').use(AlgorithmIdentifier),\n\t\tthis.key('signatureValue').bitstr()\n\t);\n});\n\nmodule.exports = X509Certificate;\n","'use strict';\n\n// adapted from https://github.com/apatil/pemstrip\nvar findProc = /Proc-Type: 4,ENCRYPTED[\\n\\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\\n\\r]+([0-9A-z\\n\\r+/=]+)[\\n\\r]+/m;\nvar startRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m;\nvar fullRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\\n\\r+/=]+)-----END \\1-----$/m;\nvar evp = require('evp_bytestokey');\nvar ciphers = require('browserify-aes');\nvar Buffer = require('safe-buffer').Buffer;\nmodule.exports = function (okey, password) {\n\tvar key = okey.toString();\n\tvar match = key.match(findProc);\n\tvar decrypted;\n\tif (!match) {\n\t\tvar match2 = key.match(fullRegex);\n\t\tdecrypted = Buffer.from(match2[2].replace(/[\\r\\n]/g, ''), 'base64');\n\t} else {\n\t\tvar suite = 'aes' + match[1];\n\t\tvar iv = Buffer.from(match[2], 'hex');\n\t\tvar cipherText = Buffer.from(match[3].replace(/[\\r\\n]/g, ''), 'base64');\n\t\tvar cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key;\n\t\tvar out = [];\n\t\tvar cipher = ciphers.createDecipheriv(suite, cipherKey, iv);\n\t\tout.push(cipher.update(cipherText));\n\t\tout.push(cipher['final']());\n\t\tdecrypted = Buffer.concat(out);\n\t}\n\tvar tag = key.match(startRegex)[1];\n\treturn {\n\t\ttag: tag,\n\t\tdata: decrypted\n\t};\n};\n","'use strict';\n\nvar asn1 = require('./asn1');\nvar aesid = require('./aesid.json');\nvar fixProc = require('./fixProc');\nvar ciphers = require('browserify-aes');\nvar compat = require('pbkdf2');\nvar Buffer = require('safe-buffer').Buffer;\n\nfunction decrypt(data, password) {\n\tvar salt = data.algorithm.decrypt.kde.kdeparams.salt;\n\tvar iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10);\n\tvar algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')];\n\tvar iv = data.algorithm.decrypt.cipher.iv;\n\tvar cipherText = data.subjectPrivateKey;\n\tvar keylen = parseInt(algo.split('-')[1], 10) / 8;\n\tvar key = compat.pbkdf2Sync(password, salt, iters, keylen, 'sha1');\n\tvar cipher = ciphers.createDecipheriv(algo, key, iv);\n\tvar out = [];\n\tout.push(cipher.update(cipherText));\n\tout.push(cipher['final']());\n\treturn Buffer.concat(out);\n}\n\nfunction parseKeys(buffer) {\n\tvar password;\n\tif (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) {\n\t\tpassword = buffer.passphrase;\n\t\tbuffer = buffer.key;\n\t}\n\tif (typeof buffer === 'string') {\n\t\tbuffer = Buffer.from(buffer);\n\t}\n\n\tvar stripped = fixProc(buffer, password);\n\n\tvar type = stripped.tag;\n\tvar data = stripped.data;\n\tvar subtype, ndata;\n\tswitch (type) {\n\t\tcase 'CERTIFICATE':\n\t\t\tndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo;\n\t\t\t// falls through\n\t\tcase 'PUBLIC KEY':\n\t\t\tif (!ndata) {\n\t\t\t\tndata = asn1.PublicKey.decode(data, 'der');\n\t\t\t}\n\t\t\tsubtype = ndata.algorithm.algorithm.join('.');\n\t\t\tswitch (subtype) {\n\t\t\t\tcase '1.2.840.113549.1.1.1':\n\t\t\t\t\treturn asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der');\n\t\t\t\tcase '1.2.840.10045.2.1':\n\t\t\t\t\tndata.subjectPrivateKey = ndata.subjectPublicKey;\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'ec',\n\t\t\t\t\t\tdata: ndata\n\t\t\t\t\t};\n\t\t\t\tcase '1.2.840.10040.4.1':\n\t\t\t\t\tndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, 'der');\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'dsa',\n\t\t\t\t\t\tdata: ndata.algorithm.params\n\t\t\t\t\t};\n\t\t\t\tdefault: throw new Error('unknown key id ' + subtype);\n\t\t\t}\n\t\t\t// throw new Error('unknown key type ' + type)\n\t\tcase 'ENCRYPTED PRIVATE KEY':\n\t\t\tdata = asn1.EncryptedPrivateKey.decode(data, 'der');\n\t\t\tdata = decrypt(data, password);\n\t\t\t// falls through\n\t\tcase 'PRIVATE KEY':\n\t\t\tndata = asn1.PrivateKey.decode(data, 'der');\n\t\t\tsubtype = ndata.algorithm.algorithm.join('.');\n\t\t\tswitch (subtype) {\n\t\t\t\tcase '1.2.840.113549.1.1.1':\n\t\t\t\t\treturn asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der');\n\t\t\t\tcase '1.2.840.10045.2.1':\n\t\t\t\t\treturn {\n\t\t\t\t\t\tcurve: ndata.algorithm.curve,\n\t\t\t\t\t\tprivateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der').privateKey\n\t\t\t\t\t};\n\t\t\t\tcase '1.2.840.10040.4.1':\n\t\t\t\t\tndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, 'der');\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'dsa',\n\t\t\t\t\t\tparams: ndata.algorithm.params\n\t\t\t\t\t};\n\t\t\t\tdefault: throw new Error('unknown key id ' + subtype);\n\t\t\t}\n\t\t\t// throw new Error('unknown key type ' + type)\n\t\tcase 'RSA PUBLIC KEY':\n\t\t\treturn asn1.RSAPublicKey.decode(data, 'der');\n\t\tcase 'RSA PRIVATE KEY':\n\t\t\treturn asn1.RSAPrivateKey.decode(data, 'der');\n\t\tcase 'DSA PRIVATE KEY':\n\t\t\treturn {\n\t\t\t\ttype: 'dsa',\n\t\t\t\tparams: asn1.DSAPrivateKey.decode(data, 'der')\n\t\t\t};\n\t\tcase 'EC PRIVATE KEY':\n\t\t\tdata = asn1.ECPrivateKey.decode(data, 'der');\n\t\t\treturn {\n\t\t\t\tcurve: data.parameters.value,\n\t\t\t\tprivateKey: data.privateKey\n\t\t\t};\n\t\tdefault: throw new Error('unknown key type ' + type);\n\t}\n}\nparseKeys.signature = asn1.signature;\n\nmodule.exports = parseKeys;\n","exports.pbkdf2 = require('./lib/async')\nexports.pbkdf2Sync = require('./lib/sync')\n","var Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar sync = require('./sync')\nvar toBuffer = require('./to-buffer')\n\nvar ZERO_BUF\nvar subtle = global.crypto && global.crypto.subtle\nvar toBrowser = {\n sha: 'SHA-1',\n 'sha-1': 'SHA-1',\n sha1: 'SHA-1',\n sha256: 'SHA-256',\n 'sha-256': 'SHA-256',\n sha384: 'SHA-384',\n 'sha-384': 'SHA-384',\n 'sha-512': 'SHA-512',\n sha512: 'SHA-512'\n}\nvar checks = []\nfunction checkNative (algo) {\n if (global.process && !global.process.browser) {\n return Promise.resolve(false)\n }\n if (!subtle || !subtle.importKey || !subtle.deriveBits) {\n return Promise.resolve(false)\n }\n if (checks[algo] !== undefined) {\n return checks[algo]\n }\n ZERO_BUF = ZERO_BUF || Buffer.alloc(8)\n var prom = browserPbkdf2(ZERO_BUF, ZERO_BUF, 10, 128, algo)\n .then(function () {\n return true\n }).catch(function () {\n return false\n })\n checks[algo] = prom\n return prom\n}\nvar nextTick\nfunction getNextTick () {\n if (nextTick) {\n return nextTick\n }\n if (global.process && global.process.nextTick) {\n nextTick = global.process.nextTick\n } else if (global.queueMicrotask) {\n nextTick = global.queueMicrotask\n } else if (global.setImmediate) {\n nextTick = global.setImmediate\n } else {\n nextTick = global.setTimeout\n }\n return nextTick\n}\nfunction browserPbkdf2 (password, salt, iterations, length, algo) {\n return subtle.importKey(\n 'raw', password, { name: 'PBKDF2' }, false, ['deriveBits']\n ).then(function (key) {\n return subtle.deriveBits({\n name: 'PBKDF2',\n salt: salt,\n iterations: iterations,\n hash: {\n name: algo\n }\n }, key, length << 3)\n }).then(function (res) {\n return Buffer.from(res)\n })\n}\n\nfunction resolvePromise (promise, callback) {\n promise.then(function (out) {\n getNextTick()(function () {\n callback(null, out)\n })\n }, function (e) {\n getNextTick()(function () {\n callback(e)\n })\n })\n}\nmodule.exports = function (password, salt, iterations, keylen, digest, callback) {\n if (typeof digest === 'function') {\n callback = digest\n digest = undefined\n }\n\n digest = digest || 'sha1'\n var algo = toBrowser[digest.toLowerCase()]\n\n if (!algo || typeof global.Promise !== 'function') {\n getNextTick()(function () {\n var out\n try {\n out = sync(password, salt, iterations, keylen, digest)\n } catch (e) {\n return callback(e)\n }\n callback(null, out)\n })\n return\n }\n\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n if (typeof callback !== 'function') throw new Error('No callback provided to pbkdf2')\n\n resolvePromise(checkNative(algo).then(function (resp) {\n if (resp) return browserPbkdf2(password, salt, iterations, keylen, algo)\n\n return sync(password, salt, iterations, keylen, digest)\n }), callback)\n}\n","var defaultEncoding\n/* istanbul ignore next */\nif (global.process && global.process.browser) {\n defaultEncoding = 'utf-8'\n} else if (global.process && global.process.version) {\n var pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10)\n\n defaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary'\n} else {\n defaultEncoding = 'utf-8'\n}\nmodule.exports = defaultEncoding\n","var MAX_ALLOC = Math.pow(2, 30) - 1 // default in iojs\n\nmodule.exports = function (iterations, keylen) {\n if (typeof iterations !== 'number') {\n throw new TypeError('Iterations not a number')\n }\n\n if (iterations < 0) {\n throw new TypeError('Bad iterations')\n }\n\n if (typeof keylen !== 'number') {\n throw new TypeError('Key length not a number')\n }\n\n if (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) { /* eslint no-self-compare: 0 */\n throw new TypeError('Bad key length')\n }\n}\n","var md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar toBuffer = require('./to-buffer')\n\nvar ZEROS = Buffer.alloc(128)\nvar sizes = {\n md5: 16,\n sha1: 20,\n sha224: 28,\n sha256: 32,\n sha384: 48,\n sha512: 64,\n rmd160: 20,\n ripemd160: 20\n}\n\nfunction Hmac (alg, key, saltLen) {\n var hash = getDigest(alg)\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n if (key.length > blocksize) {\n key = hash(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = Buffer.allocUnsafe(blocksize + sizes[alg])\n var opad = Buffer.allocUnsafe(blocksize + sizes[alg])\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n var ipad1 = Buffer.allocUnsafe(blocksize + saltLen + 4)\n ipad.copy(ipad1, 0, 0, blocksize)\n this.ipad1 = ipad1\n this.ipad2 = ipad\n this.opad = opad\n this.alg = alg\n this.blocksize = blocksize\n this.hash = hash\n this.size = sizes[alg]\n}\n\nHmac.prototype.run = function (data, ipad) {\n data.copy(ipad, this.blocksize)\n var h = this.hash(ipad)\n h.copy(this.opad, this.blocksize)\n return this.hash(this.opad)\n}\n\nfunction getDigest (alg) {\n function shaFunc (data) {\n return sha(alg).update(data).digest()\n }\n function rmd160Func (data) {\n return new RIPEMD160().update(data).digest()\n }\n\n if (alg === 'rmd160' || alg === 'ripemd160') return rmd160Func\n if (alg === 'md5') return md5\n return shaFunc\n}\n\nfunction pbkdf2 (password, salt, iterations, keylen, digest) {\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n\n digest = digest || 'sha1'\n\n var hmac = new Hmac(digest, password, salt.length)\n\n var DK = Buffer.allocUnsafe(keylen)\n var block1 = Buffer.allocUnsafe(salt.length + 4)\n salt.copy(block1, 0, 0, salt.length)\n\n var destPos = 0\n var hLen = sizes[digest]\n var l = Math.ceil(keylen / hLen)\n\n for (var i = 1; i <= l; i++) {\n block1.writeUInt32BE(i, salt.length)\n\n var T = hmac.run(block1, hmac.ipad1)\n var U = T\n\n for (var j = 1; j < iterations; j++) {\n U = hmac.run(U, hmac.ipad2)\n for (var k = 0; k < hLen; k++) T[k] ^= U[k]\n }\n\n T.copy(DK, destPos)\n destPos += hLen\n }\n\n return DK\n}\n\nmodule.exports = pbkdf2\n","var Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (thing, encoding, name) {\n if (Buffer.isBuffer(thing)) {\n return thing\n } else if (typeof thing === 'string') {\n return Buffer.from(thing, encoding)\n } else if (ArrayBuffer.isView(thing)) {\n return Buffer.from(thing.buffer)\n } else {\n throw new TypeError(name + ' must be a string, a Buffer, a typed array or a DataView')\n }\n}\n","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","exports.publicEncrypt = require('./publicEncrypt')\nexports.privateDecrypt = require('./privateDecrypt')\n\nexports.privateEncrypt = function privateEncrypt (key, buf) {\n return exports.publicEncrypt(key, buf, true)\n}\n\nexports.publicDecrypt = function publicDecrypt (key, buf) {\n return exports.privateDecrypt(key, buf, true)\n}\n","var createHash = require('create-hash')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (seed, len) {\n var t = Buffer.alloc(0)\n var i = 0\n var c\n while (t.length < len) {\n c = i2ops(i++)\n t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()])\n }\n return t.slice(0, len)\n}\n\nfunction i2ops (c) {\n var out = Buffer.allocUnsafe(4)\n out.writeUInt32BE(c, 0)\n return out\n}\n","var parseKeys = require('parse-asn1')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar crt = require('browserify-rsa')\nvar createHash = require('create-hash')\nvar withPublic = require('./withPublic')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function privateDecrypt (privateKey, enc, reverse) {\n var padding\n if (privateKey.padding) {\n padding = privateKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n\n var key = parseKeys(privateKey)\n var k = key.modulus.byteLength()\n if (enc.length > k || new BN(enc).cmp(key.modulus) >= 0) {\n throw new Error('decryption error')\n }\n var msg\n if (reverse) {\n msg = withPublic(new BN(enc), key)\n } else {\n msg = crt(enc, key)\n }\n var zBuffer = Buffer.alloc(k - msg.length)\n msg = Buffer.concat([zBuffer, msg], k)\n if (padding === 4) {\n return oaep(key, msg)\n } else if (padding === 1) {\n return pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n return msg\n } else {\n throw new Error('unknown padding')\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n if (msg[0] !== 0) {\n throw new Error('decryption error')\n }\n var maskedSeed = msg.slice(1, hLen + 1)\n var maskedDb = msg.slice(hLen + 1)\n var seed = xor(maskedSeed, mgf(maskedDb, hLen))\n var db = xor(maskedDb, mgf(seed, k - hLen - 1))\n if (compare(iHash, db.slice(0, hLen))) {\n throw new Error('decryption error')\n }\n var i = hLen\n while (db[i] === 0) {\n i++\n }\n if (db[i++] !== 1) {\n throw new Error('decryption error')\n }\n return db.slice(i)\n}\n\nfunction pkcs1 (key, msg, reverse) {\n var p1 = msg.slice(0, 2)\n var i = 2\n var status = 0\n while (msg[i++] !== 0) {\n if (i >= msg.length) {\n status++\n break\n }\n }\n var ps = msg.slice(2, i - 1)\n\n if ((p1.toString('hex') !== '0002' && !reverse) || (p1.toString('hex') !== '0001' && reverse)) {\n status++\n }\n if (ps.length < 8) {\n status++\n }\n if (status) {\n throw new Error('decryption error')\n }\n return msg.slice(i)\n}\nfunction compare (a, b) {\n a = Buffer.from(a)\n b = Buffer.from(b)\n var dif = 0\n var len = a.length\n if (a.length !== b.length) {\n dif++\n len = Math.min(a.length, b.length)\n }\n var i = -1\n while (++i < len) {\n dif += (a[i] ^ b[i])\n }\n return dif\n}\n","var parseKeys = require('parse-asn1')\nvar randomBytes = require('randombytes')\nvar createHash = require('create-hash')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar withPublic = require('./withPublic')\nvar crt = require('browserify-rsa')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function publicEncrypt (publicKey, msg, reverse) {\n var padding\n if (publicKey.padding) {\n padding = publicKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n var key = parseKeys(publicKey)\n var paddedMsg\n if (padding === 4) {\n paddedMsg = oaep(key, msg)\n } else if (padding === 1) {\n paddedMsg = pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n paddedMsg = new BN(msg)\n if (paddedMsg.cmp(key.modulus) >= 0) {\n throw new Error('data too long for modulus')\n }\n } else {\n throw new Error('unknown padding')\n }\n if (reverse) {\n return crt(paddedMsg, key)\n } else {\n return withPublic(paddedMsg, key)\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var mLen = msg.length\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n var hLen2 = 2 * hLen\n if (mLen > k - hLen2 - 2) {\n throw new Error('message too long')\n }\n var ps = Buffer.alloc(k - mLen - hLen2 - 2)\n var dblen = k - hLen - 1\n var seed = randomBytes(hLen)\n var maskedDb = xor(Buffer.concat([iHash, ps, Buffer.alloc(1, 1), msg], dblen), mgf(seed, dblen))\n var maskedSeed = xor(seed, mgf(maskedDb, hLen))\n return new BN(Buffer.concat([Buffer.alloc(1), maskedSeed, maskedDb], k))\n}\nfunction pkcs1 (key, msg, reverse) {\n var mLen = msg.length\n var k = key.modulus.byteLength()\n if (mLen > k - 11) {\n throw new Error('message too long')\n }\n var ps\n if (reverse) {\n ps = Buffer.alloc(k - mLen - 3, 0xff)\n } else {\n ps = nonZero(k - mLen - 3)\n }\n return new BN(Buffer.concat([Buffer.from([0, reverse ? 1 : 2]), ps, Buffer.alloc(1), msg], k))\n}\nfunction nonZero (len) {\n var out = Buffer.allocUnsafe(len)\n var i = 0\n var cache = randomBytes(len * 2)\n var cur = 0\n var num\n while (i < len) {\n if (cur === cache.length) {\n cache = randomBytes(len * 2)\n cur = 0\n }\n num = cache[cur++]\n if (num) {\n out[i++] = num\n }\n }\n return out\n}\n","var BN = require('bn.js')\nvar Buffer = require('safe-buffer').Buffer\n\nfunction withPublic (paddedMsg, key) {\n return Buffer.from(paddedMsg\n .toRed(BN.mont(key.modulus))\n .redPow(new BN(key.publicExponent))\n .fromRed()\n .toArray())\n}\n\nmodule.exports = withPublic\n","module.exports = function xor (a, b) {\n var len = a.length\n var i = -1\n while (++i < len) {\n a[i] ^= b[i]\n }\n return a\n}\n","'use strict'\n\n// limit of Crypto.getRandomValues()\n// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\nvar MAX_BYTES = 65536\n\n// Node supports requesting up to this number of bytes\n// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48\nvar MAX_UINT32 = 4294967295\n\nfunction oldBrowser () {\n throw new Error('Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11')\n}\n\nvar Buffer = require('safe-buffer').Buffer\nvar crypto = global.crypto || global.msCrypto\n\nif (crypto && crypto.getRandomValues) {\n module.exports = randomBytes\n} else {\n module.exports = oldBrowser\n}\n\nfunction randomBytes (size, cb) {\n // phantomjs needs to throw\n if (size > MAX_UINT32) throw new RangeError('requested too many random bytes')\n\n var bytes = Buffer.allocUnsafe(size)\n\n if (size > 0) { // getRandomValues fails on IE if size == 0\n if (size > MAX_BYTES) { // this is the max bytes crypto.getRandomValues\n // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n for (var generated = 0; generated < size; generated += MAX_BYTES) {\n // buffer.slice automatically checks if the end is past the end of\n // the buffer so we don't have to here\n crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES))\n }\n } else {\n crypto.getRandomValues(bytes)\n }\n }\n\n if (typeof cb === 'function') {\n return process.nextTick(function () {\n cb(null, bytes)\n })\n }\n\n return bytes\n}\n","'use strict'\n\nfunction oldBrowser () {\n throw new Error('secure random number generation not supported by this browser\\nuse chrome, FireFox or Internet Explorer 11')\n}\nvar safeBuffer = require('safe-buffer')\nvar randombytes = require('randombytes')\nvar Buffer = safeBuffer.Buffer\nvar kBufferMaxLength = safeBuffer.kMaxLength\nvar crypto = global.crypto || global.msCrypto\nvar kMaxUint32 = Math.pow(2, 32) - 1\nfunction assertOffset (offset, length) {\n if (typeof offset !== 'number' || offset !== offset) { // eslint-disable-line no-self-compare\n throw new TypeError('offset must be a number')\n }\n\n if (offset > kMaxUint32 || offset < 0) {\n throw new TypeError('offset must be a uint32')\n }\n\n if (offset > kBufferMaxLength || offset > length) {\n throw new RangeError('offset out of range')\n }\n}\n\nfunction assertSize (size, offset, length) {\n if (typeof size !== 'number' || size !== size) { // eslint-disable-line no-self-compare\n throw new TypeError('size must be a number')\n }\n\n if (size > kMaxUint32 || size < 0) {\n throw new TypeError('size must be a uint32')\n }\n\n if (size + offset > length || size > kBufferMaxLength) {\n throw new RangeError('buffer too small')\n }\n}\nif ((crypto && crypto.getRandomValues) || !process.browser) {\n exports.randomFill = randomFill\n exports.randomFillSync = randomFillSync\n} else {\n exports.randomFill = oldBrowser\n exports.randomFillSync = oldBrowser\n}\nfunction randomFill (buf, offset, size, cb) {\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n if (typeof offset === 'function') {\n cb = offset\n offset = 0\n size = buf.length\n } else if (typeof size === 'function') {\n cb = size\n size = buf.length - offset\n } else if (typeof cb !== 'function') {\n throw new TypeError('\"cb\" argument must be a function')\n }\n assertOffset(offset, buf.length)\n assertSize(size, offset, buf.length)\n return actualFill(buf, offset, size, cb)\n}\n\nfunction actualFill (buf, offset, size, cb) {\n if (process.browser) {\n var ourBuf = buf.buffer\n var uint = new Uint8Array(ourBuf, offset, size)\n crypto.getRandomValues(uint)\n if (cb) {\n process.nextTick(function () {\n cb(null, buf)\n })\n return\n }\n return buf\n }\n if (cb) {\n randombytes(size, function (err, bytes) {\n if (err) {\n return cb(err)\n }\n bytes.copy(buf, offset)\n cb(null, buf)\n })\n return\n }\n var bytes = randombytes(size)\n bytes.copy(buf, offset)\n return buf\n}\nfunction randomFillSync (buf, offset, size) {\n if (typeof offset === 'undefined') {\n offset = 0\n }\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n assertOffset(offset, buf.length)\n\n if (size === undefined) size = buf.length - offset\n\n assertSize(size, offset, buf.length)\n\n return actualFill(buf, offset, size)\n}\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n};\n/**/\n\nmodule.exports = Duplex;\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\nrequire('inherits')(Duplex, Readable);\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n process.nextTick(onEndNT, this);\n}\nfunction onEndNT(self) {\n self.end();\n}\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\nvar Transform = require('./_stream_transform');\nrequire('inherits')(PassThrough, Transform);\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nmodule.exports = Readable;\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\nvar debugUtil = require('util');\nvar debug;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/buffer_list');\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n\n// Lazy loaded to improve the startup performance.\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\nrequire('inherits')(Readable, Stream);\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'end' (and potentially 'finish')\n this.autoDestroy = !!options.autoDestroy;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options);\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n\n // legacy\n this.readable = true;\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n Stream.call(this);\n}\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n return er;\n}\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n // If setEncoding(null), decoder.encoding equals utf8\n this._readableState.encoding = this._readableState.decoder.encoding;\n\n // Iterate over current buffer to convert already stored Buffers:\n var p = this._readableState.buffer.head;\n var content = '';\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n};\n\n// Don't raise the hwm > 1GB\nvar MAX_HWM = 0x40000000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n }\n\n // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n return dest;\n};\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0;\n\n // Try start flowing on next tick if stream isn't explicitly paused\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true;\n\n // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n};\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n this._readableState.paused = true;\n return this;\n};\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null);\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n};\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n return createReadableStreamAsyncIterator(this);\n };\n}\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n});\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length);\n\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n return from(Readable, iterable, opts);\n };\n}\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\nvar Duplex = require('./_stream_duplex');\nrequire('inherits')(Transform, Duplex);\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\nfunction prefinish() {\n var _this = this;\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null)\n // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nrequire('inherits')(Writable, Stream);\nfunction nop() {}\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'finish' (and potentially 'end')\n this.autoDestroy = !!options.autoDestroy;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n\n // legacy.\n this.writable = true;\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n // TODO: defer error events consistently everywhere, not just the cb\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n if (entry === null) state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\nWritable.prototype._writev = null;\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n}\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","'use strict';\n\nvar _Object$setPrototypeO;\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar finished = require('./end-of-stream');\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n }\n\n // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject];\n // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\nmodule.exports = createReadableStreamAsyncIterator;","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\nvar _require2 = require('util'),\n inspect = _require2.inspect;\nvar custom = inspect && inspect.custom || 'inspect';\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\nmodule.exports = /*#__PURE__*/function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) ret += s + p.data;\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n }\n\n // Consumes a specified amount of characters from the buffered data.\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread(_objectSpread({}, options), {}, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n}();","'use strict';\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n}\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n}\nfunction noop() {}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\nmodule.exports = eos;","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar eos;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true;\n\n // request.destroy just do .end - .abort is what we want\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\nfunction call(fn) {\n fn();\n}\nfunction pipe(from, to) {\n return from.pipe(to);\n}\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\nmodule.exports = pipeline;","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n\n // Default value\n return state.objectMode ? 16 : 16 * 1024;\n}\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","module.exports = require('events').EventEmitter;\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","'use strict'\nvar Buffer = require('buffer').Buffer\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\n\nvar ARRAY16 = new Array(16)\n\nvar zl = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n]\n\nvar zr = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n]\n\nvar sl = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n]\n\nvar sr = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n]\n\nvar hl = [0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e]\nvar hr = [0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000]\n\nfunction RIPEMD160 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n}\n\ninherits(RIPEMD160, HashBase)\n\nRIPEMD160.prototype._update = function () {\n var words = ARRAY16\n for (var j = 0; j < 16; ++j) words[j] = this._block.readInt32LE(j * 4)\n\n var al = this._a | 0\n var bl = this._b | 0\n var cl = this._c | 0\n var dl = this._d | 0\n var el = this._e | 0\n\n var ar = this._a | 0\n var br = this._b | 0\n var cr = this._c | 0\n var dr = this._d | 0\n var er = this._e | 0\n\n // computation\n for (var i = 0; i < 80; i += 1) {\n var tl\n var tr\n if (i < 16) {\n tl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i])\n tr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i])\n } else if (i < 32) {\n tl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i])\n tr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i])\n } else if (i < 48) {\n tl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i])\n tr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i])\n } else if (i < 64) {\n tl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i])\n tr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i])\n } else { // if (i<80) {\n tl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i])\n tr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i])\n }\n\n al = el\n el = dl\n dl = rotl(cl, 10)\n cl = bl\n bl = tl\n\n ar = er\n er = dr\n dr = rotl(cr, 10)\n cr = br\n br = tr\n }\n\n // update state\n var t = (this._b + cl + dr) | 0\n this._b = (this._c + dl + er) | 0\n this._c = (this._d + el + ar) | 0\n this._d = (this._e + al + br) | 0\n this._e = (this._a + bl + cr) | 0\n this._a = t\n}\n\nRIPEMD160.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.alloc ? Buffer.alloc(20) : new Buffer(20)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n buffer.writeInt32LE(this._e, 16)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fn1 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn2 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn3 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b | (~c)) ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn4 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn5 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ (c | (~d))) + m + k) | 0, s) + e) | 0\n}\n\nmodule.exports = RIPEMD160\n","'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('readable-stream').Transform\nvar inherits = require('inherits')\n\nfunction throwIfNotStringOrBuffer (val, prefix) {\n if (!Buffer.isBuffer(val) && typeof val !== 'string') {\n throw new TypeError(prefix + ' must be a string or a buffer')\n }\n}\n\nfunction HashBase (blockSize) {\n Transform.call(this)\n\n this._block = Buffer.allocUnsafe(blockSize)\n this._blockSize = blockSize\n this._blockOffset = 0\n this._length = [0, 0, 0, 0]\n\n this._finalized = false\n}\n\ninherits(HashBase, Transform)\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype._flush = function (callback) {\n var error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype.update = function (data, encoding) {\n throwIfNotStringOrBuffer(data, 'Data')\n if (this._finalized) throw new Error('Digest already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n // consume data\n var block = this._block\n var offset = 0\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]\n this._update()\n this._blockOffset = 0\n }\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n\n // update length\n for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n this._length[j] += carry\n carry = (this._length[j] / 0x0100000000) | 0\n if (carry > 0) this._length[j] -= 0x0100000000 * carry\n }\n\n return this\n}\n\nHashBase.prototype._update = function () {\n throw new Error('_update is not implemented')\n}\n\nHashBase.prototype.digest = function (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n var digest = this._digest()\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n // reset state\n this._block.fill(0)\n this._blockOffset = 0\n for (var i = 0; i < 4; ++i) this._length[i] = 0\n\n return digest\n}\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented')\n}\n\nmodule.exports = HashBase\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","var Buffer = require('safe-buffer').Buffer\n\n// prototype class for hash functions\nfunction Hash (blockSize, finalSize) {\n this._block = Buffer.alloc(blockSize)\n this._finalSize = finalSize\n this._blockSize = blockSize\n this._len = 0\n}\n\nHash.prototype.update = function (data, enc) {\n if (typeof data === 'string') {\n enc = enc || 'utf8'\n data = Buffer.from(data, enc)\n }\n\n var block = this._block\n var blockSize = this._blockSize\n var length = data.length\n var accum = this._len\n\n for (var offset = 0; offset < length;) {\n var assigned = accum % blockSize\n var remainder = Math.min(length - offset, blockSize - assigned)\n\n for (var i = 0; i < remainder; i++) {\n block[assigned + i] = data[offset + i]\n }\n\n accum += remainder\n offset += remainder\n\n if ((accum % blockSize) === 0) {\n this._update(block)\n }\n }\n\n this._len += length\n return this\n}\n\nHash.prototype.digest = function (enc) {\n var rem = this._len % this._blockSize\n\n this._block[rem] = 0x80\n\n // zero (rem + 1) trailing bits, where (rem + 1) is the smallest\n // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize\n this._block.fill(0, rem + 1)\n\n if (rem >= this._finalSize) {\n this._update(this._block)\n this._block.fill(0)\n }\n\n var bits = this._len * 8\n\n // uint32\n if (bits <= 0xffffffff) {\n this._block.writeUInt32BE(bits, this._blockSize - 4)\n\n // uint64\n } else {\n var lowBits = (bits & 0xffffffff) >>> 0\n var highBits = (bits - lowBits) / 0x100000000\n\n this._block.writeUInt32BE(highBits, this._blockSize - 8)\n this._block.writeUInt32BE(lowBits, this._blockSize - 4)\n }\n\n this._update(this._block)\n var hash = this._hash()\n\n return enc ? hash.toString(enc) : hash\n}\n\nHash.prototype._update = function () {\n throw new Error('_update must be implemented by subclass')\n}\n\nmodule.exports = Hash\n","var exports = module.exports = function SHA (algorithm) {\n algorithm = algorithm.toLowerCase()\n\n var Algorithm = exports[algorithm]\n if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')\n\n return new Algorithm()\n}\n\nexports.sha = require('./sha')\nexports.sha1 = require('./sha1')\nexports.sha224 = require('./sha224')\nexports.sha256 = require('./sha256')\nexports.sha384 = require('./sha384')\nexports.sha512 = require('./sha512')\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined\n * in FIPS PUB 180-1\n * This source code is derived from sha1.js of the same repository.\n * The difference between SHA-0 and SHA-1 is just a bitwise rotate left\n * operation was added.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha, Hash)\n\nSha.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined\n * in FIPS PUB 180-1\n * Version 2.1a Copyright Paul Johnston 2000 - 2002.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for details.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha1 () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha1, Hash)\n\nSha1.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl1 (num) {\n return (num << 1) | (num >>> 31)\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha1.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16])\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha1.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha1\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Sha256 = require('./sha256')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(64)\n\nfunction Sha224 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha224, Sha256)\n\nSha224.prototype.init = function () {\n this._a = 0xc1059ed8\n this._b = 0x367cd507\n this._c = 0x3070dd17\n this._d = 0xf70e5939\n this._e = 0xffc00b31\n this._f = 0x68581511\n this._g = 0x64f98fa7\n this._h = 0xbefa4fa4\n\n return this\n}\n\nSha224.prototype._hash = function () {\n var H = Buffer.allocUnsafe(28)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n\n return H\n}\n\nmodule.exports = Sha224\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,\n 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,\n 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,\n 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,\n 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,\n 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,\n 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,\n 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,\n 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,\n 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,\n 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,\n 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,\n 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,\n 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,\n 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,\n 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2\n]\n\nvar W = new Array(64)\n\nfunction Sha256 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha256, Hash)\n\nSha256.prototype.init = function () {\n this._a = 0x6a09e667\n this._b = 0xbb67ae85\n this._c = 0x3c6ef372\n this._d = 0xa54ff53a\n this._e = 0x510e527f\n this._f = 0x9b05688c\n this._g = 0x1f83d9ab\n this._h = 0x5be0cd19\n\n return this\n}\n\nfunction ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x) {\n return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10)\n}\n\nfunction sigma1 (x) {\n return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7)\n}\n\nfunction gamma0 (x) {\n return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3)\n}\n\nfunction gamma1 (x) {\n return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10)\n}\n\nSha256.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n var f = this._f | 0\n var g = this._g | 0\n var h = this._h | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0\n\n for (var j = 0; j < 64; ++j) {\n var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0\n var T2 = (sigma0(a) + maj(a, b, c)) | 0\n\n h = g\n g = f\n f = e\n e = (d + T1) | 0\n d = c\n c = b\n b = a\n a = (T1 + T2) | 0\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n this._f = (f + this._f) | 0\n this._g = (g + this._g) | 0\n this._h = (h + this._h) | 0\n}\n\nSha256.prototype._hash = function () {\n var H = Buffer.allocUnsafe(32)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n H.writeInt32BE(this._h, 28)\n\n return H\n}\n\nmodule.exports = Sha256\n","var inherits = require('inherits')\nvar SHA512 = require('./sha512')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(160)\n\nfunction Sha384 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha384, SHA512)\n\nSha384.prototype.init = function () {\n this._ah = 0xcbbb9d5d\n this._bh = 0x629a292a\n this._ch = 0x9159015a\n this._dh = 0x152fecd8\n this._eh = 0x67332667\n this._fh = 0x8eb44a87\n this._gh = 0xdb0c2e0d\n this._hh = 0x47b5481d\n\n this._al = 0xc1059ed8\n this._bl = 0x367cd507\n this._cl = 0x3070dd17\n this._dl = 0xf70e5939\n this._el = 0xffc00b31\n this._fl = 0x68581511\n this._gl = 0x64f98fa7\n this._hl = 0xbefa4fa4\n\n return this\n}\n\nSha384.prototype._hash = function () {\n var H = Buffer.allocUnsafe(48)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n\n return H\n}\n\nmodule.exports = Sha384\n","var inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n]\n\nvar W = new Array(160)\n\nfunction Sha512 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha512, Hash)\n\nSha512.prototype.init = function () {\n this._ah = 0x6a09e667\n this._bh = 0xbb67ae85\n this._ch = 0x3c6ef372\n this._dh = 0xa54ff53a\n this._eh = 0x510e527f\n this._fh = 0x9b05688c\n this._gh = 0x1f83d9ab\n this._hh = 0x5be0cd19\n\n this._al = 0xf3bcc908\n this._bl = 0x84caa73b\n this._cl = 0xfe94f82b\n this._dl = 0x5f1d36f1\n this._el = 0xade682d1\n this._fl = 0x2b3e6c1f\n this._gl = 0xfb41bd6b\n this._hl = 0x137e2179\n\n return this\n}\n\nfunction Ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x, xl) {\n return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)\n}\n\nfunction sigma1 (x, xl) {\n return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)\n}\n\nfunction Gamma0 (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)\n}\n\nfunction Gamma0l (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)\n}\n\nfunction Gamma1 (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)\n}\n\nfunction Gamma1l (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)\n}\n\nfunction getCarry (a, b) {\n return (a >>> 0) < (b >>> 0) ? 1 : 0\n}\n\nSha512.prototype._update = function (M) {\n var W = this._w\n\n var ah = this._ah | 0\n var bh = this._bh | 0\n var ch = this._ch | 0\n var dh = this._dh | 0\n var eh = this._eh | 0\n var fh = this._fh | 0\n var gh = this._gh | 0\n var hh = this._hh | 0\n\n var al = this._al | 0\n var bl = this._bl | 0\n var cl = this._cl | 0\n var dl = this._dl | 0\n var el = this._el | 0\n var fl = this._fl | 0\n var gl = this._gl | 0\n var hl = this._hl | 0\n\n for (var i = 0; i < 32; i += 2) {\n W[i] = M.readInt32BE(i * 4)\n W[i + 1] = M.readInt32BE(i * 4 + 4)\n }\n for (; i < 160; i += 2) {\n var xh = W[i - 15 * 2]\n var xl = W[i - 15 * 2 + 1]\n var gamma0 = Gamma0(xh, xl)\n var gamma0l = Gamma0l(xl, xh)\n\n xh = W[i - 2 * 2]\n xl = W[i - 2 * 2 + 1]\n var gamma1 = Gamma1(xh, xl)\n var gamma1l = Gamma1l(xl, xh)\n\n // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n var Wi7h = W[i - 7 * 2]\n var Wi7l = W[i - 7 * 2 + 1]\n\n var Wi16h = W[i - 16 * 2]\n var Wi16l = W[i - 16 * 2 + 1]\n\n var Wil = (gamma0l + Wi7l) | 0\n var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0\n Wil = (Wil + gamma1l) | 0\n Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0\n Wil = (Wil + Wi16l) | 0\n Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0\n\n W[i] = Wih\n W[i + 1] = Wil\n }\n\n for (var j = 0; j < 160; j += 2) {\n Wih = W[j]\n Wil = W[j + 1]\n\n var majh = maj(ah, bh, ch)\n var majl = maj(al, bl, cl)\n\n var sigma0h = sigma0(ah, al)\n var sigma0l = sigma0(al, ah)\n var sigma1h = sigma1(eh, el)\n var sigma1l = sigma1(el, eh)\n\n // t1 = h + sigma1 + ch + K[j] + W[j]\n var Kih = K[j]\n var Kil = K[j + 1]\n\n var chh = Ch(eh, fh, gh)\n var chl = Ch(el, fl, gl)\n\n var t1l = (hl + sigma1l) | 0\n var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0\n t1l = (t1l + chl) | 0\n t1h = (t1h + chh + getCarry(t1l, chl)) | 0\n t1l = (t1l + Kil) | 0\n t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0\n t1l = (t1l + Wil) | 0\n t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0\n\n // t2 = sigma0 + maj\n var t2l = (sigma0l + majl) | 0\n var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0\n\n hh = gh\n hl = gl\n gh = fh\n gl = fl\n fh = eh\n fl = el\n el = (dl + t1l) | 0\n eh = (dh + t1h + getCarry(el, dl)) | 0\n dh = ch\n dl = cl\n ch = bh\n cl = bl\n bh = ah\n bl = al\n al = (t1l + t2l) | 0\n ah = (t1h + t2h + getCarry(al, t1l)) | 0\n }\n\n this._al = (this._al + al) | 0\n this._bl = (this._bl + bl) | 0\n this._cl = (this._cl + cl) | 0\n this._dl = (this._dl + dl) | 0\n this._el = (this._el + el) | 0\n this._fl = (this._fl + fl) | 0\n this._gl = (this._gl + gl) | 0\n this._hl = (this._hl + hl) | 0\n\n this._ah = (this._ah + ah + getCarry(this._al, al)) | 0\n this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0\n this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0\n this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0\n this._eh = (this._eh + eh + getCarry(this._el, el)) | 0\n this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0\n this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0\n this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0\n}\n\nSha512.prototype._hash = function () {\n var H = Buffer.allocUnsafe(64)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n writeInt64BE(this._gh, this._gl, 48)\n writeInt64BE(this._hh, this._hl, 56)\n\n return H\n}\n\nmodule.exports = Sha512\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/lib/_stream_readable.js');\nStream.Writable = require('readable-stream/lib/_stream_writable.js');\nStream.Duplex = require('readable-stream/lib/_stream_duplex.js');\nStream.Transform = require('readable-stream/lib/_stream_transform.js');\nStream.PassThrough = require('readable-stream/lib/_stream_passthrough.js');\nStream.finished = require('readable-stream/lib/internal/streams/end-of-stream.js')\nStream.pipeline = require('readable-stream/lib/internal/streams/pipeline.js')\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.styleq = void 0;\nvar cache = new WeakMap();\nvar compiledKey = '$$css';\n\nfunction createStyleq(options) {\n var disableCache;\n var disableMix;\n var transform;\n\n if (options != null) {\n disableCache = options.disableCache === true;\n disableMix = options.disableMix === true;\n transform = options.transform;\n }\n\n return function styleq() {\n // Keep track of property commits to the className\n var definedProperties = []; // The className and inline style to build up\n\n var className = '';\n var inlineStyle = null; // The current position in the cache graph\n\n var nextCache = disableCache ? null : cache; // This way of creating an array from arguments is fastest\n\n var styles = new Array(arguments.length);\n\n for (var i = 0; i < arguments.length; i++) {\n styles[i] = arguments[i];\n } // Iterate over styles from last to first\n\n\n while (styles.length > 0) {\n var possibleStyle = styles.pop(); // Skip empty items\n\n if (possibleStyle == null || possibleStyle === false) {\n continue;\n } // Push nested styles back onto the stack to be processed\n\n\n if (Array.isArray(possibleStyle)) {\n for (var _i = 0; _i < possibleStyle.length; _i++) {\n styles.push(possibleStyle[_i]);\n }\n\n continue;\n } // Process an individual style object\n\n\n var style = transform != null ? transform(possibleStyle) : possibleStyle;\n\n if (style.$$css) {\n // Build up the class names defined by this object\n var classNameChunk = ''; // Check the cache to see if we've already done this work\n\n if (nextCache != null && nextCache.has(style)) {\n // Cache: read\n var cacheEntry = nextCache.get(style);\n\n if (cacheEntry != null) {\n classNameChunk = cacheEntry[0]; // $FlowIgnore\n\n definedProperties.push.apply(definedProperties, cacheEntry[1]);\n nextCache = cacheEntry[2];\n }\n } // Update the chunks with data from this object\n else {\n // The properties defined by this object\n var definedPropertiesChunk = [];\n\n for (var prop in style) {\n var value = style[prop];\n if (prop === compiledKey) continue; // Each property value is used as an HTML class name\n // { 'debug.string': 'debug.string', opacity: 's-jskmnoqp' }\n\n if (typeof value === 'string' || value === null) {\n // Only add to chunks if this property hasn't already been seen\n if (!definedProperties.includes(prop)) {\n definedProperties.push(prop);\n\n if (nextCache != null) {\n definedPropertiesChunk.push(prop);\n }\n\n if (typeof value === 'string') {\n classNameChunk += classNameChunk ? ' ' + value : value;\n }\n }\n } // If we encounter a value that isn't a string or `null`\n else {\n console.error(\"styleq: \".concat(prop, \" typeof \").concat(String(value), \" is not \\\"string\\\" or \\\"null\\\".\"));\n }\n } // Cache: write\n\n\n if (nextCache != null) {\n // Create the next WeakMap for this sequence of styles\n var weakMap = new WeakMap();\n nextCache.set(style, [classNameChunk, definedPropertiesChunk, weakMap]);\n nextCache = weakMap;\n }\n } // Order of classes in chunks matches property-iteration order of style\n // object. Order of chunks matches passed order of styles from first to\n // last (which we iterate over in reverse).\n\n\n if (classNameChunk) {\n className = className ? classNameChunk + ' ' + className : classNameChunk;\n }\n } // ----- DYNAMIC: Process inline style object -----\n else {\n if (disableMix) {\n if (inlineStyle == null) {\n inlineStyle = {};\n }\n\n inlineStyle = Object.assign({}, style, inlineStyle);\n } else {\n var subStyle = null;\n\n for (var _prop in style) {\n var _value = style[_prop];\n\n if (_value !== undefined) {\n if (!definedProperties.includes(_prop)) {\n if (_value != null) {\n if (inlineStyle == null) {\n inlineStyle = {};\n }\n\n if (subStyle == null) {\n subStyle = {};\n }\n\n subStyle[_prop] = _value;\n }\n\n definedProperties.push(_prop); // Cache is unnecessary overhead if results can't be reused.\n\n nextCache = null;\n }\n }\n }\n\n if (subStyle != null) {\n inlineStyle = Object.assign(subStyle, inlineStyle);\n }\n }\n }\n }\n\n var styleProps = [className, inlineStyle];\n return styleProps;\n };\n}\n\nvar styleq = createStyleq();\nexports.styleq = styleq;\nstyleq.factory = createStyleq;","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.localizeStyle = localizeStyle;\nvar cache = new WeakMap();\nvar markerProp = '$$css$localize';\n/**\n * The compiler polyfills logical properties and values, generating a class\n * name for both writing directions. The style objects are annotated by\n * the compiler as needing this runtime transform. The results are memoized.\n *\n * { '$$css$localize': true, float: [ 'float-left', 'float-right' ] }\n * => { float: 'float-left' }\n */\n\nfunction compileStyle(style, isRTL) {\n // Create a new compiled style for styleq\n var compiledStyle = {};\n\n for (var prop in style) {\n if (prop !== markerProp) {\n var value = style[prop];\n\n if (Array.isArray(value)) {\n compiledStyle[prop] = isRTL ? value[1] : value[0];\n } else {\n compiledStyle[prop] = value;\n }\n }\n }\n\n return compiledStyle;\n}\n\nfunction localizeStyle(style, isRTL) {\n if (style[markerProp] != null) {\n var compiledStyleIndex = isRTL ? 1 : 0; // Check the cache in case we've already seen this object\n\n if (cache.has(style)) {\n var _cachedStyles = cache.get(style);\n\n var _compiledStyle = _cachedStyles[compiledStyleIndex];\n\n if (_compiledStyle == null) {\n // Update the missing cache entry\n _compiledStyle = compileStyle(style, isRTL);\n _cachedStyles[compiledStyleIndex] = _compiledStyle;\n cache.set(style, _cachedStyles);\n }\n\n return _compiledStyle;\n } // Create a new compiled style for styleq\n\n\n var compiledStyle = compileStyle(style, isRTL);\n var cachedStyles = new Array(2);\n cachedStyles[compiledStyleIndex] = compiledStyle;\n cache.set(style, cachedStyles);\n return compiledStyle;\n }\n\n return style;\n}","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _extends() {\n return module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _extends.apply(null, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _interopRequireDefault(e) {\n return e && e.__esModule ? e : {\n \"default\": e\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose.js\");\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var s = Object.getOwnPropertySymbols(e);\n for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nmodule.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableRest = require(\"./nonIterableRest.js\");\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\nvar iterableToArray = require(\"./iterableToArray.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nfunction _createForOfIteratorHelperLoose(r, e) {\n var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (t) return (t = t.call(r)).next.bind(t);\n if (Array.isArray(r) || (t = unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) {\n t && (r = t);\n var o = 0;\n return function () {\n return o >= r.length ? {\n done: !0\n } : {\n done: !1,\n value: r[o++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _createForOfIteratorHelperLoose as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","import superPropBase from \"./superPropBase.js\";\nfunction _get() {\n return _get = \"undefined\" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) {\n var p = superPropBase(e, t);\n if (p) {\n var n = Object.getOwnPropertyDescriptor(p, t);\n return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value;\n }\n }, _get.apply(null, arguments);\n}\nexport { _get as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nfunction _superPropBase(t, o) {\n for (; !{}.hasOwnProperty.call(t, o) && null !== (t = getPrototypeOf(t)););\n return t;\n}\nexport { _superPropBase as default };","function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nexport { _inherits as default };","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nexport { _objectSpread2 as default };","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var s = Object.getOwnPropertySymbols(e);\n for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };"],"names":["_interopRequireDefault","require","Object","defineProperty","exports","value","_toConsumableArray2","_extends2","_slicedToArray2","_objectWithoutProperties2","_reactDom","_react","obj","nodeInterop","__esModule","default","cache","_getRequireWildcardCache","has","get","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_interopRequireWildcard","_reactNative","_excluded","_this","this","_jsxFileName","WeakMap","cacheBabelInterop","cacheNodeInterop","valueToEvent","nativeEvent","RCTSliderWebComponent","forwardRef","_ref","forwardedRef","initialValue","_ref$minimumValue","minimumValue","_ref$maximumValue","maximumValue","_ref$step","step","_ref$minimumTrackTint","minimumTrackTintColor","_ref$maximumTrackTint","maximumTrackTintColor","_ref$thumbTintColor","thumbTintColor","_ref$thumbStyle","thumbStyle","_ref$style","style","_ref$inverted","inverted","_ref$disabled","disabled","_ref$trackHeight","trackHeight","_ref$thumbSize","thumbSize","thumbImage","_ref$onRNCSliderSlidi","onRNCSliderSlidingStart","_","_ref$onRNCSliderSlidi2","onRNCSliderSlidingComplete","_ref$onRNCSliderValue","onRNCSliderValueChange","others","containerSize","useRef","width","height","containerPositionX","containerRef","createRef","containerPositionInvalidated","_React$useState","useState","_React$useState2","setValue","lastInitialValue","animationValues","val","Animated","Value","min","max","diff","current","useEffect","minPercent","multiply","divide","subtract","maxPercent","onValueChange","useCallback","onSlidingStart","onSlidingComplete","_updateValue","newValue","hardRounded","decimalPrecision","Number","parseFloat","toFixed","withinBounds","Math","useLayoutEffect","invalidateContainerPosition","onDocumentScroll","e","target","contains","window","addEventListener","document","capture","removeEventListener","containerStyle","StyleSheet","compose","flexGrow","flexShrink","flexBasis","flexDirection","alignItems","trackStyle","borderRadius","userSelect","minimumTrackStyle","assign","backgroundColor","maximumTrackStyle","thumbViewStyle","zIndex","overflow","calculatePrecision","updateContainerPositionX","_ReactDOM$findDOMNode","positionX","findDOMNode","getBoundingClientRect","x","getValueFromNativeEvent","pageX","_containerSize$curren","containerX","round","useImperativeHandle","updateValue","createElement","View","ref","onLayout","_ref4","layout","accessibilityActions","name","label","onAccessibilityAction","event","tenth","actionName","accessible","accessibilityRole","onStartShouldSetResponder","onMoveShouldSetResponder","onResponderGrant","onResponderRelease","_ref2","onResponderMove","_ref3","__self","__source","fileName","lineNumber","columnNumber","pointerEvents","undefined","Image","source","decimals","map","split","pop","length","apply","Infinity","displayName","_default","_index","LIMIT_MIN_VALUE","MIN_SAFE_INTEGER","LIMIT_MAX_VALUE","MAX_SAFE_INTEGER","SliderWithRef","props","_props$accessibilityS","styles","slider","localProps","onValueChangeEvent","_disabled","accessibilityState","_accessibilityState","onSlidingStartEvent","onSlidingCompleteEvent","onAccessibilityActionEvent","lowerLimit","upperLimit","Platform","OS","resolveAssetSource","onChange","onResponderTerminationRequest","onRNCSliderAccessibilityAction","defaultProps","tapToSeek","create","assets","module","registerAsset","asset","push","getAssetByID","assetId","getScaledAssetPath","scale","AssetSourceResolver","pickScale","scales","PixelRatio","scaleSuffix","type","httpServerLocation","replace","serverUrl","jsbundleUrl","_classCallCheck","_createClass","assetServerURL","fromUrl","URL","searchParams","hash","fromSource","toString","origin","_this$asset$width","_this$asset$height","__packager_asset","uri","deviceScale","i","manifestBaseUrl","_downloadAsync","_asyncToGenerator","arguments","assetMapOverride","selectAssetSource","meta","_meta$fileHashes$inde","_meta$fileUris$index","_manifest2$extra","_manifest2$extra$expo","_objectSpread","index","findIndex","s","fileHashes","fileUris","resolveUri","assetUrlOverride","_len","paths","Array","_key","combined","part","trim","filter","join","resolved","pathJoin","fileScale","fileExtension","encodeURIComponent","suffix","params","URLSearchParams","platform","test","manifest2","devServerUrl","extra","expoGo","developer","debuggerHost","bundleUrl","baseUrl","href","NativeModules","ExponentKernel","getFilename","url","_URL","pathname","substring","lastIndexOf","getBasename","getFileExtension","filename","dotIndex","_customSourceTransformer","setCustomSourceTransformer","transformer","resolver","defaultAsset","Asset","_ref$hash","localUri","downloading","downloaded","_downloadCallbacks","AssetUris","_downloadAsync2","Promise","resolve","reject","_yield$ImageAssets$ge","isDOMAvailable","img","onerror","onload","naturalWidth","naturalHeight","src","_x","_x2","_x3","_x4","downloadAsync","forEach","moduleId","moduleIds","isArray","all","fromModule","virtualAssetModule","fromURI","Error","byHash","metaHash","_selectAssetSource","byUri","indexOf","extension","startsWith","_DEFAULT_PROGRESS_UPDATE_INTERVAL_MILLIS","_DEFAULT_INITIAL_PLAYBACK_STATUS","positionMillis","progressUpdateIntervalMillis","shouldPlay","rate","shouldCorrectPitch","volume","audioPan","isMuted","isLooping","getNativeSourceFromSource","headers","overridingExtension","_getAssetFromPlaybackSource","overrideFileExtensionAndroid","assertStatusValuesInBounds","status","RangeError","getNativeSourceAndFullInitialStatusForLoadAsync","_getNativeSourceAndFullInitialStatusForLoadAsync","initialStatus","downloadFirst","fullInitialStatus","nativeSource","getUnloadedStatus","error","isLoaded","PlaybackMixin","playAsync","_playAsync","setStatusAsync","playFromPositionAsync","_playFromPositionAsync","tolerances","seekMillisToleranceAfter","toleranceMillisAfter","seekMillisToleranceBefore","toleranceMillisBefore","pauseAsync","_pauseAsync","stopAsync","_stopAsync","setPositionAsync","_setPositionAsync","_x5","setRateAsync","_setRateAsync","pitchCorrectionQuality","PitchCorrectionQuality","Medium","_x6","setVolumeAsync","_setVolumeAsync","_x7","_x8","setIsMutedAsync","_setIsMutedAsync","_x9","setIsLoopingAsync","_setIsLoopingAsync","_x10","setProgressUpdateIntervalAsync","_setProgressUpdateIntervalAsync","_x11","ExponentAV","Qualities","Low","High","InterruptionModeIOS","InterruptionModeAndroid","_recorderExists","eventEmitter","getPermissionsAsync","_getPermissionsAsync","requestPermissionsAsync","_requestPermissionsAsync","usePermissions","createPermissionHook","getMethod","requestMethod","Recording","_subscription","_canRecord","_isDoneRecording","_finalDurationMillis","_uri","_onRecordingStatusUpdate","_progressUpdateTimeoutVariable","_progressUpdateIntervalMillis","_options","_cleanupForUnloadedRecorder","finalStatus","_finalStatus$duration","durationMillis","remove","_disablePolling","getStatusAsync","_pollingLoop","isAudioEnabled","setTimeout","_unused","_performOperationAndHandleStatusAsync","getAudioRecordingStatus","canRecord","isRecording","isDoneRecording","_callOnRecordingStatusUpdateForNewStatus","clearTimeout","_performOperationAndHandleStatusAsync2","operation","throwIfAudioIsDisabled","onRecordingStatusUpdate","_enablePollingIfNecessaryAndPossible","_prepareToRecordAsync","options","RecordingOptionsPresets","LOW_QUALITY","android","ios","extensionRegex","addListener","_yield$ExponentAV$pre","prepareAudioRecorder","currentStatus","_getAvailableInputs","getAvailableInputs","_getCurrentInput","getCurrentInput","_setInput","inputUid","setInput","_startAsync","startAudioRecording","pauseAudioRecording","_stopAndUnloadAsync","_stopResult","stopResult","stopError","stopAudioRecording","err","unloadAudioRecorder","_createNewLoadedSound","onPlaybackStatusUpdate","console","warn","createNewLoadedSoundAsync","_createNewLoadedSoundAsync","Sound","createAsync","recording","setOnRecordingStatusUpdate","prepareToRecordAsync","keepAudioActiveHint","startAsync","stopAndUnloadAsync","_populateMissingKeys","userAudioMode","defaultAudioMode","defaultMode","allowsRecordingIOS","interruptionModeIOS","MixWithOthers","playsInSilentModeIOS","staysActiveInBackground","interruptionModeAndroid","DuckOthers","shouldDuckAndroid","playThroughEarpieceAndroid","currentAudioMode","setAudioModeAsync","_setAudioModeAsync","partialMode","mode","setAudioMode","_enabled","setIsEnabledAsync","_setIsEnabledAsync","setAudioIsEnabled","AndroidOutputFormat","AndroidAudioEncoder","IOSOutputFormat","IOSAudioQuality","IOSBitRateStrategy","HIGH_QUALITY","isMeteringEnabled","outputFormat","MPEG_4","audioEncoder","AAC","sampleRate","numberOfChannels","bitRate","MPEG4AAC","audioQuality","MAX","linearPCMBitDepth","linearPCMIsBigEndian","linearPCMIsFloat","web","mimeType","bitsPerSecond","THREE_GPP","AMR_NB","MIN","_loaded","_loading","_lastStatusUpdate","_lastStatusUpdateTime","_subscriptions","_eventEmitter","EventEmitter","_coalesceStatusUpdatesInMillis","_onPlaybackStatusUpdate","_onMetadataUpdate","_onAudioSampleReceived","_internalStatusUpdateCallback","_callOnPlaybackStatusUpdateForNewStatus","_internalMetadataUpdateCallback","metadata","_internalErrorCallback","_errorCallback","_clearSubscriptions","getStatusForSound","shouldDismissBasedOnCoalescing","JSON","stringify","Date","now","getTime","globalThis","__EXAV_setOnAudioSampleReceivedCallback","UnavailabilityError","onMetadataUpdate","callback","_updateAudioSampleReceivedCallback","_loadAsync","_this2","_yield$getNativeSourc","loadForSound","then","result","_result","_slicedToArray","_subscribeToNativeEvents","catch","_unloadAsync","unloadForSound","_setStatusAsync","_this3","setStatusForSound","_replayAsync","_this4","replaySound","_ref5","_ref6","sound","setOnPlaybackStatusUpdate","loadAsync","f","y","z","ROTL","n","bytes","K","H","msg","unescape","charCodeAt","l","N","ceil","M","j","pow","floor","W","t","a","b","c","d","T","byteToHex","substr","buf","offset","bth","Uuidv5Namespace","version","hashfunc","generateUUID","namespace","off","str","stringToBytes","uuid","hex","parseInt","uuidToBytes","TypeError","concat","idx","bytesToUuid","DNS","v35","sha1","SyntheticPlatformEmitter","DeviceEventEmitter","_getPermissionWithQueryAsync","navigator","permissions","query","state","PermissionStatus","GRANTED","DENIED","UNDETERMINED","_unused2","getUserMedia","constraints","mediaDevices","webkitGetUserMedia","mozGetUserMedia","code","getStatusFromMedia","media","isPlaying","currentTime","paused","ended","readyState","duration","autoplay","isBuffering","playbackRate","muted","loop","didJustFinish","setStatusForMedia","_setStatusForMedia","play","pause","mediaRecorder","mediaRecorderUptimeOfLastStartResume","mediaRecorderDurationAlreadyRecorded","mediaRecorderIsRecording","getAudioRecorderDurationMillis","getStatusForVideo","_getStatusForVideo","element","loadForVideo","_loadForVideo","unloadForVideo","_unloadForVideo","setStatusForVideo","_setStatusForVideo","replayVideo","_replayVideo","_x12","_setAudioMode","_setAudioIsEnabled","_getStatusForSound","_x13","_loadForSound","Audio","ontimeupdate","emit","message","_x14","_x15","_unloadForSound","removeAttribute","load","_x16","_setStatusForSound","_x17","_x18","_replaySound","_x19","_x20","_getAudioRecordingStatus","_mediaRecorder","_mediaRecorder2","_mediaRecorder3","_prepareAudioRecorder","stream","audio","MediaRecorder","getTracks","track","stop","_yield$this$getAudioR","_objectWithoutProperties","_x21","_startAudioRecording","resume","start","_pauseAudioRecording","_stopAudioRecording","dataPromise","data","createObjectURL","_unloadAudioRecorder","maybeStatus","getPermissionWithQueryAsync","expires","canAskAgain","granted","FontDisplay","getFontFaceStyleSheet","styleSheet","getStyleElement","sheet","getFontFaceRulesMatchingResource","fontFamilyName","rules","_toConsumableArray","cssRules","items","rule","CSSFontFaceRule","getFontFaceRules","fontFamily","display","fontDisplay","serverContext","Set","unloadAllAsync","_unloadAllAsync","getElementById","ID","HTMLStyleElement","removeChild","unloadAsync","item","deleteRule","getServerResources","entries","css","links","resourceId","$$type","children","id","rel","as","crossorigin","getHeadElements","Boolean","resetServerContext","clear","_getFontFaceRulesMatc","resource","values","find","add","_createWebFontTemplate","head","appendChild","CodedError","fontStyle","styleElement","styleElementIE","cssText","textNode","createTextNode","_createWebStyle","userAgent","isIOS","match","isSafari","isEdge","includes","isIE","isFirefox","isFontLoadingListenerSupported","FontObserver","AUTO","uriFromFontSource","getAssetForSource","throwInvalidSourceError","loadSingleFontAsync","input","ExpoFontLoader","loaded","loadPromises","registerStaticFont","fontFamilyOrFontMap","isServer","fontMap","names","keys","loadFontInNamespaceAsync","_loadFontInNamespaceAsync","useFonts","_useState","every","isMapLoaded","_useState2","setLoaded","_useState3","_useState4","setError","MediaTypeInput","_defineProperty","MediaTypeOptions","All","Images","Videos","launchImageLibraryAsync","_launchImageLibraryAsync","_ref$mediaTypes","mediaTypes","_ref$allowsMultipleSe","allowsMultipleSelection","_ref$base","base64","openFileBrowserAsync","canceled","launchCameraAsync","_launchCameraAsync","_ref2$mediaTypes","_ref2$allowsMultipleS","_ref2$base","getCameraPermissionsAsync","_getCameraPermissionsAsync","permissionGrantedResponse","requestCameraPermissionsAsync","_requestCameraPermissionsAsync","getMediaLibraryPermissionsAsync","_getMediaLibraryPermissionsAsync","_writeOnly","requestMediaLibraryPermissionsAsync","_requestMediaLibraryPermissionsAsync","_ref3$capture","_ref3$allowsMultipleS","mediaTypeFormat","setAttribute","String","random","body","files","from","file","targetFile","reader","FileReader","returnRaw","image","_image$naturalWidth","_image$naturalHeight","readAsDataURL","MouseEvent","dispatchEvent","ExponentImagePicker","writeOnly","imagePickerMethod","useMediaLibraryPermissions","useCameraPermissions","getPendingResultAsync","_getPendingResultAsync","aspect","quality","videoMaxDuration","_aspect","validateOptions","allowsEditing","VideoExportPreset","UIImagePickerControllerQualityType","UIImagePickerPresentationStyle","UIImagePickerPreferredAssetRepresentationMode","CameraType","nativeEmitterSubscriptionKey","nativeModule","_listenerCount","__expo_module_name__","EXReactNativeEventEmitter","_NativeModules$EXReac","args","addProxiedListener","removeListeners","_NativeModules$EXReac2","_len2","_key2","removeProxiedListeners","_nativeModule","NativeEventEmitter","eventName","listener","startObserving","nativeEmitterSubscription","subscription","removeSubscription","removedListenerCount","listenerCount","listeners","removeAllListeners","invariant","stopObserving","_this$_eventEmitter","_len3","_key3","methods","isMounted","setStatus","_ref$get","_ref$request","request","permissionOptions","getPermission","response","requestPermission","usePermission","_window$document","canUseEventListeners","attachEvent","canUseViewport","screen","ReactNativePlatform","select","isAsyncDebugging","_isNativeReflectConstruct","valueOf","Reflect","construct","_wrapNativeSuper","r","Map","Function","Wrapper","o","p","bind","setPrototypeOf","getPrototypeOf","constructor","enumerable","writable","configurable","_Error","_callSuper","_inherits","_CodedError","moduleName","propertyName","setStatusBarBackgroundColor","setStatusBarNetworkActivityIndicatorVisible","setStatusBarHidden","setStatusBarStyle","setStatusBarTranslucent","StatusBar","_Dimensions$get","Dimensions","useDetectDevice","isAndroid","isTablet","pixelDensity","adjustedWidth","adjustedHeight","isOrientationPortrait","isOrientationLandscape","useDeviceOrientation","initialState","portrait","landscape","orientation","setOrientation","container","padding","justifyContent","textInput","I18nManager","isRTL","flex","fontSize","textAlign","marginBottom","row","icon","ic_close","_props$placeholderTex","placeholderTextColor","_props$placeholder","placeholder","showIcon","inputStyle","iconStyle","_props$onChangeText","onChangeText","_value","renderLeftIcon","renderRightIcon","text","setText","React","TouchableWithoutFeedback","TextInput","_extends","flatten","TouchableOpacity","onPress","mainWrap","borderWidth","borderColor","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","flex1","wrapTop","dropdown","title","marginVertical","writingDirection","textItem","paddingHorizontal","margin","fullScreen","ic_down","statusBarHeight","currentHeight","DropdownComponent","currentRef","testID","itemTestIDField","_props$style","placeholderStyle","selectedTextStyle","itemContainerStyle","itemTextStyle","inputSearchStyle","_props$selectedTextPr","selectedTextProps","_props$data","labelField","valueField","searchField","_props$activeColor","activeColor","_props$iconColor","iconColor","searchPlaceholder","_props$search","search","_props$maxHeight","maxHeight","_props$minHeight","minHeight","_props$disable","disable","_props$keyboardAvoidi","keyboardAvoiding","_props$inverted","renderItem","renderInputSearch","onFocus","onBlur","_props$autoScroll","autoScroll","_props$showsVerticalS","showsVerticalScrollIndicator","_props$dropdownPositi","dropdownPosition","flatListProps","searchQuery","confirmSelectItem","onConfirmSelectItem","accessibilityLabel","itemAccessibilityLabelField","_props$mode","_props$closeModalWhen","closeModalWhenSelectedItem","_props$excludeItems","excludeItems","_props$excludeSearchI","excludeSearchItems","refList","visible","setVisible","currentValue","setCurrentValue","_useState5","_useState6","listData","setListData","_useState7","_useState8","position","setPosition","_useState9","_useState10","keyboardHeight","setKeyboardHeight","_useState11","_useState12","searchText","setSearchText","styleContainerVertical","useMemo","styleHorizontal","alignSelf","open","eventOpen","close","eventClose","excludeData","_differenceWith","obj1","obj2","_get","filterData","onSearch","scrollIndex","font","_measure","measureInWindow","pageY","isFull","top","bottom","left","onKeyboardDidShow","endCoordinates","onKeyboardDidHide","susbcriptionKeyboardDidShow","Keyboard","susbcriptionKeyboardDidHide","getValue","defaultValue","getItem","_isEqual","_findIndex","scrollToIndex","animated","showOrClose","visibleStatus","dismiss","dataSearch","labelText","_get2","toLowerCase","normalize","excludeSearchData","onSelect","_renderItem","isSelected","selected","_assign","TouchableHighlight","underlayColor","Text","renderSearch","CInput","autoCorrect","tintColor","_renderList","isTopPosition","isInverted","_renderListHelper","FlatList","keyboardShouldPersistTaps","onScrollToIndexFailed","keyExtractor","_item","_renderModal","styleVertical","extendHeight","Modal","transparent","statusBarTranslucent","supportedOrientations","onRequestClose","paddingBottom","paddingTop","_renderDropdown","dropdownInside","wrapItem","rowSelectedItem","flexWrap","selectedItem","marginRight","selectedTextItem","marginLeft","color","selectedTextLeftItem","MultiSelectComponent","selectedStyle","maxSelect","_props$inside","inside","renderSelectedItem","_props$alwaysRenderSe","alwaysRenderSelectedItem","confirmUnSelectItem","_props$visibleSelecte","visibleSelectedItem","setKey","_useState13","_useState14","newCurrentValue","splice","checkSelected","unSelect","_renderItemSelected","list","_renderDropdownInside","imageField","imageStyle","selectItem","Dropdown","createSvgCircle","cx","cy","fill","strokeWidth","ActivityIndicator","_props$animating","animating","_props$color","_props$hidesWhenStopp","hidesWhenStopped","_props$size","size","other","_objectWithoutPropertiesLoose","svg","viewBox","stroke","opacity","strokeDasharray","strokeDashoffset","role","indicatorSizes","animation","animationPause","visibility","animationDuration","animationKeyframes","transform","animationTimingFunction","animationIterationCount","animationPlayState","small","large","isLayoutAnimationEnabled","shouldEmitW3CPointerEvents","shouldPressibilityUseW3CPointerEventsForHover","animatedShouldDebounceQueueFlush","animatedShouldUseSingleOp","nativeEventEmitter","NativeAnimatedModule","__nativeAnimatedNodeTagCount","__nativeAnimationIdCount","waitingForQueuedOperations","queueOperations","queue","flushQueueTimeout","nativeOps","API","tag","saveValueCallback","queueOperation","setWaitingForIdentifier","ReactNativeFeatureFlags","unsetWaitingForIdentifier","delete","disableQueue","clearImmediate","setImmediate","flushQueue","fn","createAnimatedNode","config","updateAnimatedNodeConfig","startListeningToAnimatedNodeValue","stopListeningToAnimatedNodeValue","connectAnimatedNodes","parentTag","childTag","disconnectAnimatedNodes","startAnimatingNode","animationId","nodeTag","endCallback","stopAnimation","setAnimatedNodeValue","setAnimatedNodeOffset","flattenAnimatedNodeOffset","extractAnimatedNodeOffset","connectAnimatedNodeToView","viewTag","disconnectAnimatedNodeFromView","restoreDefaultValues","dropAnimatedNode","addAnimatedEventToView","eventMapping","removeAnimatedEventFromView","animatedNodeTag","SUPPORTED_COLOR_STYLES","borderBottomColor","borderEndColor","borderLeftColor","borderRightColor","borderStartColor","borderTopColor","SUPPORTED_STYLES","borderBottomEndRadius","borderBottomLeftRadius","borderBottomRightRadius","borderBottomStartRadius","borderTopEndRadius","borderTopLeftRadius","borderTopRightRadius","borderTopStartRadius","scaleX","scaleY","translateX","translateY","SUPPORTED_TRANSFORMS","rotate","rotateX","rotateY","rotateZ","perspective","SUPPORTED_INTERPOLATION_PARAMS","inputRange","outputRange","extrapolate","extrapolateRight","extrapolateLeft","isSupportedStyleProp","prop","isSupportedTransformProp","isSupportedInterpolationParam","param","generateNewAnimationId","_warnedMissingNativeAnimated","shouldUseNativeDriver","useNativeDriver","isSupportedColorStyleProp","addWhitelistedStyleProp","addWhitelistedTransformProp","addWhitelistedInterpolationParam","validateStyles","validateTransform","configs","property","validateInterpolation","generateNewNodeTag","assertNativeAnimatedModule","transformDataType","PI","NativeAnimatedAPI","NativeAnimatedHelper","_uniqueId","AnimatedNode","_listeners","__isNative","__nativeTag","__getValue","child","platformConfig","_platformConfig","hasListeners","_startListeningToNativeValueUpdates","_stopListeningForNativeValueUpdates","__nativeAnimatedValueListener","__shouldUpdateListenersForNewNativeTag","__getNativeTag","__onAnimatedValueUpdateReceived","__callListeners","_this$__nativeTag","nativeTag","__getNativeConfig","_getPrototypeOf","_possibleConstructorReturn","_superPropGet","_AnimatedNode","AnimatedWithChildren","_children","_step","_iterator","_createForOfIteratorHelperLoose","done","__makeNative","__attach","__getPlatformConfig","__detach","_step2","_iterator2","__DEV__","linear","createInterpolation","colorToRgba","arr","pattern","stringShapeRegex","checkPattern","outputRanges","number","interpolations","shouldRound","range","createInterpolationFromStringOutputRange","checkInfiniteRange","checkValidInputRange","easing","findRange","inputMin","inputMax","outputMin","outputMax","interpolate","normalizedColor","normalizeColor","AnimatedInterpolation","_AnimatedWithChildren","parent","_parent","_config","_interpolation","parentValue","__addChild","__removeChild","__transformDataType","__createInterpolation","AnimatedValue","_startingValue","_offset","_animation","stopTracking","handle","__isInteraction","InteractionManager","createInteractionHandle","previousAnimation","clearInteractionHandle","_tracking","tracking","update","flush","rootNode","animatedStyles","findAnimatedStyles","node","__getChildren","animatedStyle","_flush","attachNativeEvent","viewRef","argMapping","eventMappings","traverse","path","nativeEventPath","animatedValueTag","mapping","detach","AnimatedEvent","_argMapping","__addListener","_callListeners","_attachedEvent","recMapping","recEvt","mappingKey","_key4","AnimatedTransform","transforms","_transforms","__getAnimatedValue","transConfigs","flattenStyle","createAnimatedStyle","AnimatedStyle","_inputStyle","_style","updatedStyle","_walkStyleAndGetValues","_walkStyleAndGetAnimatedValues","styleConfig","styleKey","AnimatedProps","_props","_callback","__getHandler","_animatedView","__disconnectAnimatedView","__connectAnimatedView","animatedView","nativeViewTag","propsConfig","propKey","useAnimatedProps","scheduleUpdate","useReducer","count","onUpdateRef","prevNodeRef","isUnmountingRef","prevNode","__restoreDefaultValues","useAnimatedPropsLifecycle","callbackRef","effect","cleanupRef","instance","useRefEffect","setNativeView","getScrollableNode","getEventTarget","events","propName","propValue","_i","_events","_events$_i","_propName","reduceAnimatedProps","collapsable","createAnimatedComponent","Component","_useAnimatedProps","reducedProps","refs","_refs","useMergeRefs","passthroughAnimatedPropExplicitValues","passthroughStyle","passthroughProps","mergedStyle","scrollEventThrottle","ScrollView","SectionList","AnimatedAddition","_a","_b","AnimatedDiffClamp","_min","_max","_lastValue","AnimatedDivision","_warnedAboutDivideByZero","AnimatedModulo","modulus","_modulus","AnimatedMultiplication","AnimatedSubtraction","AnimatedTracking","animationClass","animationConfig","_animationClass","_animationConfig","_useNativeDriver","animate","toValue","__getNativeAnimationConfig","AnimatedValueXY","valueIn","setOffset","flattenOffset","extractOffset","resetAnimation","jointCallback","removeListener","startNativeAnimationNextId","Animation","fromValue","onUpdate","onEnd","animatedValue","__nativeId","__onEnd","startNativeAnimationWaitId","__debouncedOnEnd","_Animation","DecayAnimation","_config$deceleration","_config$isInteraction","_config$iterations","_deceleration","deceleration","_velocity","velocity","isInteraction","__iterations","iterations","__active","_fromValue","_onUpdate","_startTime","__startNativeAnimation","_animationFrame","requestAnimationFrame","exp","abs","finished","global","cancelAnimationFrame","stiffnessFromOrigamiValue","oValue","dampingFromOrigamiValue","fromOrigamiTensionAndFriction","tension","friction","stiffness","damping","fromBouncinessAndSpeed","bounciness","speed","startValue","endValue","projectNormal","end","bouncyTension","bouncyFriction","b3Friction2","b3Friction3","b3Nobounce","linearInterpolation","SpringAnimation","_config$overshootClam","_config$restDisplacem","_config$restSpeedThre","_config$velocity","_config$velocity2","_config$delay","_config$stiffness","_config$damping","_config$mass","_overshootClamping","overshootClamping","_restDisplacementThreshold","restDisplacementThreshold","_restSpeedThreshold","restSpeedThreshold","_initialVelocity","_lastVelocity","_toValue","_delay","delay","mass","_stiffness","_damping","_mass","_config$bounciness","_config$speed","springConfig","SpringConfig","_config$tension","_config$friction","_springConfig","_this$_initialVelocit","initialVelocity","_startPosition","_lastPosition","_lastTime","_frameTime","internalState","getInternalState","lastPosition","lastVelocity","lastTime","_timeout","deltaTime","m","k","v0","zeta","sqrt","omega0","omega1","x0","envelope","sin","cos","_envelope","isOvershooting","isVelocity","isDisplacement","_easeInOut","TimingAnimation","_config$easing","_config$duration","_easing","Easing","inOut","ease","_duration","frames","numFrames","frame","defaultColor","g","processColor","isRgbaValue","AnimatedColor","isRgbaAnimatedValue","rgbaAnimatedValue","_processColor","processedColor","initColor","nativeColor","_processColor2","shouldUpdateNodeConfig","rgbaValue","_nativeTag","_combineCallbacks","onComplete","maybeVectorAnim","anim","configX","configY","_config$key","aX","aY","parallel","stopTogether","configR","configG","configB","configA","_config$_key","aR","aG","aB","aA","timing","_start2","configuration","singleValue","singleConfig","reset","_startNativeLoop","_isUsingNativeDriver","sequence","animations","doneCount","hasEnded","cb","endResult","time","ValueXY","Color","Interpolation","Node","decay","_start3","spring","_start","modulo","diffClamp","stagger","_temp","_ref$iterations","_ref$resetBeforeItera","resetBeforeIteration","isFinished","iterationsSoFar","restart","animatedEvent","forkEvent","unforkEvent","__removeListener","Event","inAnimationCallback","mockAnimationStart","guardedCallback","emptyAnimation","mockCompositeAnimation","anyValue","AnimatedImplementation","isTesting","AnimatedMock","dimensions","fontScale","shouldInit","canUseDOM","win","visualViewport","docEl","documentElement","clientHeight","clientWidth","devicePixelRatio","handleResize","handler","dimension","initialDimensions","_handler","NEWTON_ITERATIONS","SUBDIVISION_PRECISION","SUBDIVISION_MAX_ITERATIONS","kSampleStepSize","float32ArraySupported","Float32Array","A","aA1","aA2","B","C","calcBezier","aT","getSlope","bezier","mX1","mY1","mX2","mY2","sampleValues","getTForX","intervalStart","currentSample","kSplineTableSize","guessForT","initialSlope","_aGuessT","aGuessT","currentSlope","newtonRaphsonIterate","_aA","_aB","currentX","currentT","binarySubdivide","_t","_t2","t2","x1","y1","x2","y2","_bezier","deepDiffer","one","two","maxDepth","len","ii","twoKey","safeIsNaN","isNaN","areInputsEqual","newInputs","lastInputs","first","second","numColumnsOrDefault","numColumns","_React$PureComponent","_virtualizedListPairs","_captureRef","_listRef","_getItem","ret","kk","itemIndex","_getItemCount","isArrayLike","_keyExtractor","_this$props$keyExtrac","defaultKeyExtractor","_renderer","ListItemComponent","columnWrapperStyle","extraData","cols","render","renderProp","info","_item2","it","separators","_memoizedRenderer","resultFn","isEqual","memoized","newArgs","lastThis","lastArgs","lastResult","memoizeOne","_checkProps","viewabilityConfigCallbackPairs","pair","viewabilityConfig","onViewableItemsChanged","_createOnViewableItemsChanged","scrollToEnd","scrollToItem","scrollToOffset","recordInteraction","flashScrollIndicators","getScrollResponder","getScrollRef","prevProps","getItemCount","horizontal","v","_this$props$keyExtrac2","changed","viewableItems","_pushMultiColumnViewable","removeClippedSubviews","_this$props","_removeClippedSubviews","_this$props$strictMod","strictMode","restProps","renderer","VirtualizedList","allowRTL","forceRTL","getConstants","dataUriPattern","ImageUriCache","_entries","lastUsedTimestamp","refCount","_cleanUpIfNeeded","leastRecentlyUsedKey","leastRecentlyUsedEntry","imageUris","_maximumEntries","entry","requests","ImageLoader","abort","requestId","getSize","success","failure","complete","interval","setInterval","clearInterval","onLoad","onError","onDecode","decode","prefetch","queryCache","uris","u","LOADED","LOADING","_filterId","svgDataUriPattern","resolveAssetUri","preferredScale","reduce","prev","curr","prefix","_ariaLabel","blurRadius","defaultSource","draggable","onLoadEnd","onLoadStart","rest","ariaLabel","updateState","updateLayout","hasTextAncestor","TextAncestorContext","hiddenImageRef","filterRef","requestRef","shouldDisplaySource","_extractNonStandardSt","filterId","tintColorProp","flatStyle","resizeMode","warnOnce","filters","_filter","shadowString","createBoxShadowValue","extractNonStandardStyleProps","_resizeMode","_tintColor","selectedSource","displayImageUri","imageSizeStyle","_getAssetByID","resolveAssetDimensions","backgroundImage","backgroundSize","_hiddenImageRef$curre","_height3","_width3","scaleFactor","getBackgroundSize","hiddenImage","alt","accessibilityImage$raw","abortPendingRequest","_layout","root","inline","undo","boxShadow","resizeModeStyles","suppressHydrationWarning","floodColor","in2","operator","createTintColorSVG","ImageWithStatics","overlayColor","absoluteFillObject","backgroundPosition","backgroundRepeat","center","contain","cover","none","repeat","stretch","TaskQueue","onMoreTasks","_onMoreTasks","_queueStack","tasks","popable","task","_getCurrentQueue","enqueue","tasksToCancel","shift","gen","_genPromise","run","stackIdx","stackItem","hasTasksToProcess","ex","isSupported","requestIdleCallback","didTimeout","timeRemaining","cancelIdleCallback","_emitter","Events","interactionStart","interactionComplete","runAfterInteractions","promise","_scheduleUpdate","_taskQueue","enqueueTasks","cancel","cancelTasks","_inc","_addInteractionSet","_deleteInteractionSet","setDeadline","deadline","_deadline","_interactionSet","_nextUpdateHandle","_processUpdate","interactionCount","nextInteractionCount","begin","processNext","isVisible","dismissKeyboard","elementRef","ReactDOM","getAnimationStyle","animationType","animatedSlideInStyles","animatedSlideOutStyles","animatedFadeInStyles","animatedFadeOutStyles","hidden","right","animatedIn","ANIMATION_DURATION","animatedOut","fadeIn","fadeOut","slideIn","slideOut","onDismiss","onShow","isRendering","setIsRendering","wasVisible","wasRendering","isAnimated","animationEndCallback","currentTarget","onAnimationEnd","ModalContent","active","closeOnEscape","stopPropagation","modal","modalTransparent","modalOpaque","FocusBracket","tabIndex","focusBracket","attemptFocus","focus","activeElement","focusFirstDescendant","childNodes","focusLastDescendant","trapElementRef","focusRef","trapFocusInProgress","lastFocusedElement","trapFocus","hasFocused","UIManager","lastFocusedElementOutsideTrap","outlineStyle","uniqueModalIdentifier","activeModalStack","activeModalListeners","notifyActiveModalListeners","activeModalId","modalId","removeActiveModal","_props$visible","isActive","setIsActive","onDismissCallback","onShowCallback","addActiveModal","ModalPortal","ModalAnimation","ModalFocusTrap","layoutSize","ratio","emptyFunction","canUsePassiveEvents","supported","supportsPassiveEvents","isPropagationStopped","cancelBubble","isDefaultPrevented","defaultPrevented","opts","getOptions","compatListener","persist","previousModality","previousActiveModality","activeModality","modality","isEmulatingMouseEvents","KEYBOARD","MOUSE","TOUCH","CONTEXTMENU","MOUSEDOWN","MOUSEMOVE","MOUSEUP","POINTERDOWN","POINTERMOVE","SCROLL","SELECTIONCHANGE","TOUCHCANCEL","TOUCHMOVE","TOUCHSTART","bubbleOptions","passive","captureOptions","restoreModality","callListeners","onPointerish","eventType","PointerEvent","pointerType","touches","metaKey","altKey","ctrlKey","visibilityState","useEvent","targetListeners","useStable","removeTargetListener","emptyObject","lockEventType","unlockEventType","supportsPointerEvent","dispatchCustomEvent","payload","createEvent","_ref$bubbles","bubbles","_ref$cancelable","cancelable","detail","initCustomEvent","getPointerType","useForceableState","forced","cursor","touchAction","MemoedPressable","memo","delayLongPress","delayPressIn","delayPressOut","onContextMenu","onHoverIn","onHoverOut","onKeyDown","onLongPress","onPressMove","onPressIn","onPressOut","testOnly_hovered","testOnly_pressed","_useForceableState","hovered","setHovered","_useForceableState2","focused","setFocused","_useForceableState3","pressed","setPressed","hostRef","setRef","pressConfig","delayPressStart","delayPressEnd","onPressChange","onPressStart","onPressEnd","pressEventHandlers","usePressEvents","onContextMenuPress","onKeyDownPress","targetRef","onHoverStart","onHoverChange","onHoverUpdate","onHoverEnd","canUsePE","addMoveListener","addEnterListener","addLeaveListener","addLockListener","addUnlockListener","hoverEnd","leaveListener","moveListener","clientX","clientY","hoverStart","lockEvent","useHover","_tabIndex","interactionState","blurHandler","focusHandler","contextMenuHandler","keyDownHandler","colors","enabled","onRefresh","progressBackgroundColor","progressViewOffset","refreshing","titleColor","normalizeScrollEvent","contentOffset","scrollLeft","scrollTop","contentSize","scrollHeight","scrollWidth","layoutMeasurement","offsetHeight","offsetWidth","timeStamp","ScrollViewBase","onScroll","onTouchMove","onWheel","_props$scrollEnabled","scrollEnabled","_props$scrollEventThr","showsHorizontalScrollIndicator","scrollState","isScrolling","scrollLastTick","scrollTimeout","scrollRef","createPreventableScrollHandler","handleScrollTick","hideScrollbar","handleScrollEnd","lastTick","eventThrottle","timeSinceLastTick","shouldEmitScrollEvent","handleScrollStart","scrollDisabled","overflowX","overflowY","scrollbarWidth","_React$Component","_scrollNodeRef","_innerViewRef","isTouching","lastMomentumScrollBeginTime","lastMomentumScrollEndTime","observedScrollSinceBecomingResponder","becameResponderWhileAnimating","scrollResponderHandleScrollShouldSetResponder","scrollResponderHandleStartShouldSetResponderCapture","scrollResponderIsAnimating","scrollResponderHandleTerminationRequest","scrollResponderHandleTouchEnd","onTouchEnd","scrollResponderHandleResponderRelease","currentlyFocusedTextInput","TextInputState","currentlyFocusedField","onScrollResponderKeyboardDismissed","blurTextInput","scrollResponderHandleScroll","scrollResponderHandleResponderGrant","scrollResponderHandleScrollBeginDrag","onScrollBeginDrag","scrollResponderHandleScrollEndDrag","onScrollEndDrag","scrollResponderHandleMomentumScrollBegin","onMomentumScrollBegin","scrollResponderHandleMomentumScrollEnd","onMomentumScrollEnd","scrollResponderHandleTouchStart","onTouchStart","scrollResponderHandleTouchMove","scrollResponderScrollTo","scroll","behavior","scrollResponderZoomTo","rect","scrollResponderScrollNativeHandleToKeyboard","nodeHandle","additionalOffset","preventNegativeScrollOffset","additionalScrollOffset","measureLayout","getInnerViewNode","scrollResponderTextInputFocusError","scrollResponderInputMeasureAndScrollToKeyboard","keyboardScreenY","keyboardWillOpenTo","screenY","scrollOffsetY","scrollResponderKeyboardWillShow","onKeyboardWillShow","scrollResponderKeyboardWillHide","onKeyboardWillHide","scrollResponderKeyboardDidShow","scrollResponderKeyboardDidHide","scrollResponderFlashScrollIndicators","getInnerViewRef","getNativeScrollRef","scrollTo","scrollResponderNode","_handleContentOnLayout","_e$nativeEvent$layout","onContentSizeChange","_handleScroll","keyboardDismissMode","_setInnerViewRef","_setScrollNodeRef","mergeRefs","warning","contentContainerStyle","refreshControl","stickyHeaderIndices","pagingEnabled","centerContent","contentSizeChangeProps","hasStickyHeaderIndices","isSticky","stickyHeader","pagingEnabledChild","contentContainer","contentContainerHorizontal","contentContainerCenterContent","baseStyle","baseHorizontal","baseVertical","pagingEnabledStyle","pagingEnabledHorizontal","pagingEnabledVertical","scrollResponderHandleStartShouldSetResponder","onStartShouldSetResponderCapture","onScrollShouldSetResponder","onResponderTerminate","scrollResponderHandleTerminate","onResponderReject","scrollResponderHandleResponderReject","ScrollViewClass","scrollView","commonStyle","WebkitOverflowScrolling","scrollSnapType","scrollSnapAlign","ForwardedScrollView","ItemWithSeparator","LeadingSeparatorComponent","SeparatorComponent","cellKey","prevCellKey","setSelfHighlightCallback","updateHighlightFor","setSelfUpdatePropsCallback","updatePropsFor","section","leadingSeparatorHiglighted","setLeadingSeparatorHighlighted","separatorHighlighted","setSeparatorHighlighted","_React$useState3","leadingItem","leadingSection","trailingItem","trailingSection","leadingSeparatorProps","setLeadingSeparatorProps","_React$useState4","separatorProps","setSeparatorProps","highlight","unhighlight","updateProps","newProps","leadingSeparator","highlighted","separator","VirtualizedSectionList","_subExtractor","_convertViewable","viewable","_info$index","keyExtractorWithNullableIndex","keyExtractorWithNonNullableIndex","_onViewableItemsChanged","listItemCount","infoIndex","header","renderSectionHeader","renderSectionFooter","_getSeparatorComponent","SectionSeparatorComponent","_setUpdateHighlightFor","_setUpdatePropsFor","_updateHighlightFor","_updatePropsFor","_updatePropsMap","updateHighlight","_updateHighlightMap","updateHighlightFn","updatePropsFn","sectionIndex","sections","viewOffset","stickySectionHeadersEnabled","__getFrameMetricsApprox","toIndexParams","passThroughProps","ItemSeparatorComponent","listHeaderOffset","ListHeaderComponent","itemCount","itemIdx","sectionData","_this$props2","isLastItemInList","isLastItemInSection","_wrapperListRef","scrollToLocation","listRef","getListRef","_stickySectionHeadersEnabled","setBackgroundColor","setBarStyle","setHidden","setNetworkActivityIndicatorVisible","setTranslucent","isWebColor","colorInt","unitlessNumbers","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flexOrder","flexPositive","flexNegative","fontWeight","gridRow","gridRowEnd","gridRowGap","gridRowStart","gridColumn","gridColumnEnd","gridColumnGap","gridColumnStart","lineClamp","order","orphans","tabSize","widows","zoom","fillOpacity","floodOpacity","stopOpacity","strokeMiterlimit","strokeOpacity","scaleZ","prefixes","charAt","toUpperCase","prefixKey","colorProps","textDecorationColor","textShadowColor","normalizeValueWithProperty","returnValue","createCSSStyleSheet","textContent","ShadowRoot","insertBefore","firstChild","slice","createOrderedCSSStyleSheet","group","groups","selectors","cssRule","selectorText","groupPattern","decodeGroupRule","getSelectorText","sheetInsert","orderedGroups","getOrderedGroups","nextGroupIndex","nextGroup","isInserted","insertRule","insertRuleAt","groupNumber","previousStart","OrderedCSSStyleSheet","getTextContent","marker","sort","unshift","insert","groupValue","markerRule","encodeGroupRule","selectorPattern","selector","defaultId","roots","sheets","initialRules","createSheet","getRootNode","initialSheet","supportsCSS3TextDecoration","CSS","supports","SYSTEM_FONT_STACK","STYLE_SHORT_FORM_EXPANSIONS","borderBlockColor","borderInlineColor","borderStyle","borderBlockStyle","borderInlineStyle","borderBlockWidth","borderInlineWidth","insetBlock","insetInline","marginBlock","marginInline","paddingBlock","paddingInline","overscrollBehavior","borderBlockStartColor","borderBlockStartStyle","borderBlockStartWidth","borderBlockEndColor","borderBlockEndStyle","borderBlockEndWidth","borderEndStartRadius","borderEndEndRadius","borderStartStartRadius","borderStartEndRadius","insetBlockEnd","insetBlockStart","marginBlockStart","marginBlockEnd","paddingBlockStart","paddingBlockEnd","isInline","resolvedStyle","_loop","backgroundClip","WebkitBackgroundClip","stack","textDecorationLine","textDecoration","direction","longFormProperties","marginTop","paddingLeft","paddingRight","longForm","seed","h","murmurhash2_32_gc","uppercasePattern","msPattern","toHyphenLower","hName","w","wms","plugins","crossFade","imageSet","logical","sizing","transition","prefixMap","appearance","textEmphasisPosition","textEmphasis","textEmphasisStyle","textEmphasisColor","boxDecorationBreak","clipPath","maskImage","maskMode","maskRepeat","maskPosition","maskClip","maskOrigin","maskSize","maskComposite","mask","maskBorderSource","maskBorderMode","maskBorderSlice","maskBorderWidth","maskBorderOutset","maskBorderRepeat","maskBorder","maskType","textDecorationStyle","textDecorationSkip","breakAfter","breakBefore","breakInside","columnFill","columnGap","columnRule","columnRuleColor","columnRuleStyle","columnRuleWidth","columns","columnSpan","columnWidth","backdropFilter","hyphens","flowInto","flowFrom","regionFragment","textOrientation","fontKerning","textSizeAdjust","createPrefixer","staticData","classicGroup","atomicGroup","customGroup","inset","borderInlineStartColor","borderInlineStartStyle","borderInlineStartWidth","borderInlineEndColor","borderInlineEndStyle","borderInlineEndWidth","insetInlineEnd","insetInlineStart","marginInlineStart","marginInlineEnd","paddingInlineStart","paddingInlineEnd","borderLeftStyle","borderLeftWidth","borderRightStyle","borderRightWidth","PROPERTIES_FLIP","_PROPERTIES_FLIP","PROPERTIES_I18N","PROPERTIES_VALUE","atomic","compiledStyle","$$css","compiledRules","atomicCompile","srcProp","identifier","valueString","normalizedValue","stringifyValueWithProperty","cacheKey","cachedResult","createIdentifier","_processKeyframesValu2","processKeyframesValue","animationNames","keyframesRules","block","createDeclarationBlock","animationName","_block","finalValue","_block2","_block3","_block4","_block5","_block6","createAtomicRules","orderedRules","localizeableValue","_left","_right","propPolyfill","ltr","rtl","polyfillIndices","ltrPolyfillValues","rtlPolyfillValues","ltrVal","ltrPolyfill","rtlPolyfill","_ltr","_rtl","domStyle","prefixStyles","createReactDOMStyle","hyphenateStyleName","keyframesValue","keyframes","_createKeyframes","steps","stepName","createKeyframes","staticStyleMap","defaultPreprocessOptions","shadow","textShadow","insertRules","compiledOrderedRules","compileAndInsertReset","_classic","_processKeyframesValu","classic","absoluteFill","compiledStyles","styleObj","_atomic","preprocess","compileAndInsertAtomic","styleProps","preprocessOptions","styleq","factory","localizeStyle","customStyleq","originalStyle","frozenProps","nextStyle","originalValue","originalProp","originalValues","valuePolyfill","style1","style2","flatArray","flat","getSheet","hairlineWidth","__REACT_DEVTOOLS_GLOBAL_HOOK__","resolveRNStyle","defaultOffset","offsetX","offsetY","createTextShadowValue","textShadowOffset","textShadowRadius","radius","mapTransform","createTransformValue","PROPERTIES_STANDARD","borderEndStyle","borderEndWidth","borderStartStyle","borderStartWidth","marginEnd","marginHorizontal","marginStart","paddingEnd","paddingStart","paddingVertical","ignoredProps","boxShadowValue","textShadowValue","_value2","verticalAlign","CSS_UNIT_RE","multiple","isFinite","thumbDefaultBoxShadow","thumbFocusedBoxShadow","defaultDisabledTrackColor","defaultDisabledThumbColor","Switch","activeThumbColor","activeTrackColor","_props$disabled","thumbColor","trackColor","_props$value","thumbRef","handleFocusState","_StyleSheet$flatten","styleHeight","styleWidth","minWidth","multiplyStyleLengthValue","trackBorderRadius","trackCurrentColor","true","false","thumbCurrentColor","thumbHeight","thumbWidth","rootStyle","cursorDefault","disabledTrackColor","disabledThumbColor","thumb","thumbActive","nativeControl","checked","cursorInherit","forcedColorAdjust","transitionDuration","createContext","forwardPropsList","forwardedProps","lang","hrefAttrs","numberOfLines","onClick","onMoveShouldSetResponderCapture","onResponderEnd","onResponderStart","onScrollShouldSetResponderCapture","onSelectionChangeShouldSetResponder","onSelectionChangeShouldSetResponderCapture","selectable","contextDirection","useLocaleContext","useElementLayout","useResponderEvents","handleClick","component","langDirection","getLocaleDirection","componentDirection","dir","supportedProps","pick","pickProps","WebkitLineClamp","textHasAncestor$raw","text$raw","textOneLine","textMultiLine","notSelectable","pressable","download","platformMethodsRef","usePlatformMethods","Provider","textStyle","border","boxSizing","listStyle","whiteSpace","wordWrap","maxWidth","textOverflow","WebkitBoxOrient","setSelection","selection","selectionEnd","selectionStart","isSelectionStale","setSelectionRange","autoCapitalize","autoComplete","autoFocus","maxLength","readOnly","rows","spellCheck","focusTimeout","_inputMode","_props$autoCapitalize","autoCompleteType","_props$autoCorrect","blurOnSubmit","caretHidden","clearTextOnFocus","editable","enterKeyHint","inputMode","keyboardType","_props$multiline","multiline","onKeyPress","onSelectionChange","onSubmitEditing","_props$readOnly","returnKeyType","_props$secureTextEntr","secureTextEntry","selectTextOnFocus","showSoftInputOnFocus","prevSelection","prevSecureTextEntry","handleContentSizeChange","hostNode","newHeight","newWidth","imperativeRef","isFocused","_currentlyFocusedNode","shouldBlurOnSubmit","isComposing","keyCode","isEventComposing","shiftKey","preventDefault","blur","_e$target","_selection","textinput$raw","virtualkeyboardpolicy","State","MozAppearance","WebkitAppearance","resize","caretColor","createExtraStyles","activeOpacity","underlay","hasPressHandler","actionable","MemoedTouchableHighlight","focusable","onHideUnderlay","onShowUnderlay","rejectResponderTermination","extraStyles","setExtraStyles","showUnderlay","hideUnderlay","only","accessibilityDisabled","transitionProperty","MemoedTouchableOpacity","setDuration","opacityOverride","setOpacityOverride","setOpacityTo","setOpacityActive","setOpacityInactive","isGrant","dispatchConfig","registrationName","accessibilityLiveRegion","accessibilityValue","nativeID","MemoedTouchableWithoutFeedback","elementProps","isCustomProperty","isUnitlessNumber","styleName","styleValue","dangerousStyleValue","setProperty","getRect","offsetLeft","offsetTop","offsetParent","nodeType","clientLeft","clientTop","scrollY","scrollX","relativeToNativeNode","relativeNode","parentNode","isConnected","relativeRect","_getRect","elementsToIgnore","BODY","INPUT","SELECT","TEXTAREA","nodeName","getAttribute","isContentEditable","measure","_getBoundingClientRec","onFail","onSuccess","updateView","setValueForStyles","configureNextLayoutAnimation","onAnimationDidEnd","setLayoutAnimationEnabledExperimental","view$raw","processIDRefList","idRefList","pointerEventsStyles","auto","elementType","ariaActiveDescendant","accessibilityActiveDescendant","ariaAtomic","accessibilityAtomic","ariaAutoComplete","accessibilityAutoComplete","ariaBusy","accessibilityBusy","ariaChecked","accessibilityChecked","ariaColumnCount","accessibilityColumnCount","ariaColumnIndex","accessibilityColumnIndex","ariaColumnSpan","accessibilityColumnSpan","ariaControls","accessibilityControls","ariaCurrent","accessibilityCurrent","ariaDescribedBy","accessibilityDescribedBy","ariaDetails","accessibilityDetails","ariaDisabled","ariaErrorMessage","accessibilityErrorMessage","ariaExpanded","accessibilityExpanded","ariaFlowTo","accessibilityFlowTo","ariaHasPopup","accessibilityHasPopup","ariaHidden","accessibilityHidden","ariaInvalid","accessibilityInvalid","ariaKeyShortcuts","accessibilityKeyShortcuts","ariaLabelledBy","accessibilityLabelledBy","ariaLevel","accessibilityLevel","ariaLive","ariaModal","accessibilityModal","ariaMultiline","accessibilityMultiline","ariaMultiSelectable","accessibilityMultiSelectable","ariaOrientation","accessibilityOrientation","ariaOwns","accessibilityOwns","ariaPlaceholder","accessibilityPlaceholder","ariaPosInSet","accessibilityPosInSet","ariaPressed","accessibilityPressed","ariaReadOnly","accessibilityReadOnly","ariaRequired","accessibilityRequired","ariaRoleDescription","accessibilityRoleDescription","ariaRowCount","accessibilityRowCount","ariaRowIndex","accessibilityRowIndex","ariaRowSpan","accessibilityRowSpan","ariaSelected","accessibilitySelected","ariaSetSize","accessibilitySetSize","ariaSort","accessibilitySort","ariaValueMax","accessibilityValueMax","ariaValueMin","accessibilityValueMin","ariaValueNow","accessibilityValueNow","ariaValueText","accessibilityValueText","dataSet","domProps","AccessibilityUtil","propsToAriaRole","_ariaActiveDescendant","_ariaAtomic","_ariaAutoComplete","_ariaBusy","_ariaChecked","_ariaColumnCount","_ariaColumnIndex","_ariaColumnSpan","_ariaControls","_ariaCurrent","_ariaDescribedBy","_ariaDetails","_ariaErrorMessage","_ariaExpanded","_ariaFlowTo","_ariaHasPopup","_ariaHidden","_ariaInvalid","_ariaKeyShortcuts","_ariaLabelledBy","_ariaLevel","_ariaLive","_ariaModal","_ariaMultiline","_ariaMultiSelectable","_ariaOrientation","_ariaOwns","_ariaPlaceholder","_ariaPosInSet","_ariaPressed","_ariaReadOnly","_ariaRequired","required","_ariaRoleDescription","_ariaRowCount","_ariaRowIndex","_ariaRowSpan","_ariaSelected","_ariaSetSize","_ariaSort","_ariaValueMax","_ariaValueMin","_ariaValueNow","_ariaValueText","dataProp","dataName","dataValue","_StyleSheet","className","inlineStyle","_id","accessibilityComponent","propsToAccessibilityComponent","createDOMProps","LocaleProvider","locale","int32Color","useWindowDimensions","dims","setDims","handleChange","unmountComponentAtNode","hydrate","domHydrateRoot","reactRoot","domCreateRoot","hydrateLegacy","domLegacyHydrate","unmount","renderLegacy","domLegacyRender","isScreenReaderEnabled","prefersReducedMotionMedia","matchMedia","handlers","AccessibilityInfo","isReduceMotionEnabled","matches","fetch","setAccessibilityFocus","reactTag","announceForAccessibility","announcement","Alert","listenerMapping","getColorScheme","addChangeListener","mappedListener","colorScheme","RootTagContext","AppContainer","WrapperComponent","innerView","appContainer","rootTag","wrapperComponentProvider","runnables","componentProviderInstrumentationHook","AppRegistry","appKey","appParameters","getApplication","componentProvider","RootComponent","initialProps","dangerouslySetInnerHTML","__html","shouldHydrate","renderFn","renderApplication","registerRunnable","registerComponent","hook","provider","isPrefixed","EVENT_TYPES","VISIBILITY_CHANGE_EVENT","VISIBILITY_STATE_PROPERTY","AppStates","changeEmitter","AppState","isAvailable","currentState","exitApp","clipboardAvailable","Clipboard","queryCommandSupported","getSelection","removeAllRanges","createRange","selectNodeContents","addRange","execCommand","configureNext","Presets","easeInEaseOut","springDamping","Types","freeze","easeIn","easeOut","keyboard","Properties","scaleXY","checkConfig","initialURL","location","Linking","_eventCallbacks","filteredCallbacks","_dispatchEvent","urlToOpen","TouchHistoryMath","centroidDimension","touchHistory","touchesChangedAfter","isXAxis","ofCurrent","touchBank","total","oneTouchData","numberActiveTouches","indexOfSingleActiveTouch","touchActive","currentTimeStamp","currentPageX","currentPageY","previousPageX","previousPageY","touchTrack","noCentroid","currentCentroidXOfTouchesChangedAfter","currentCentroidYOfTouchesChangedAfter","previousCentroidXOfTouchesChangedAfter","previousCentroidYOfTouchesChangedAfter","currentCentroidX","currentCentroidY","PanResponder","_initializeGestureState","gestureState","moveX","moveY","y0","dx","dy","vx","vy","_accountsForMovesUpTo","_updateGestureStateOnMove","movedAfter","prevX","prevY","nextDX","nextDY","dt","mostRecentTimeStamp","shouldCancelClick","timeout","stateID","panHandlers","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","onStartShouldSetPanResponderCapture","onMoveShouldSetPanResponderCapture","clearInteractionTimeout","onPanResponderGrant","onShouldBlockNativeResponder","onPanResponderReject","onPanResponderRelease","setInteractionTimeout","onPanResponderStart","onPanResponderMove","onPanResponderEnd","onPanResponderTerminate","onPanResponderTerminationRequest","onClickCapture","getInteractionHandle","Share","content","share","vibrate","Button","button","buttonDisabled","textDisabled","textTransform","CheckBox","fakeControl","fakeControlChecked","fakeControlDisabled","fakeControlCheckedAndDisabled","ImageBackground","imageRef","KeyboardAvoidingView","keyboardFrame","keyboardY","keyboardVerticalOffset","Picker","selectedValue","itemStyle","prompt","selectedIndex","initial","Item","ProgressBar","_props$indeterminate","indeterminate","_props$progress","progress","_props$trackColor","percentageProgress","cssFunction","SafeAreaView","twoArgumentPooler","a1","a2","Klass","instancePool","standardReleaser","destructor","poolSize","DEFAULT_POOLER","addPoolingTo","CopyConstructor","pooler","NewKlass","getPooled","release","PooledClass","BoundingDimensions","getPooledFromElement","Position","extractSingleTouch","changedTouches","hasTouches","hasChangedTouches","States","baseStatesConditions","NOT_RESPONDER","RESPONDER_INACTIVE_PRESS_IN","RESPONDER_INACTIVE_PRESS_OUT","RESPONDER_ACTIVE_PRESS_IN","RESPONDER_ACTIVE_PRESS_OUT","RESPONDER_ACTIVE_LONG_PRESS_IN","RESPONDER_ACTIVE_LONG_PRESS_OUT","ERROR","IsActive","IsPressingIn","IsLongPressingIn","Signals","Transitions","DELAY","RESPONDER_GRANT","RESPONDER_RELEASE","RESPONDER_TERMINATED","ENTER_PRESS_RECT","LEAVE_PRESS_RECT","LONG_PRESS_DETECTED","TouchableMixin","componentDidMount","touchableNode","getTouchableNode","_touchableBlurListener","_isTouchableKeyboardActive","touchable","touchState","touchableHandleResponderTerminate","componentWillUnmount","touchableDelayTimeout","longPressDelayTimeout","pressOutDelayTimeout","pressInLocation","responderID","touchableGetInitialState","touchableHandleResponderTerminationRequest","touchableHandleStartShouldSetResponder","touchableLongPressCancelsPress","touchableHandleResponderGrant","dispatchID","_receiveSignal","delayMS","touchableGetHighlightDelayMS","_handleDelay","longDelayMS","touchableGetLongPressDelayMS","LONG_PRESS_THRESHOLD","_handleLongDelay","touchableHandleResponderRelease","touchableHandleResponderMove","positionOnActivate","dimensionsOnActivate","pressRectOffset","touchableGetPressRectOffset","pressExpandLeft","pressExpandTop","pressExpandRight","pressExpandBottom","hitSlop","touchableGetHitSlop","touch","_getDistanceBetweenPoints","_cancelLongPressDelayTimeout","prevState","touchableHandleFocus","touchableHandleBlur","_remeasureMetricsOnActivation","_handleQueryLayout","globalX","globalY","curState","signal","nextState","_performSideEffectsForTransition","_isHighlight","_savePressInLocation","locationX","locationY","bX","bY","deltaX","deltaY","curIsHighlight","newIsHighlight","isInitialTransition","isActiveTransition","touchableHandleLongPress","_startHighlight","_endHighlight","hasLongPressHandler","pressIsLongButStillCallOnPress","touchableHandlePress","_playTouchSound","playTouchSound","touchableHandleActivePressIn","touchableHandleActivePressOut","touchableGetPressOutDelayMS","touchableHandleKeyEvent","withoutDefaultFocusAndBlur","TouchableMixinWithoutDefaultFocusAndBlur","Touchable","Mixin","TOUCH_TARGET_DEBUG","renderDebugView","debugHitSlopStyle","hexColor","UnimplementedView","unimplementedViewStyles","YellowBox","ignoreWarnings","ignoreLogs","ignoreAllLogs","uninstall","install","useColorScheme","Appearance","setColorScheme","accessibilityRoleToWebRole","adjustable","imagebutton","keyboardkey","link","summary","_role","inferredRole","roleComponents","article","banner","blockquote","complementary","contentinfo","deletion","emphasis","figure","insertion","form","listitem","main","navigation","paragraph","region","strong","isDisabled","accessibilityStates","level","focusTextInput","textFieldNode","accessibilityProps","clickProps","onAuxClick","onGotPointerCapture","onLostPointerCapture","onPointerCancel","onPointerDown","onPointerEnter","onPointerMove","onPointerLeave","onPointerOut","onPointerOver","onPointerUp","focusProps","keyboardProps","onKeyDownCapture","onKeyUp","onKeyUpCapture","mouseProps","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOver","onMouseOut","onMouseUp","touchProps","onTouchCancel","onTouchCancelCapture","onTouchEndCapture","onTouchMoveCapture","onTouchStartCapture","nextObj","DOM_LAYOUT_HANDLER_NAME","resizeObserver","observer","ResizeObserver","observe","unobserve","rtlScripts","rtlLangs","LocaleContext","cachedRTL","Intl","Locale","script","maximize","isLocaleRTL","useContext","relativeToNode","RESPONDER_ACTIVE_LONG_PRESS_START","RESPONDER_ACTIVE_PRESS_START","RESPONDER_INACTIVE_PRESS_START","getElementRole","getElementType","tagName","isActiveSignal","isButtonRole","isPressStartSignal","isValidKeyPress","isSpacebar","isButtonish","PressResponder","_eventHandlers","_isPointerTouch","_longPressDelayTimeout","_longPressDispatched","_pressDelayTimeout","_pressOutDelayTimeout","_touchState","_responderElement","configure","_cancelPressDelayTimeout","_cancelPressOutDelayTimeout","_createEventHandlers","shouldDelay","_selectionTerminated","normalizeDelay","_handleLongPress","keyupHandler","isNativeInteractiveElement","isActiveElement","isSpacebarKey","getTouchFromResponderEvent","_touchActivatePosition","hypot","_this$_config","_this$_config2","_this$_config3","_performTransitionSideEffects","isTerminalSignal","isPrevActive","isNextActive","_activate","_deactivate","_this$_config4","_onLongPress","_this$_config5","_this$_config6","fallback","_event$nativeEvent","pressResponderRef","pressResponder","useDebugValue","getEventHandlers","emptyArray","normalizeIdentifier","createResponderEvent","domEvent","responderTouchHistoryStore","propagationWasStopped","domEventChangedTouches","domEventType","force","timestamp","normalizeTouches","emulatedTouches","responderEvent","eventPhase","isTrusted","MOUSE_DOWN","MOUSE_MOVE","MOUSE_UP","MOUSE_CANCEL","TOUCH_START","TOUCH_MOVE","TOUCH_END","TOUCH_CANCEL","SELECTION_CHANGE","isStartish","isMoveish","isEndish","isCancelish","keyName","composedPathFallback","getResponderId","getResponderPaths","idPath","nodePath","eventPath","anchorNode","composedPath","getEventPath","hasValidSelection","string","focusNode","isTextNode","TEXT_NODE","isSelectionValid","MAX_TOUCH_BANK","timestampForTouch","getTouchIdentifier","recordTouchStart","touchRecord","startPageX","startPageY","startTimeStamp","previousTimeStamp","resetTouchRecord","createTouchRecord","printTouch","printTouchBank","printed","ResponderTouchHistoryStore","_touchHistory","topLevelType","recordTouchMove","recordTouchEnd","touchTrackToCheck","activeRecord","startRegistration","moveRegistration","shouldSetResponderEvents","touchstart","mousedown","touchmove","mousemove","emptyResponder","responderListenersMap","trackedTouchCount","currentResponder","changeCurrentResponder","responder","getResponderConfig","eventListener","eventTarget","isStartEvent","buttons","noModifiers","isPrimaryPointerDown","isMoveEvent","isEndEvent","isScrollEvent","isScroll","isSelectionChangeEvent","isSelectionChange","recordTouchTrack","wantsResponder","eventPaths","wasNegotiated","currentResponderIdPath","eventIdPath","lowestCommonAncestor","pathA","pathB","pathALength","pathBLength","itemA","indexA","itemB","indexB","depth","getLowestCommonAncestor","shouldSetCallbacks","shouldSetCallbackCaptureName","shouldSetCallbackBubbleName","check","callbackName","shouldSetCallback","_id2","_node2","findWantsResponder","_currentResponder2","currentId","currentNode","_getResponderConfig2","_getResponderConfig3","allowTransfer","attemptTransfer","_currentResponder","_getResponderConfig","isTerminateEvent","relatedTarget","isReleaseEvent","hasTargetTouches","shouldTerminate","documentEventsCapturePhase","documentEventsBubblePhase","addNode","setResponderId","removeNode","_currentResponder3","terminateResponder","idCounter","getInitialValue","isAttachedRef","__reactResponderSystemActive","ResponderSystem","requiresResponderSystem","isResponder","UNINITIALIZED","Symbol","context","_this$_nativeModule","RCTDeviceEventEmitter","_this$_nativeModule2","_this$_nativeModule3","_this$_nativeModule4","elementsThatOverlapOffsets","offsets","getFrameMetrics","zoomScale","offsetIndex","currentOffset","mid","scaledOffsetStart","scaledOffsetEnd","newRangeCount","next","last","computeWindowedRenderLimits","maxToRenderPerBatch","windowSize","getFrameMetricsApprox","scrollMetrics","visibleLength","_scrollMetrics$zoomSc","visibleBegin","visibleEnd","overscanLength","fillPreference","overscanBegin","overscanEnd","_elementsThatOverlapO","overscanFirst","overscanLast","newCellCount","maxNewCells","firstWillAddMore","firstShouldIncrement","lastWillAddMore","lastShouldIncrement","Batchinator","_taskHandle","timeoutHandle","_console","log","CellRenderMask","numCells","_numCells","_regions","isSpacer","cells","_this$_regions","_this$_findRegion","_findRegion","firstIntersect","firstIntersectIdx","_this$_findRegion2","lastIntersect","lastIntersectIdx","newLeadRegion","newTailRegion","newMainRegion","replacementRegions","numRegionsToDelete","cellIdx","firstIdx","lastIdx","middleIdx","middleRegion","ChildListCollection","_cellKeyToChildren","_childrenToCellKey","_this$_cellKeyToChild","cellLists","listSet","_this$_cellKeyToChild2","_step3","_iterator3","_this$_cellKeyToChild3","_step4","_iterator4","Info","any_blank_count","any_blank_ms","any_blank_speed_sum","mostly_blank_count","mostly_blank_ms","pixels_blank","pixels_sampled","pixels_scrolled","total_time_spent","sample_count","_minSampleCount","_sampleRate","FillRateHelper","_anyBlankStartTime","_info","_mostlyBlankStartTime","_samplesStartTime","_getFrameMetrics","_resetData","performance","cellsAroundViewport","dOffset","scrollSpeed","blankTop","firstFrame","inLayout","blankBottom","lastFrame","bottomEdge","blankness","deactivateAndFlush","minSampleCount","StateSafePureComponent","_inAsyncStateUpdate","_installSetStateHooks","partialState","that","newState","_isViewable","viewAreaMode","viewablePercentThreshold","viewportHeight","itemLength","_isEntirelyVisible","pixels","visibleHeight","_getPixelsVisible","ViewabilityHelper","viewAreaCoveragePercentThreshold","_hasInteracted","_timers","_viewableIndices","_viewableItems","scrollOffset","renderRange","itemVisiblePercentThreshold","viewableIndices","firstVisible","metrics","createViewToken","waitForInteraction","computeViewableItems","minimumViewTime","_onUpdateSync","viewableIndicesToCheck","prevItems","nextItems","_step$value","_step2$value","_viewable","isViewable","VirtualizedListContext","VirtualizedListContextProvider","getScrollMetrics","getOutermostParentListRef","registerAsNestedChild","unregisterAsNestedChild","VirtualizedListCellContextProvider","currContext","CellRenderer","_separators","onUpdateSeparators","_this$props3","_onLayout","onCellLayout","setState","onUnmount","_this$props4","CellRendererComponent","inversionStyle","onCellFocusCapture","_renderElement","itemSeparator","cellStyle","rowReverse","columnReverse","onFocusCapture","_usedIndexForKey","_keylessItemComponentName","horizontalOrDefault","maxToRenderPerBatchOrDefault","onEndReachedThresholdOrDefault","onEndReachedThreshold","getScrollingThreshold","threshold","windowSizeOrDefault","_StateSafePureCompone","_this$props$updateCel","_getScrollMetrics","_scrollMetrics","_getOutermostParentListRef","_isNestedWithSameOrientation","_registerAsNestedChild","childList","_nestedChildLists","_unregisterAsNestedChild","_onUpdateSeparators","_cellRefs","updateSeparatorProps","_getSpacerKey","isVertical","_averageCellLength","_frames","_footerLength","_hasTriggeredInitialScrollToIndex","_hasMore","_hasWarned","_headerLength","_hiPriInProgress","_highestMeasuredFrameIndex","_indicesToKeys","_lastFocusedCellKey","_offsetFromParentVirtualizedList","_prevParentOffset","contentLength","_scrollRef","_sentStartForContentLength","_sentEndForContentLength","_totalCellLength","_totalCellsMeasured","_viewabilityTuples","_captureScrollRef","_defaultRenderScrollComponent","_props$refreshing","RefreshControl","_onCellLayout","_selectOffset","_selectLength","_scheduleCellsToRenderUpdate","_triggerRemeasureForChildListsInCell","_computeBlankness","_updateViewableItems","_onCellUnmount","measureLayoutRelativeToContainingList","_maybeCallOnEdgeReached","_onLayoutEmpty","_onLayoutFooter","_getFooterCellKey","_onLayoutHeader","_onContentSizeChange","initialScrollIndex","nullthrows","_convertParentScrollMetrics","_onScroll","_this$_convertParentS","perf","infoLog","prevDt","_fillRateHelper","activate","_onScrollBeginDrag","tuple","viewabilityHelper","_onScrollEndDrag","_onMomentumScrollBegin","_onMomentumScrollEnd","_updateCellsToRender","_adjustCellsAroundViewport","renderMask","_createRenderMask","_getNonViewportRenderRegions","equals","_createViewToken","_getOffsetApprox","isInteger","frameMetrics","remainder","getItemLayout","focusedCellIndex","heightOfCellsBeforeFocused","heightOfCellsAfterFocused","_updateCellsToRenderBatcher","updateCellsBatchingPeriod","initialRenderRegion","_initialRenderRegion","invertedWheelEventHandler","ev","scrollLength","clientLength","isEventTargetScrollable","delta","wheelDeltaX","wheelDeltaY","leftoverDelta","targetDelta","nextScrollLeft","nextScrollTop","veryLast","viewPosition","averageItemLength","highestMeasuredFrameIndex","_this$context","newCellsAroundViewport","_this$_scrollMetrics","distanceFromEnd","_constrainToItemCount","disableVirtualization","renderAhead","EPSILON","childIdx","_findFirstChildWithMore","cellKeyForIndex","anyInCell","hasMore","setupWebWheelHandler","dispose","teardownWebWheelHandler","stickyIndicesFromProps","debug","stickyOffset","shouldListenForLayout","_onCellFocusCapture","nestedContext","_this$props5","ListEmptyComponent","ListFooterComponent","_this$props6","horizontallyInverted","verticallyInverted","_element","_getCellKey","ListHeaderComponentStyle","_element2","spacerKey","renderRegions","enumerateRegions","lastSpacer","predicate","findLastWhere","clamp","firstMetrics","lastMetrics","spacerSize","_pushCells","_element3","ListFooterComponentStyle","scrollProps","invertStickyHeaders","renderScrollComponent","_renderDebugOverlay","_this$props7","resetViewableIndices","hiPriInProgress","computeBlankness","forEachInCell","_this5","framesInLayout","windowTop","frameLast","windowLen","visTop","visLen","debugOverlayBase","debugOverlay","debugOverlayFrame","debugOverlayFrameLast","debugOverlayFrameVis","_this$props8","onStartReached","onStartReachedThreshold","onEndReached","_this$_scrollMetrics2","distanceFromStart","isWithinStartThreshold","isWithinEndThreshold","_this$state$cellsArou","_this$_scrollMetrics3","hiPri","onStartReachedThresholdOrDefault","distTop","distBottom","schedule","_this6","additionalRegions","_i2","_allRegions","addCells","initialRegion","stickyIndicesSet","_ensureClosestStickyHeader","_props$initialScrollI","initialNumToRender","firstCellIndex","constrainedCells","contextType","_registry","registrations","registry","allocate","registration","_arr","hue2rgb","q","hslToRgb","cachedMatchers","NUMBER","PERCENTAGE","callWithSlashSeparator","commaSeparatedCall","parse255","int","parse360","parse1","num","parsePercentage","matchers","rgb","RegExp","rgba","hsl","hsla","hwb","hex3","hex4","hex6","hex8","getMatchers","exec","colorFromKeyword","normalizeKeyword","gray","red","green","blue","hwbToRgb","asn1","bignum","define","base","constants","decoders","encoders","inherits","Entity","_createNamed","named","entity","_initNamed","_getDecoder","enc","_getEncoder","encode","reporter","Reporter","Buffer","DecoderBuffer","isBuffer","EncoderBuffer","byteLength","save","restore","res","isEmpty","readUInt8","fail","skip","_reporterState","raw","out","write","copy","assert","tags","_baseState","reverseArgs","choice","optional","any","use","useDecoder","explicit","implicit","_wrap","stateProps","clone","cstate","method","_init","equal","_useArgs","arg","def","newKey","_decode","wrapResult","prevObj","present","prevKey","enterKey","_peekTag","isError","_decodeGeneric","_decodeChoice","enterObject","_decodeTag","_getUse","leaveObject","exitKey","leaveKey","_decodeList","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeBool","_decodeInt","_use","some","_createEncoderBuffer","_encode","_encodeValue","_skipDefault","primitive","_encodeChoice","_encodePrimitive","cls","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool","_isNumstr","_isPrintstr","errors","ReporterError","rethrow","pathLen","inherited","elem","partial","captureStackTrace","tagClass","tagClassByName","_reverse","tagByName","der","DERDecoder","tree","DERNode","derDecodeTag","oct","tagStr","derDecodeLen","buffer","decodedTag","_skipUntilEnd","decoder","possibleEnd","unused","fromCharCode","readUInt16BE","numstr","printstr","relative","identifiers","ident","subident","tmp","year","mon","day","hour","sec","UTC","pem","PEMDecoder","lines","re","DEREncoder","encodedTag","encodeTag","lenOctets","writeUInt16BE","objid","date","getFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","numArray","toArray","sign","dataBuffer","defaultBuffer","PEMEncoder","b64","lens","getLens","validLen","placeHoldersLen","toByteArray","Arr","_byteLength","curByte","revLookup","fromByteArray","uint8","extraBytes","parts","maxChunkLength","len2","encodeChunk","lookup","Uint8Array","output","ctor","superCtor","super_","TempCtor","BN","endian","isBN","negative","words","wordSize","parseHex4Bits","parseHexByte","lowerBound","parseBase","mul","cmp","_initNumber","_initArray","_parseHex","_parseBase","strip","limbLen","limbPow","mod","word","imuln","_iaddn","dest","_expand","_normSign","inspect","zeros","groupSizes","groupBases","smallMulTo","self","lo","carry","ncarry","rword","maxJ","groupSize","groupBase","isZero","modn","idivn","toNumber","toJSON","toBuffer","toArrayLike","ArrayType","reqLength","littleEndian","andln","iushrn","clz32","_countBits","_zeroBits","bitLength","hi","zeroBits","toTwos","inotn","iaddn","fromTwos","testn","notn","ineg","isNeg","neg","iuor","ior","or","uor","iuand","iand","and","uand","iuxor","ixor","xor","uxor","bytesNeeded","bitsLeft","setn","bit","wbit","iadd","isub","sub","comb10MulTo","a0","al0","ah0","al1","ah1","al2","ah2","a3","al3","ah3","a4","al4","ah4","a5","al5","ah5","a6","al6","ah6","a7","al7","ah7","a8","al8","ah8","a9","al9","ah9","b0","bl0","bh0","b1","bl1","bh1","b2","bl2","bh2","b3","bl3","bh3","b4","bl4","bh4","b5","bl5","bh5","b6","bl6","bh6","b7","bl7","bh7","b8","bl8","bh8","b9","bl9","bh9","w0","imul","w1","w2","w3","w4","w5","w6","w7","w8","w9","w10","w11","w12","w13","w14","w15","w16","w17","w18","jumboMulTo","FFTM","mulp","mulTo","hncarry","bigMulTo","makeRBT","revBin","rb","permute","rbt","rws","iws","rtws","itws","rtwdf","itwdf","rtwdf_","itwdf_","ie","ro","io","rx","guessLen13b","odd","conjugate","normalize13b","ws","convert13b","stub","ph","rwst","iwst","nrws","nrwst","niwst","rmws","mulf","muln","sqr","isqr","toBitArray","iushln","bits","carryMask","newCarry","ishln","hint","extended","maskedWords","ishrn","shln","ushln","shrn","ushrn","imaskn","maskn","isubn","addn","subn","iabs","_ishlnsubmul","_wordDiv","bhi","qj","div","divmod","positive","divn","umod","divRound","dm","half","r2","acc","egcd","D","isEven","yp","xp","im","isOdd","jm","gcd","_invmp","cmpn","invm","bincn","ucmp","gtn","gt","gten","gte","ltn","lt","lten","lte","eqn","eq","Red","toRed","ctx","convertTo","_forceRed","fromRed","convertFrom","forceRed","redAdd","redIAdd","redSub","redISub","redShl","shl","redMul","_verify2","redIMul","redSqr","_verify1","redISqr","redSqrt","redInvm","redNeg","redPow","primes","k256","p224","p192","p25519","MPrime","_tmp","K256","P224","P192","P25519","prime","_prime","Mont","imod","rinv","minv","ireduce","rlen","imulK","_strip","outLen","mod3","nOne","lpow","inv","wnd","currentLen","mont","Rand","rand","generate","_rand","getBytes","getByte","crypto","getRandomValues","msCrypto","randomBytes","asUInt32Array","readUInt32BE","scrubVec","cryptBlock","keySchedule","SUB_MIX","SBOX","nRounds","t0","t1","t3","SUB_MIX0","SUB_MIX1","SUB_MIX2","SUB_MIX3","s0","s1","s2","s3","ksRow","RCON","G","INV_SBOX","INV_SUB_MIX","xi","sx","x4","x8","AES","_reset","blockSize","keySize","keyWords","ksRows","invKeySchedule","ik","ksR","tt","_nRounds","_keySchedule","_invKeySchedule","encryptBlockRaw","encryptBlock","allocUnsafe","writeUInt32BE","decryptBlock","m1","scrub","aes","Transform","GHASH","incr32","StreamCipher","iv","decrypt","alloc","_cipher","ck","_ghash","_finID","ghash","toPad","ivBits","tail","writeUIntBE","calcIv","_prev","_cache","_secCache","_decrypt","_alen","_mode","_authTag","_called","_update","chunk","rump","encrypt","_final","final","xorTest","getAuthTag","setAuthTag","setAAD","ciphers","deciphers","modes","createCipher","Cipher","createCipheriv","Cipheriv","createDecipher","Decipher","createDecipheriv","Decipheriv","listCiphers","getCiphers","AuthCipher","MODES","ebtk","Splitter","_last","_autopadding","suite","password","thing","padded","unpad","setAutoPadding","setTo","autoPadding","PADDING","padBuff","writeUInt8","ZEROES","fromArray","_multiply","lsbVi","Vi","Zi","abl","bl","pad","encryptStart","encryptByte","byteParam","shiftIn","getBlock","chunkNum","modeModules","ECB","CBC","CFB","CFB8","CFB1","OFB","CTR","GCM","DES","aesModes","desModes","keyLen","ivLen","CipherBase","des","instantiate","EDE","modeName","_des","des3","getr","priv","prime1","prime2","crt","blinds","blinder","publicExponent","unblinder","blind","blinded","c1","c2","qinv","coefficient","exponent1","m2","exponent2","move","_move","for","modrn","_toArrayLikeLE","_toArrayLikeBE","isNegNum","createHash","verify","algorithms","Sign","algorithm","Writable","_hashType","_hash","_tag","_signType","Verify","createSign","createVerify","_write","digest","sig","sigBuffer","createHmac","EC","parseKeys","curves","getKey","algo","hlen","hbits","bits2int","bits2octets","obits","makeKey","kv","makeR","hashType","signType","curve","curveId","keyFromPrivate","privateKey","toDER","ecSign","priv_key","dsaSign","checkValue","pub","pubkey","subjectPrivateKey","ecVerify","pub_key","unpacked","signature","montp","dsaVerify","padNum","pna","objectKeys","Duplex","util","Readable","readable","allowHalfOpen","once","onend","_writableState","nextTick","onEndNT","highWaterMark","_readableState","destroyed","_destroy","PassThrough","_transform","encoding","ReadableState","EElistenerCount","emitter","Stream","OurUint8Array","debugUtil","debuglog","StringDecoder","BufferList","destroyImpl","kProxyEvents","isDuplex","objectMode","readableObjectMode","hwm","readableHwm","readableHighWaterMark","defaultHwm","pipes","pipesCount","flowing","endEmitted","reading","sync","needReadable","emittedReadable","readableListening","resumeScheduled","defaultEncoding","awaitDrain","readingMore","read","_read","destroy","readableAddChunk","addToFront","skipChunkCheck","er","emitReadable","onEofChunk","chunkInvalid","_uint8ArrayToBuffer","addChunk","maybeReadMore","needMoreData","_undestroy","undestroy","isPaused","setEncoding","MAX_HWM","howMuchToRead","computeNewHighWaterMark","emitReadable_","flow","maybeReadMore_","nReadingNextTick","resume_","fromList","hasStrings","nb","copyFromBufferString","copyFromBuffer","fromListPartial","endReadable","endReadableNT","xs","nOrig","doRead","pipe","pipeOpts","endFn","process","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","onclose","onfinish","ondrain","ondata","cleanedUp","needDrain","on","pipeOnDrain","increasedAwaitDrain","prependListener","dests","wrap","_fromList","afterTransform","ts","_transformState","transforming","writecb","writechunk","rs","needTransform","writeencoding","prefinish","err2","CorkedRequest","finish","corkReq","pendingcb","corkedRequestsFree","onCorkedFinish","asyncWrite","browser","WritableState","internalUtil","deprecate","realHasInstance","nop","writableObjectMode","writableHwm","writableHighWaterMark","finalCalled","ending","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","writelen","onwriteStateUpdate","finishMaybe","errorEmitted","onwriteError","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","prefinished","bufferedRequestCount","writev","_writev","doWrite","onwriteDrain","holder","allBuffers","isBuf","callFinal","need","getBuffer","hasInstance","object","writeAfterEnd","valid","validChunk","newChunk","decodeChunk","writeOrBuffer","cork","uncork","setDefaultEncoding","endWritable","Constructor","custom","emitErrorNT","readableDestroyed","writableDestroyed","copyProps","dst","SafeBuffer","encodingOrOffset","allocUnsafeSlow","SlowBuffer","isEncoding","nenc","retried","_normalizeEncoding","normalizeEncoding","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","byte","utf8CheckExtraBytes","utf8CheckIncomplete","ieee754","customInspectSymbol","INSPECT_MAX_BYTES","K_MAX_LENGTH","createBuffer","actual","fromString","ArrayBuffer","isView","arrayView","isInstance","fromArrayBuffer","byteOffset","fromArrayLike","fromArrayView","SharedArrayBuffer","numberIsNaN","fromObject","toPrimitive","assertSize","array","mustMatch","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","foundIndex","found","hexWrite","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","base64Write","ucs2Write","units","utf16leToBytes","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","decodeCodePointsArray","kMaxLength","TYPED_ARRAY_SUPPORT","proto","foo","typedArraySupport","_isBuffer","compare","pos","swap16","swap32","swap64","toLocaleString","thisStart","thisEnd","thisCopy","targetCopy","hexSliceLookupTable","checkOffset","ext","checkInt","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","subarray","readUintLE","readUIntLE","readUintBE","readUIntBE","readUint8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUInt32LE","readUint32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUintLE","writeUIntLE","writeUintBE","writeUint8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUint32LE","writeUInt32LE","writeUint32BE","writeIntLE","limit","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","copyWithin","INVALID_BASE64_RE","leadSurrogate","base64clean","alphabet","table","i16","hashMode","_finalOrDigest","__final","_decoder","_encoding","inputEnc","outputEnc","outData","_toString","fin","objectToString","isBoolean","isNull","isNullOrUndefined","isNumber","isString","isSymbol","isUndefined","isRegExp","isObject","isDate","isFunction","isPrimitive","elliptic","ECDH","aliases","secp256k1","secp224r1","prime256v1","prime192v1","ed25519","secp384r1","secp521r1","curveType","ec","formatReturnValue","bn","p256","secp256r1","secp192r1","p384","p521","generateKeys","format","genKeyPair","getPublicKey","computeSecret","inenc","keyFromPublic","getPublic","getPrivate","getX","getPrivateKey","setPublicKey","_importPublic","setPrivateKey","_priv","_importPrivate","MD5","RIPEMD160","sha","Base","Hash","alg","Legacy","md5","ZEROS","Hmac","blocksize","_alg","ipad","_ipad","opad","_opad","rng","pseudoRandomBytes","prng","algos","algoKeys","hashes","getHashes","pbkdf2","pbkdf2Sync","dh","DiffieHellmanGroup","createDiffieHellmanGroup","getDiffieHellman","createDiffieHellman","DiffieHellman","createECDH","publicEncrypt","privateEncrypt","publicDecrypt","privateDecrypt","rf","randomFill","randomFillSync","createCredentials","_typeof","iterator","_arrayLikeToArray","_arrayWithoutHoles","iter","_iterableToArray","minLen","_unsupportedIterableToArray","_nonIterableSpread","arr2","filterUniqueArray","assignStyle","baseValue","DASH","MS","toUpper","camelCaseProperty","camelProp","hyphenateProperty","cssifyDeclaration","cssifyObject","RE","isPrefixedProperty","isPrefixedValue","unitlessProperties","lineHeight","prefixedUnitlessProperties","getPrefixedProperty","jLen","_property","isUnitlessProperty","unprefixProperty","propertyWithoutPrefix","normalizeProperty","resolveArrayValue","unprefixValue","_hyphenateStyleName2","_hyphenateStyleName","utils","CBCState","_cbcInit","_cbcState","inp","inOff","outOff","superProto","bufferOff","_updateDecrypt","_updateEncrypt","_buffer","_flushBuffer","inputOff","outputOff","_finalEncrypt","_finalDecrypt","_pad","_unpad","DESState","_desState","deriveKeys","shiftTable","kL","kR","pc1","r28shl","pc2","ip","_encrypt","lStart","rStart","keyL","keyR","expand","substitute","rip","EDEState","k1","k2","k3","_edeState","inL","inR","outL","outR","pc2table","sTable","permuteTable","padSplit","generatePrime","DH","ENCODINGS","generator","genc","millerRabin","TWENTYFOUR","ELEVEN","TEN","THREE","SEVEN","_pub","primeCache","malleable","setGenerator","__prime","_primeLen","_primeCode","rem","simpleSieve","fermatTest","checkPrime","__gen","_gen","secret","getPrime","front","getGenerator","findPrime","ONE","TWO","FIVE","FOUR","_getPrimes","n2","eddsa","getNAF","getJSF","BaseCurve","conf","zero","pointFromJSON","gRed","_wnafT1","_wnafT2","_wnafT3","_wnafT4","_bitLength","adjustCount","redN","_maxwellTrick","BasePoint","precomputed","point","validate","_fixedNafMul","doubles","_getDoubles","naf","I","nafW","repr","jpoint","mixedAdd","points","toP","_wnafMul","nafPoints","_getNAFPoints","dblp","_wnafMulAdd","defW","coeffs","jacobianResult","wndWidth","comb","toJ","jsf","ja","jb","decodePoint","pointFromX","encodeCompressed","compact","getY","precompute","power","beta","_getBeta","_hasDoubles","dbl","EdwardsCurve","twisted","mOneA","dd","oneC","Point","zOne","_mulA","_mulC","rhs","lhs","pointFromY","isInfinity","fromJSON","_extDbl","nx","ny","nt","nz","_projDbl","_extAdd","_projAdd","mulAdd","jmulAdd","zi","eqXToP","xc","short","edwards","MontCurve","i4","a24","aa","bb","diffAdd","da","jumlAdd","ShortCurve","tinv","zeroA","threeA","endo","_getEndomorphism","_endoWnafT1","_endoWnafT2","isRed","inf","JPoint","lambda","betas","_getEndoRoots","lambdas","basis","vec","_getEndoBasis","ntinv","prevR","aprxSqrt","len1","_endoSplit","v1","v2","p1","p2","q1","q2","ax","_endoWnafMulAdd","npoints","ncoeffs","pre","endoMul","parse","obj2point","ys1","dyinv","_precompute","negate","zinv","zinv2","ay","pz2","z2","u1","u2","h2","h3","jx","jy","jz","jz4","jyd","jx2","jyd2","jyd4","dny","_zeroDbl","_threeDbl","_dbl","xx","yy","yyyy","yyyy8","c8","gamma","alpha","beta4","beta8","ggamma8","jy2","jxd4","jyd8","trpl","zz","mm","ee","yyu4","kbase","z3","pz3","zs","PresetCurve","defineCurve","sha256","sha384","sha512","HmacDRBG","KeyPair","Signature","nh","keyPair","fromPrivate","fromPublic","drbg","pers","persEnc","entropy","hmacStrength","entropyEnc","nonce","ns2","_truncateToN","truncOnly","bkey","ns1","kp","kpX","recoveryParam","canonical","sinv","recoverPubKey","isYOdd","isSecondKey","rInv","getKeyRecoveryParam","Q","Qprime","privEnc","pubEnc","reason","derive","_importDER","place","getLength","octetLen","rmPadding","constructLength","octets","LN2","slen","backHalf","parseBytes","EDDSA","pointClass","encodingLength","keyFromSecret","hashInt","messagePrefix","R","Rencoded","encodePoint","s_","pubBytes","S","makeSignature","SG","intFromLE","fromSecret","lastIx","normed","xIsOdd","encodeInt","decodeInt","isPoint","cachedProperty","_secret","_pubBytes","privBytes","getSecret","_R","_S","_Rencoded","_Sencoded","Sencoded","toBytes","toHex","minAssert","minUtils","zero2","m8","d1","d2","m14","m24","computer","ReflectOwnKeys","ReflectApply","receiver","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","init","errorListener","eventTargetAgnosticAddListener","flags","addErrorHandlerIfEventEmitter","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","_getMaxListeners","_addListener","prepend","existing","newListener","warned","onceWrapper","fired","wrapFn","_onceWrap","wrapped","unwrap","evlistener","unwrapListeners","arrayClone","wrapListener","setMaxListeners","getMaxListeners","doError","prependOnceListener","originalListener","spliceOne","rawListeners","eventNames","salt","keyBits","used","keyStart","ivStart","makeEmptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument","validateFormat","condition","argIndex","framesToPop","family","weight","E","F","fonts","J","L","vendor","O","P","race","detachEvent","common","ripemd","hmac","sha224","ripemd160","BlockHash","pending","pendingTotal","outSize","padLength","_delta8","_delta32","join32","_digest","inner","outer","rotl32","sum32","sum32_3","sum32_4","Kh","Ah","Bh","Ch","Dh","Eh","rh","sh","toHex32","split32","shaCommon","sum32_5","ft_1","sha1_K","SHA1","SHA256","SHA224","ch32","maj32","s0_256","s1_256","g0_256","g1_256","sha256_K","T1","T2","SHA512","SHA384","rotr64_hi","rotr64_lo","shr64_hi","shr64_lo","sum64","sum64_hi","sum64_lo","sum64_4_hi","sum64_4_lo","sum64_5_hi","sum64_5_lo","sha512_K","ch64_hi","xh","xl","yh","yl","zh","ch64_lo","zl","maj64_hi","maj64_lo","s0_512_hi","s0_512_lo","s1_512_hi","s1_512_lo","g0_512_hi","g0_512_lo","g1_512_hi","g1_512_lo","_prepareBlock","c0_hi","c0_lo","c1_hi","c1_lo","c2_hi","c2_lo","c3_hi","c3_lo","ah","al","bh","ch","cl","dl","eh","el","fh","fl","gh","gl","hh","hl","c4_hi","c4_lo","T1_hi","T1_lo","T2_hi","T2_lo","rotr32","p32","isSurrogatePair","htonl","zero8","predResist","minEntropy","_reseed","reseedInterval","V","nonceEnc","_hmac","kmac","reseed","addEnc","temp","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","_isObject2","combinedValue","processedValue","_prefixValue2","_addNewValuesOnly2","_processedValue","_prefixProperty2","_cssInJsUtils","CROSS_FADE_REGEX","grab","grabbing","FILTER_REGEX","_isPrefixedValue2","_isPrefixedValue","alternativeProps","alternativePropList","borderBlockStart","borderBlockEnd","borderInlineStart","borderInlineEnd","properties","propertyPrefixMap","outputValue","multipleValues","dashCaseProperty","_hyphenateProperty2","pLen","prefixMapping","prefixValue","webkitOutput","mozOutput","_capitalizeString2","WebkitTransition","WebkitTransitionProperty","MozTransition","MozTransitionProperty","Webkit","Moz","ms","addIfNew","prefixProperties","requiredPrefixes","capitalizedProperty","prefixedProperty","_capitalizeString","metaData","DataView","getNative","hashClear","hashDelete","hashGet","hashHas","hashSet","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","setCacheAdd","setCacheHas","SetCache","__data__","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","func","thisArg","resIndex","baseIndexOf","comparator","baseTimes","isArguments","isIndex","isTypedArray","isArr","isArg","isBuff","isType","skipIndexes","iteratee","baseAssignValue","objValue","arrayIncludes","arrayIncludesWith","arrayMap","baseUnary","cacheHas","isCommon","valuesLength","computed","valuesIndex","fromIndex","fromRight","arrayPush","isFlattenable","baseFlatten","isStrict","castPath","toKey","keysFunc","symbolsFunc","getRawTag","symToStringTag","toStringTag","baseFindIndex","baseIsNaN","strictIndexOf","baseGetTag","isObjectLike","baseIsEqualDeep","baseIsEqual","bitmask","customizer","equalArrays","equalByTag","equalObjects","getTag","argsTag","arrayTag","objectTag","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","matchData","noCustomizer","srcValue","COMPARE_PARTIAL_FLAG","isMasked","toSource","reIsHostCtor","funcProto","objectProto","funcToString","reIsNative","isLength","typedArrayTags","baseMatches","baseMatchesProperty","identity","isPrototype","nativeKeys","baseIsMatch","getMatchData","matchesStrictComparable","hasIn","isKey","isStrictComparable","baseGet","overRest","setToString","constant","baseSetToString","symbolProto","symbolToString","baseToString","trimmedEndIndex","reTrimStart","stringToPath","assignValue","isNew","coreJsData","baseRest","isIterateeCall","assigner","sources","guard","arraySome","isPartial","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","mapToArray","setToArray","symbolValueOf","convert","stacked","getAllKeys","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","freeGlobal","baseGetAllKeys","getSymbols","isKeyable","baseIsNative","nativeObjectToString","isOwn","unmasked","arrayFilter","stubArray","propertyIsEnumerable","nativeGetSymbols","symbol","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","Ctor","ctorString","hasFunc","nativeCreate","spreadableSymbol","isConcatSpreadable","reIsUint","reIsDeepProp","reIsPlainProp","maskSrcKey","uid","IE_PROTO","assocIndexOf","getMapData","memoize","overArg","freeExports","freeModule","freeProcess","nodeUtil","types","binding","nativeMax","otherArgs","freeSelf","shortOut","nativeNow","lastCalled","stamp","pairs","LARGE_ARRAY_SIZE","memoizeCapped","rePropName","reEscapeChar","quote","subString","reWhitespace","copyObject","createAssigner","baseDifference","isArrayLikeObject","differenceWith","baseIteratee","toInteger","baseHasIn","hasPath","baseIsArguments","stubFalse","baseIsTypedArray","nodeIsTypedArray","arrayLikeKeys","baseKeys","Cache","baseProperty","basePropertyDeep","INFINITY","toFinite","baseTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","isBinary","HashBase","ARRAY16","_c","_d","rotl","fnF","fnG","fnH","fnI","_blockOffset","_length","_blockSize","_finalized","throwIfNotStringOrBuffer","brorand","MillerRabin","_randbelow","min_bytes","_randrange","rone","n1","rn1","getDivisor","certificate","RSAPrivateKey","seq","RSAPublicKey","AlgorithmIdentifier","null_","PublicKey","bitstr","PrivateKeyInfo","octstr","PrivateKey","EncryptedPrivateKeyInfo","EncryptedPrivateKey","DSAPrivateKey","DSAparam","ECParameters","namedCurve","ECPrivateKey","asn","Time","utcTime","utctime","generalTime","gentime","AttributeTypeValue","SubjectPublicKeyInfo","RelativeDistinguishedName","setof","RDNSequence","seqof","Name","rdnSequence","Validity","Extension","bool","TBSCertificate","X509Certificate","findProc","startRegex","fullRegex","evp","okey","decrypted","cipherText","cipherKey","cipher","match2","aesid","fixProc","compat","passphrase","subtype","ndata","stripped","tbsCertificate","subjectPublicKeyInfo","subjectPublicKey","kde","kdeparams","iters","keylen","parameters","ZERO_BUF","checkParameters","subtle","toBrowser","checks","getNextTick","queueMicrotask","browserPbkdf2","importKey","deriveBits","resolvePromise","prom","checkNative","resp","MAX_ALLOC","sizes","rmd160","saltLen","shaFunc","rmd160Func","getDigest","ipad1","ipad2","DK","block1","destPos","hLen","U","arg1","arg2","arg3","i2ops","mgf","withPublic","reverse","zBuffer","iHash","maskedSeed","maskedDb","db","dif","oaep","ps","pkcs1","publicKey","paddedMsg","hLen2","dblen","cur","nonZero","MAX_BYTES","MAX_UINT32","generated","oldBrowser","safeBuffer","randombytes","kBufferMaxLength","kMaxUint32","assertOffset","actualFill","ourBuf","uint","ca","ea","fa","ha","ia","ka","la","ma","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","ra","sa","ta","pa","qa","oa","setAttributeNS","xlinkHref","ua","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","va","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","prepareStackTrace","Pa","Qa","$$typeof","_context","_payload","Ra","Sa","Ta","Va","_valueTracker","Ua","Wa","Xa","Ya","defaultChecked","_wrapperState","initialChecked","Za","controlled","ab","ownerDocument","eb","fb","defaultSelected","gb","hb","ib","kb","lb","mb","namespaceURI","innerHTML","MSApp","execUnsafeLocalFunction","ob","lastChild","nodeValue","pb","gridArea","gridRowSpan","gridColumnSpan","qb","sb","tb","menuitem","area","br","col","embed","hr","keygen","wbr","ub","vb","is","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","return","Wb","memoizedState","dehydrated","Xb","Zb","sibling","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","unstable_now","unstable_getCurrentPriorityLevel","fc","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","lc","oc","pc","qc","rc","sc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","yc","zc","Ac","eventTimes","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","pointerId","Tc","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","ed","fd","gd","hd","Uc","jd","kd","ld","md","nd","od","charCode","pd","qd","rd","_reactName","_targetInst","isPersistent","wd","xd","yd","sd","td","ud","view","vd","Ad","screenX","getModifierState","zd","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","which","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","isPrimary","Vd","targetTouches","Xd","Yd","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","fe","ge","he","le","datetime","email","month","tel","week","me","ne","oe","pe","qe","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","Be","Ce","De","Ee","Fe","He","Ie","Je","Ke","nextSibling","Le","compareDocumentPosition","Me","HTMLIFrameElement","contentWindow","Ne","contentEditable","Oe","focusedElem","selectionRange","defaultView","extend","rangeCount","anchorOffset","focusOffset","setStart","setEnd","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","$e","af","bf","cf","df","ef","ff","gf","hf","lf","mf","nf","Ub","of","pf","qf","sf","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","char","ke","xf","yf","zf","Af","Bf","Cf","Df","Ef","Ff","Gf","Hf","Jf","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","Vf","Wf","Xf","Yf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","childContextTypes","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","gg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","zg","Ag","Bg","deletions","Cg","pendingProps","treeContext","retryLane","Dg","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","Mg","Ng","Og","Pg","Qg","Rg","_currentValue","Sg","childLanes","Tg","dependencies","firstContext","lanes","Ug","Vg","memoizedValue","Wg","Xg","Yg","interleaved","Zg","$g","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","effects","eventTime","lane","ih","jh","kh","_reactInternals","enqueueSetState","lh","mh","enqueueReplaceState","enqueueForceUpdate","oh","shouldComponentUpdate","isPureReactComponent","updater","qh","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","_owner","_stringRef","th","uh","vh","wh","implementation","Fh","Gh","Hh","Ih","Jh","Lh","Mh","revealOrder","Nh","Oh","_workInProgressVersionPrimary","Ph","ReactCurrentDispatcher","Qh","Rh","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","baseQueue","di","ei","fi","lastRenderedReducer","action","hasEagerState","eagerState","lastRenderedState","dispatch","gi","ji","ki","getSnapshot","li","mi","ni","lastEffect","stores","oi","pi","qi","ri","deps","si","ti","ui","vi","wi","yi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","readContext","useInsertionEffect","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","getDerivedStateFromError","componentDidCatch","Si","componentStack","Ti","pingCache","Ui","Wi","Xi","ReactCurrentOwner","Yi","$i","aj","bj","cj","dj","ej","baseLanes","cachePool","transitions","fj","gj","hj","ij","jj","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","kj","lj","pendingContext","mj","Aj","Bj","Cj","Dj","nj","oj","pj","rj","tj","dataset","dgst","uj","vj","_reactRetry","sj","subtreeFlags","wj","xj","isBackwards","rendering","renderingStartTime","tailMode","yj","Ej","Fj","Gj","wasMultiple","onclick","createElementNS","Hj","Ij","Jj","Kj","Lj","WeakSet","Mj","Nj","Oj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","_reactRootContainer","Xj","X","Yj","Zj","ak","onCommitFiberUnmount","bk","dk","ek","fk","isHidden","gk","hk","jk","lk","__reactInternalSnapshotBeforeUpdate","Wk","mk","nk","ok","pk","Y","Z","qk","rk","sk","tk","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","finishedWork","finishedLanes","Qk","Rk","Sk","Tk","Uk","Vk","mutableReadLanes","Bc","Pj","onCommitFiberRoot","mc","onRecoverableError","Xk","onPostCommitFiberRoot","Yk","Zk","isReactComponent","pendingChildren","mutableSourceEagerHydrationData","pendingSuspenseBoundaries","il","jl","zj","$k","ll","reportError","ml","_internalRoot","nl","ol","pl","ql","sl","rl","unstable_scheduleHydration","querySelectorAll","tl","usingClientEntryPoint","ul","findFiberByHostInstance","bundleType","rendererPackageName","vl","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","wl","supportsFiber","inject","createPortal","createRoot","unstable_strictMode","flushSync","hydrateRoot","hydratedSources","_getVersion","_source","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","sortIndex","startTime","expirationTime","priorityLevel","scheduling","isInputPending","MessageChannel","port2","port1","onmessage","postMessage","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","unstable_wrapCallback","Fragment","jsx","jsxs","forceUpdate","escape","_status","Children","Profiler","PureComponent","StrictMode","Suspense","cloneElement","_currentValue2","_threadCount","Consumer","_defaultValue","_globalName","createFactory","isValidElement","lazy","startTransition","unstable_act","codes","createErrorType","NodeError","_Base","subClass","superClass","getMessage","__proto__","oneOf","expected","determiner","this_len","endsWith","createReadableStreamAsyncIterator","getHighWaterMark","_require$codes","ERR_INVALID_ARG_TYPE","ERR_STREAM_PUSH_AFTER_EOF","ERR_METHOD_NOT_IMPLEMENTED","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","errorOrDestroy","emitClose","autoDestroy","updateReadableListening","consume","wState","asyncIterator","iterable","ERR_MULTIPLE_CALLBACK","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","rState","_Object$setPrototypeO","prim","_toPrimitive","_toPropertyKey","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","readAndResolve","onReadable","AsyncIteratorPrototype","ReadableStreamAsyncIteratorPrototype","lastPromise","wrapForNext","_Object$create","enumerableOnly","symbols","sym","getOwnPropertyDescriptors","defineProperties","_defineProperties","descriptor","protoProps","staticProps","_getString","_getBuffer","customInspect","emitErrorAndCloseNT","emitCloseNT","ERR_STREAM_PREMATURE_CLOSE","noop","eos","called","onlegacyfinish","writableEnded","readableEnded","onrequest","req","setHeader","isRequest","ERR_MISSING_ARGS","to","streams","popCallback","destroys","closed","destroyer","ERR_INVALID_OPT_VALUE","duplexKey","highWaterMarkFrom","pipeline","zr","sr","_e","fn1","fn2","fn3","fn4","fn5","ar","cr","dr","tr","finalSize","_finalSize","accum","assigned","lowBits","highBits","Algorithm","Sha","_w","rotl30","ft","Sha1","rotl5","Sha256","Sha224","_f","_g","_h","maj","sigma0","sigma1","gamma0","Sha384","_ah","_bh","_ch","_dh","_eh","_fh","_gh","_hh","_al","_bl","_cl","_dl","_el","_fl","_gl","_hl","writeInt64BE","Sha512","Gamma0","Gamma0l","Gamma1","Gamma1l","getCarry","gamma0l","gamma1","gamma1l","Wi7h","Wi7l","Wi16h","Wi16l","Wil","Wih","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Kih","Kil","chh","chl","t1l","t1h","t2l","t2h","EE","_isStdio","didOnEnd","cleanup","createStyleq","disableCache","disableMix","definedProperties","nextCache","possibleStyle","classNameChunk","cacheEntry","definedPropertiesChunk","weakMap","subStyle","_prop","markerProp","compiledStyleIndex","_cachedStyles","_compiledStyle","compileStyle","cachedStyles","localStorage","trace","arrayLikeToArray","objectWithoutPropertiesLoose","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","arrayWithoutHoles","iterableToArray","nonIterableSpread","asyncGeneratorStep","_next","_throw","_objectSpread2","ReferenceError","_setPrototypeOf","toPropertyKey"],"sourceRoot":""} \ No newline at end of file