AI对话调试
authorliangzhenying <867174124@qq.com>
Mon, 10 Feb 2025 01:45:29 +0000 (09:45 +0800)
committerliangzhenying <867174124@qq.com>
Mon, 10 Feb 2025 01:45:29 +0000 (09:45 +0800)
210 files changed:
Doc/IOTBluetooth_iOS/IOTBluetooth/Example/AbilityViewController.swift
Doc/IOTBluetooth_iOS/IOTBluetooth/Example/Datas.swift
Doc/IOTBluetooth_iOS/IOTBluetooth/Example/LogViewController.swift
Doc/IOTBluetooth_iOS/IOTBluetooth/Example/Resource/AIAudio.sbc [new file with mode: 0644]
Doc/IOTBluetooth_iOS/IOTBluetooth/Example/ViewController.swift
Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.framework/Headers/IOTBluetooth-Swift.h
Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.framework/IOTBluetooth [changed mode: 0755->0644]
Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.framework/Info.plist
Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.framework/Modules/IOTBluetooth.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo
Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.framework/Modules/IOTBluetooth.swiftmodule/arm64-apple-ios.abi.json
Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.framework/Modules/IOTBluetooth.swiftmodule/arm64-apple-ios.private.swiftinterface
Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.framework/Modules/IOTBluetooth.swiftmodule/arm64-apple-ios.swiftdoc
Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.framework/Modules/IOTBluetooth.swiftmodule/arm64-apple-ios.swiftinterface
Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.framework/Modules/IOTBluetooth.swiftmodule/arm64-apple-ios.swiftmodule
Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.framework/_CodeSignature/CodeDirectory [new file with mode: 0644]
Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.framework/_CodeSignature/CodeRequirements [new file with mode: 0644]
Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.framework/_CodeSignature/CodeRequirements-1 [new file with mode: 0644]
Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.framework/_CodeSignature/CodeResources
Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.framework/_CodeSignature/CodeSignature [new file with mode: 0644]
Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.xcodeproj/project.pbxproj
Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.xcodeproj/project.xcworkspace/xcuserdata/yaozuopan.xcuserdatad/UserInterfaceState.xcuserstate [new file with mode: 0644]
Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/xcschememanagement.plist [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Example/AbilityViewController.swift
IOTBluetooth/IOTBluetooth/Example/AppDelegate.swift
IOTBluetooth/IOTBluetooth/Example/ChatCell.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Example/ChatViewController.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Example/Datas.swift
IOTBluetooth/IOTBluetooth/Example/Resource/nangua.lzma [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Example/ViewController.swift
IOTBluetooth/IOTBluetooth/IOTBluetooth.xcodeproj/project.pbxproj
IOTBluetooth/IOTBluetooth/IOTBluetooth.xcodeproj/project.xcworkspace/xcuserdata/yaozuopan.xcuserdatad/UserInterfaceState.xcuserstate
IOTBluetooth/IOTBluetooth/IOTBluetooth.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
IOTBluetooth/IOTBluetooth/IOTBluetooth.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/xcschememanagement.plist
IOTBluetooth/IOTBluetooth/IOTBluetooth.xcworkspace/contents.xcworkspacedata [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/IOTBluetooth.xcworkspace/xcuserdata/yaozuopan.xcuserdatad/UserInterfaceState.xcuserstate [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/IOTBluetooth.xcworkspace/xcuserdata/yaozuopan.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/IOTBluetooth/IBAiManager.swift
IOTBluetooth/IOTBluetooth/IOTBluetooth/IBNotify.swift
IOTBluetooth/IOTBluetooth/IOTBluetooth/IBluetooth.swift
IOTBluetooth/IOTBluetooth/IOTBluetooth/Models/IBAiResponse.swift
IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/Headers/MixSdk-Swift.h [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/Headers/MixSdk.h [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/Info.plist [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/MixSdk [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/Modules/MixSdk.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/Modules/MixSdk.swiftmodule/arm64-apple-ios.abi.json [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/Modules/MixSdk.swiftmodule/arm64-apple-ios.private.swiftinterface [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/Modules/MixSdk.swiftmodule/arm64-apple-ios.swiftdoc [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/Modules/MixSdk.swiftmodule/arm64-apple-ios.swiftinterface [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/Modules/MixSdk.swiftmodule/arm64-apple-ios.swiftmodule [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/Modules/module.modulemap [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/PrivacyInfo.xcprivacy [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/_CodeSignature/CodeDirectory [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/_CodeSignature/CodeRequirements [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/_CodeSignature/CodeRequirements-1 [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/_CodeSignature/CodeResources [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/_CodeSignature/CodeSignature [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixTools.framework/Headers/AiAudioDecoder.h [moved from IOTBluetooth/IOTBluetooth/IOTBluetooth/MixTools.framework/Headers/AiAudioDecoder.h with 100% similarity]
IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixTools.framework/Headers/AudioTransform.h [moved from IOTBluetooth/IOTBluetooth/IOTBluetooth/MixTools.framework/Headers/AudioTransform.h with 100% similarity]
IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixTools.framework/Headers/MSUtils.h [moved from IOTBluetooth/IOTBluetooth/IOTBluetooth/MixTools.framework/Headers/MSUtils.h with 100% similarity]
IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixTools.framework/Headers/MixTools.h [moved from IOTBluetooth/IOTBluetooth/IOTBluetooth/MixTools.framework/Headers/MixTools.h with 100% similarity]
IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixTools.framework/Headers/lame.h [moved from IOTBluetooth/IOTBluetooth/IOTBluetooth/MixTools.framework/Headers/lame.h with 100% similarity]
IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixTools.framework/Info.plist [moved from IOTBluetooth/IOTBluetooth/IOTBluetooth/MixTools.framework/Info.plist with 100% similarity]
IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixTools.framework/MixTools [moved from IOTBluetooth/IOTBluetooth/IOTBluetooth/MixTools.framework/MixTools with 100% similarity]
IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixTools.framework/Modules/module.modulemap [moved from IOTBluetooth/IOTBluetooth/IOTBluetooth/MixTools.framework/Modules/module.modulemap with 100% similarity]
IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixTools.framework/_CodeSignature/CodeDirectory [moved from IOTBluetooth/IOTBluetooth/IOTBluetooth/MixTools.framework/_CodeSignature/CodeDirectory with 100% similarity]
IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixTools.framework/_CodeSignature/CodeRequirements [moved from IOTBluetooth/IOTBluetooth/IOTBluetooth/MixTools.framework/_CodeSignature/CodeRequirements with 100% similarity]
IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixTools.framework/_CodeSignature/CodeRequirements-1 [moved from IOTBluetooth/IOTBluetooth/IOTBluetooth/MixTools.framework/_CodeSignature/CodeRequirements-1 with 100% similarity]
IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixTools.framework/_CodeSignature/CodeResources [moved from IOTBluetooth/IOTBluetooth/IOTBluetooth/MixTools.framework/_CodeSignature/CodeResources with 100% similarity]
IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixTools.framework/_CodeSignature/CodeSignature [moved from IOTBluetooth/IOTBluetooth/IOTBluetooth/MixTools.framework/_CodeSignature/CodeSignature with 100% similarity]
IOTBluetooth/IOTBluetooth/Podfile.lock [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Configuration/IQActiveConfiguration.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Configuration/IQBarButtonItemConfiguration.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Configuration/IQKeyboardConfiguration.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Configuration/IQRootControllerConfiguration.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Configuration/IQScrollViewConfiguration.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Configuration/IQToolbarConfiguration.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Configuration/IQToolbarPlaceholderConfiguration.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Constants/IQKeyboardManagerConstants.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+Debug.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+Deprecated.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+Internal.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+Position.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+Toolbar.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+ToolbarActions.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+UIKeyboardNotification.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+UITextFieldViewNotification.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQKeyboardManagerCompatible/IQKeyboardManagerCompatible.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQTextView/IQPlaceholderable.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQTextView/IQTextView.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQBarButtonItem.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQInvocation.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQPreviousNextView.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQTitleBarButtonItem.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQToolbar.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQUIView+IQKeyboardToolbar.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQUIView+IQKeyboardToolbarDeprecated.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/LIsteners/IQKeyboardListener.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/LIsteners/IQTextFieldViewListener.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/LIsteners/Info/IQKeyboardInfo.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/LIsteners/Info/IQTextFieldViewInfo.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/PrivacyInfo.xcprivacy [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/ReturnKeyHandler/IQKeyboardReturnKeyHandler+TextFieldDelegate.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/ReturnKeyHandler/IQKeyboardReturnKeyHandler+TextViewDelegate.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/ReturnKeyHandler/IQKeyboardReturnKeyHandler.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/ReturnKeyHandler/IQTextFieldViewInfoModel.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/UIKitExtensions/IQNSArray+Sort.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/UIKitExtensions/IQUICollectionView+Additions.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/UIKitExtensions/IQUIScrollView+Additions.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/UIKitExtensions/IQUITableView+Additions.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/UIKitExtensions/IQUITextFieldView+Additions.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/UIKitExtensions/IQUIView+Hierarchy.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/UIKitExtensions/IQUIViewController+Additions.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/UIKitExtensions/MainActor+AssumeIsolated.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/UIKitExtensions/UIImage+NextPrevious.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/LICENSE.md [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/README.md [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Manifest.lock [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Pods.xcodeproj/project.pbxproj [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Pods.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/IQKeyboardManagerSwift-IQKeyboardManagerSwift.xcscheme [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Pods.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/IQKeyboardManagerSwift.xcscheme [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Pods.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/Pods-Example.xcscheme [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Pods.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/SnapKit-SnapKit_Privacy.xcscheme [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Pods.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/SnapKit.xcscheme [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Pods.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/Toast-Swift-Toast-Swift.xcscheme [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Pods.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/Toast-Swift.xcscheme [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Pods.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/xcschememanagement.plist [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/SnapKit/LICENSE [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/SnapKit/README.md [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/Constraint.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintAttributes.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintConfig.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintConstantTarget.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintDSL.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintDescription.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintDirectionalInsetTarget.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintDirectionalInsets.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintInsetTarget.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintInsets.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintItem.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintLayoutGuide+Extensions.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintLayoutGuide.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintLayoutGuideDSL.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintLayoutSupport.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintLayoutSupportDSL.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintMaker.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintMakerEditable.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintMakerExtendable.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintMakerFinalizable.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintMakerPrioritizable.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintMakerRelatable+Extensions.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintMakerRelatable.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintMultiplierTarget.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintOffsetTarget.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintPriority.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintPriorityTarget.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintRelatableTarget.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintRelation.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintView+Extensions.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintView.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintViewDSL.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/Debugging.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/LayoutConstraint.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/LayoutConstraintItem.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/PrivacyInfo.xcprivacy [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/Typealiases.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/UILayoutSupport+Extensions.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-Info.plist [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-dummy.m [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-prefix.pch [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-umbrella.h [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift.debug.xcconfig [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift.modulemap [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift.release.xcconfig [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Target Support Files/IQKeyboardManagerSwift/ResourceBundle-IQKeyboardManagerSwift-IQKeyboardManagerSwift-Info.plist [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Pods-Example/Pods-Example-Info.plist [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Pods-Example/Pods-Example-acknowledgements.markdown [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Pods-Example/Pods-Example-acknowledgements.plist [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Pods-Example/Pods-Example-dummy.m [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Pods-Example/Pods-Example-frameworks-Debug-input-files.xcfilelist [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Pods-Example/Pods-Example-frameworks-Debug-output-files.xcfilelist [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Pods-Example/Pods-Example-frameworks-Release-input-files.xcfilelist [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Pods-Example/Pods-Example-frameworks-Release-output-files.xcfilelist [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Pods-Example/Pods-Example-frameworks.sh [new file with mode: 0755]
IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Pods-Example/Pods-Example-umbrella.h [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Pods-Example/Pods-Example.debug.xcconfig [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Pods-Example/Pods-Example.modulemap [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Pods-Example/Pods-Example.release.xcconfig [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Target Support Files/SnapKit/ResourceBundle-SnapKit_Privacy-SnapKit-Info.plist [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Target Support Files/SnapKit/SnapKit-Info.plist [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Target Support Files/SnapKit/SnapKit-dummy.m [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Target Support Files/SnapKit/SnapKit-prefix.pch [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Target Support Files/SnapKit/SnapKit-umbrella.h [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Target Support Files/SnapKit/SnapKit.debug.xcconfig [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Target Support Files/SnapKit/SnapKit.modulemap [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Target Support Files/SnapKit/SnapKit.release.xcconfig [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Toast-Swift/ResourceBundle-Toast-Swift-Toast-Swift-Info.plist [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Toast-Swift/Toast-Swift-Info.plist [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Toast-Swift/Toast-Swift-dummy.m [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Toast-Swift/Toast-Swift-prefix.pch [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Toast-Swift/Toast-Swift-umbrella.h [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Toast-Swift/Toast-Swift.debug.xcconfig [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Toast-Swift/Toast-Swift.modulemap [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Toast-Swift/Toast-Swift.release.xcconfig [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Toast-Swift/LICENSE [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Toast-Swift/README.md [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Toast-Swift/Toast/Resources/PrivacyInfo.xcprivacy [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/Pods/Toast-Swift/Toast/Toast.swift [new file with mode: 0644]
IOTBluetooth/IOTBluetooth/podfile [new file with mode: 0644]

index af036f4..aca7796 100644 (file)
@@ -10,16 +10,24 @@ import IOTBluetooth
 
 class AbilityViewController: BaseViewController {
     
+    
+    
     @IBOutlet weak var listView: UITableView!
     
     override func viewDidLoad() {
         super.viewDidLoad()
         title = "已连接" + IBManager.currentConnected!.name
+        navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Log", style: .plain, target: self, action: #selector(showLog))
     }
     
     deinit {
         IBManager.remove(self)
     }
+    
+    @objc func showLog(){
+        let vc = storyboard!.instantiateViewController(identifier: "LogViewController")
+        navigationController?.pushViewController(vc, animated: true)
+    }
 }
 
 extension AbilityViewController: UITableViewDelegate, UITableViewDataSource {
@@ -72,18 +80,17 @@ extension AbilityViewController: UITableViewDelegate, UITableViewDataSource {
 }
 extension AbilityViewController{
     func sendOta(){
-        //OTA升级的固件要跟手表版本对应
         guard let path = Bundle.main.path(forResource: "20240604_155433_2_V1.0.1_20240618_113111_ota", ofType: "fwpkg") else {return}
         let info = IBSendOta()
         info.major = 2
         info.mid = 1
-        info.minor = 5
+        info.minor = 4
         info.isForced = 0
         info.filePath = path
         
         activityIndicatorView.startAnimating()
         IBFileSender().ota(info).progress({ total, current in
-            print("\(total) : \(current)")
+//            print("\(total) : \(current)")
         }).response {[weak self]  result in
             print(result)
             self?.activityIndicatorView.stopAnimating()
@@ -97,7 +104,7 @@ extension AbilityViewController{
         
         activityIndicatorView.startAnimating()
         IBFileSender().mp3(info).progress({ total, current in
-            print("\(total) : \(current)")
+//            print("\(total) : \(current)")
         }).response {[weak self]  result in
             print(result)
             self?.activityIndicatorView.stopAnimating()
@@ -112,15 +119,15 @@ extension AbilityViewController{
 //        let file = IBDialFile()
 //        file.filePath = path
 //        file.fileName = "galaxy.lzma"
-//
+//        
 //        let info = IBDial()
 //        info.UID = 0
 //        info.files = [file]
-//
+//        
 //        info.batteryStyle  = 1
 //        info.timeStyle = 1
 //        info.timeColor = 1
-//
+//        
 //        activityIndicatorView.startAnimating()
 //        IBFileSender().dial(info).progress({ total, current in
 //            print("\(total) : \(current)")
@@ -132,23 +139,30 @@ extension AbilityViewController{
     
     //目前只支持表盘市场
     func sendMarketDial(){
+//系统表盘
+//    ID: 101 | Name: sportdial
+//    ID: 102 | Name: kaleidoscope
+//    ID: 1052 | Name: classic
+//    ID: 103 | Name: jellyfish
+//    ID: 1028 | Name: KUMI
+        
         guard let path = Bundle.main.path(forResource: "galaxy", ofType: "lzma") else {return}
         let file = IBDialFile()
         file.filePath = path
         file.fileName = "galaxy.lzma"
         
         let info = IBDial()
-        info.UID = 10001
+        info.UID = 10002
         info.files = [file]
         
-        info.theme = "黑暗"
+        info.theme = "黑暗001"
         
-        activityIndicatorView.startAnimating()
+//        activityIndicatorView.startAnimating()
         IBFileSender().dial(info).progress({ total, current in
             print("\(total) : \(current)")
         }).response {[weak self]  result in
             print(result)
-            self?.activityIndicatorView.stopAnimating()
+//            self?.activityIndicatorView.stopAnimating()
         }
     }
     
index b1f17b8..f824194 100644 (file)
@@ -11,8 +11,19 @@ import IOTBluetooth
 
 
 let datas: [(ability: IBAbility, label: String, parameters: [IBParameter])] = [
+    (.sendSchedule,"发送日程管理给手表",[.sendSchedule([IBSchedule()])]),
+    (.getSosContact,"获取OS紧急联系人",[]),
+    (.setSosContact,"设置SOS紧急联系人",[.setSosContact([IBContact()])]),
+    
+    (.getPushConfig,"获取推送配置",[]),
+    (.setPushConfig,"设置推送",[.setPush(IBPush.all)]),
+    
+    (.getPasssword,"获取密码",[]),
+    (.setPasssword,"启用密码",[.setPassword(IBPassword(type: 1, password: "123456"))]),
+    (.setPasssword,"删除密码",[.setPassword(IBPassword(type: 0, password: ""))]),
+    
     (.userData,"设置用户数据",[.userInfo(IBUserInfo())]),
-    (.language, "设置语言", [.language(.english)]),
+    (.language, "设置语言", [.language(.chinese)]),
     (.about,"关于本机内容",[]),
     (.find, "开始查找手表", [.action(1)]),
     (.find, "停止查找手表", [.action(0)]),
@@ -49,14 +60,14 @@ let datas: [(ability: IBAbility, label: String, parameters: [IBParameter])] = [
     (.sendUnpair, "发送取消解除配对消息", []),
     
     
-    (.startSport, "开启指定运动模式", [.motionMode(.running)]),
+    (.startSport, "开启指定运动模式", [.motionMode(.walking)]),
     (.trainPauseResume, "训练暂停", [.action(0)]),
     (.trainPauseResume, "训练恢复", [.action(1)]),
     (.endSport, "结束运动模式", []),
     
     (.heartRateMode, "开启自动获取实时心率", [.action(1)]),
     (.heartRateMode, "关闭自动获取实时心率", [.action(0)]),
-    (.heartRateHigh, "设置最高心率提醒", [.value(240)]),
+    (.heartRateHigh, "设置最高心率提醒", [.value(180)]),
     (.heartRateHigh, "关闭最高心率提醒", [.value(0)]),
     (.fetchHeartRate, "获取手表心率参数", []),
     (.heartRate, "设置手表心率参数", [.heartRate(IBHeartRate())]),
@@ -118,15 +129,15 @@ class Config{
     }
     static func setVibrateSound()->IBVibrateConfig{
         let model = IBVibrateConfig()
-        model.type = 0
-        model.systemValue = 80
+//        model.type = 0
+//        model.systemValue = 92
 
 //        model.type = 1
-//        model.ringsValue = 70
+//        model.ringsValue = 48
 //
-//        model.type = 3
-//        model.ringsState = 1
-//        model.vibrateState = 1
+        model.type = 3
+        model.ringsState = 1
+        model.vibrateState = 1
         return model
     }
 }
index 246784a..2d8b114 100644 (file)
@@ -19,6 +19,9 @@ class LogViewController: BaseViewController {
     override func viewDidAppear(_ animated: Bool) {
         super.viewDidAppear(animated)
         textView.text = IBManager.logs.joined(separator: "\n")
+        
+        let range = NSMakeRange(textView.text.count - 1, 1)
+        textView.scrollRangeToVisible(range)
     }
 }
 
diff --git a/Doc/IOTBluetooth_iOS/IOTBluetooth/Example/Resource/AIAudio.sbc b/Doc/IOTBluetooth_iOS/IOTBluetooth/Example/Resource/AIAudio.sbc
new file mode 100644 (file)
index 0000000..d96322c
Binary files /dev/null and b/Doc/IOTBluetooth_iOS/IOTBluetooth/Example/Resource/AIAudio.sbc differ
index a3acfc6..0d68752 100644 (file)
@@ -16,6 +16,7 @@ class ViewController: BaseViewController {
     override func viewDidLoad() {
         super.viewDidLoad()
         title = "IOTBluetooth"
+        navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Log", style: .plain, target: self, action: #selector(showLog))
         
         IBManager.subscribe(.connectStateDidChange, observer: self) {  object, userInfo in
             print("connect notice " + "\(object!)")
@@ -34,6 +35,9 @@ class ViewController: BaseViewController {
             let model = object as! IBTrainingData
             print("trainingData notice " +  model.description)
         }
+//        IBManager.subscribe(.weather, observer: self) {  object, userInfo in
+//            print("weather notice ")
+//        }
     }
     
     deinit {
@@ -41,6 +45,7 @@ class ViewController: BaseViewController {
     }
     
     @IBAction func startScan(_ sender:  UIButton) {
+        print("loggger ...")
         title = "正在扫描蓝牙设备..."
         IBManager.scan { [unowned self] peripheral in
             if let _ = datas.filter({ $0.uuid == peripheral.uuid }).last {
@@ -61,7 +66,10 @@ class ViewController: BaseViewController {
         IBManager.stopScan()
         title = "IOTBluetooth"
     }
-    
+    @objc func showLog(){
+        let vc = storyboard!.instantiateViewController(identifier: "LogViewController")
+        navigationController?.pushViewController(vc, animated: true)
+    }
 }
 
 extension ViewController: UITableViewDelegate, UITableViewDataSource {
index 85036be..59ced95 100644 (file)
@@ -1,6 +1,6 @@
 #if 0
 #elif defined(__arm64__) && __arm64__
-// Generated by Apple Swift version 5.9.2 effective-4.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5)
+// Generated by Apple Swift version 6.0.3 effective-4.2 (swiftlang-6.0.3.1.10 clang-1600.0.30.1)
 #ifndef IOTBLUETOOTH_SWIFT_H
 #define IOTBLUETOOTH_SWIFT_H
 #pragma clang diagnostic push
@@ -42,6 +42,8 @@
 #include <string.h>
 #endif
 #if defined(__cplusplus)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wnon-modular-include-in-framework-module"
 #if defined(__arm64e__) && __has_include(<ptrauth.h>)
 # include <ptrauth.h>
 #else
@@ -55,6 +57,7 @@
 # endif
 #pragma clang diagnostic pop
 #endif
+#pragma clang diagnostic pop
 #endif
 
 #if !defined(SWIFT_TYPEDEFS)
@@ -288,6 +291,7 @@ typedef unsigned int swift_uint4  __attribute__((__ext_vector_type__(4)));
 #pragma clang diagnostic ignored "-Wunknown-pragmas"
 #pragma clang diagnostic ignored "-Wnullability"
 #pragma clang diagnostic ignored "-Wdollar-in-identifier-extension"
+#pragma clang diagnostic ignored "-Wunsafe-buffer-usage"
 
 #if __has_attribute(external_source_symbol)
 # pragma push_macro("any")
old mode 100755 (executable)
new mode 100644 (file)
index a0985a1..8f32066
Binary files a/Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.framework/IOTBluetooth and b/Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.framework/IOTBluetooth differ
index 74291cd..272f089 100644 (file)
Binary files a/Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.framework/Info.plist and b/Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.framework/Info.plist differ
index 6cc746f..e8d4168 100644 (file)
Binary files a/Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.framework/Modules/IOTBluetooth.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo and b/Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.framework/Modules/IOTBluetooth.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo differ
index 25faea1..b5b40b5 100644 (file)
@@ -1,8 +1,8 @@
 {
   "ABIRoot": {
     "kind": "Root",
-    "name": "TopLevel",
-    "printedName": "TopLevel",
+    "name": "IOTBluetooth",
+    "printedName": "IOTBluetooth",
     "children": [
       {
         "kind": "Import",
         "declAttributes": [
           "AccessControl"
         ],
-        "hasMissingDesignatedInitializers": true
+        "hasMissingDesignatedInitializers": true,
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
+        ]
       },
       {
         "kind": "TypeDecl",
         ],
         "hasMissingDesignatedInitializers": true,
         "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
           {
             "kind": "Conformance",
             "name": "CustomStringConvertible",
       },
       {
         "kind": "TypeDecl",
-        "name": "IBHistoryStandItem",
-        "printedName": "IBHistoryStandItem",
+        "name": "IBPush",
+        "printedName": "IBPush",
         "children": [
           {
             "kind": "Var",
-            "name": "time",
-            "printedName": "time",
+            "name": "type",
+            "printedName": "type",
             "children": [
               {
                 "kind": "TypeNominal",
-                "name": "Int",
-                "printedName": "Swift.Int",
-                "usr": "s:Si"
+                "name": "IBPushType",
+                "printedName": "IOTBluetooth.IBPushType",
+                "usr": "s:12IOTBluetooth10IBPushTypeO"
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth18IBHistoryStandItemC4timeSivp",
-            "mangledName": "$s12IOTBluetooth18IBHistoryStandItemC4timeSivp",
+            "usr": "s:12IOTBluetooth6IBPushC4typeAA0B4TypeOvp",
+            "mangledName": "$s12IOTBluetooth6IBPushC4typeAA0B4TypeOvp",
             "moduleName": "IOTBluetooth",
             "declAttributes": [
               "HasInitialValue",
                 "children": [
                   {
                     "kind": "TypeNominal",
-                    "name": "Int",
-                    "printedName": "Swift.Int",
-                    "usr": "s:Si"
+                    "name": "IBPushType",
+                    "printedName": "IOTBluetooth.IBPushType",
+                    "usr": "s:12IOTBluetooth10IBPushTypeO"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth18IBHistoryStandItemC4timeSivg",
-                "mangledName": "$s12IOTBluetooth18IBHistoryStandItemC4timeSivg",
+                "usr": "s:12IOTBluetooth6IBPushC4typeAA0B4TypeOvg",
+                "mangledName": "$s12IOTBluetooth6IBPushC4typeAA0B4TypeOvg",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "get"
                   },
                   {
                     "kind": "TypeNominal",
-                    "name": "Int",
-                    "printedName": "Swift.Int",
-                    "usr": "s:Si"
+                    "name": "IBPushType",
+                    "printedName": "IOTBluetooth.IBPushType",
+                    "usr": "s:12IOTBluetooth10IBPushTypeO"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth18IBHistoryStandItemC4timeSivs",
-                "mangledName": "$s12IOTBluetooth18IBHistoryStandItemC4timeSivs",
+                "usr": "s:12IOTBluetooth6IBPushC4typeAA0B4TypeOvs",
+                "mangledName": "$s12IOTBluetooth6IBPushC4typeAA0B4TypeOvs",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "set"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth18IBHistoryStandItemC4timeSivM",
-                "mangledName": "$s12IOTBluetooth18IBHistoryStandItemC4timeSivM",
+                "usr": "s:12IOTBluetooth6IBPushC4typeAA0B4TypeOvM",
+                "mangledName": "$s12IOTBluetooth6IBPushC4typeAA0B4TypeOvM",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "_modify"
               }
             ]
           },
-          {
-            "kind": "Constructor",
-            "name": "init",
-            "printedName": "init()",
-            "children": [
-              {
-                "kind": "TypeNominal",
-                "name": "IBHistoryStandItem",
-                "printedName": "IOTBluetooth.IBHistoryStandItem",
-                "usr": "s:12IOTBluetooth18IBHistoryStandItemC"
-              }
-            ],
-            "declKind": "Constructor",
-            "usr": "s:12IOTBluetooth18IBHistoryStandItemCACycfc",
-            "mangledName": "$s12IOTBluetooth18IBHistoryStandItemCACycfc",
-            "moduleName": "IOTBluetooth",
-            "declAttributes": [
-              "AccessControl"
-            ],
-            "init_kind": "Designated"
-          }
-        ],
-        "declKind": "Class",
-        "usr": "s:12IOTBluetooth18IBHistoryStandItemC",
-        "mangledName": "$s12IOTBluetooth18IBHistoryStandItemC",
-        "moduleName": "IOTBluetooth",
-        "declAttributes": [
-          "AccessControl",
-          "RawDocComment"
-        ]
-      },
-      {
-        "kind": "TypeDecl",
-        "name": "IBVibrateConfig",
-        "printedName": "IBVibrateConfig",
-        "children": [
           {
             "kind": "Var",
-            "name": "type",
-            "printedName": "type",
+            "name": "state",
+            "printedName": "state",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth15IBVibrateConfigC4typeSivp",
-            "mangledName": "$s12IOTBluetooth15IBVibrateConfigC4typeSivp",
+            "usr": "s:12IOTBluetooth6IBPushC5stateSivp",
+            "mangledName": "$s12IOTBluetooth6IBPushC5stateSivp",
             "moduleName": "IOTBluetooth",
             "declAttributes": [
               "HasInitialValue",
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth15IBVibrateConfigC4typeSivg",
-                "mangledName": "$s12IOTBluetooth15IBVibrateConfigC4typeSivg",
+                "usr": "s:12IOTBluetooth6IBPushC5stateSivg",
+                "mangledName": "$s12IOTBluetooth6IBPushC5stateSivg",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "get"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth15IBVibrateConfigC4typeSivs",
-                "mangledName": "$s12IOTBluetooth15IBVibrateConfigC4typeSivs",
+                "usr": "s:12IOTBluetooth6IBPushC5stateSivs",
+                "mangledName": "$s12IOTBluetooth6IBPushC5stateSivs",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "set"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth15IBVibrateConfigC4typeSivM",
-                "mangledName": "$s12IOTBluetooth15IBVibrateConfigC4typeSivM",
+                "usr": "s:12IOTBluetooth6IBPushC5stateSivM",
+                "mangledName": "$s12IOTBluetooth6IBPushC5stateSivM",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "_modify"
               }
             ]
           },
+          {
+            "kind": "Constructor",
+            "name": "init",
+            "printedName": "init()",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "IBPush",
+                "printedName": "IOTBluetooth.IBPush",
+                "usr": "s:12IOTBluetooth6IBPushC"
+              }
+            ],
+            "declKind": "Constructor",
+            "usr": "s:12IOTBluetooth6IBPushCACycfc",
+            "mangledName": "$s12IOTBluetooth6IBPushCACycfc",
+            "moduleName": "IOTBluetooth",
+            "declAttributes": [
+              "AccessControl"
+            ],
+            "init_kind": "Designated"
+          },
+          {
+            "kind": "Constructor",
+            "name": "init",
+            "printedName": "init(type:state:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "IBPush",
+                "printedName": "IOTBluetooth.IBPush",
+                "usr": "s:12IOTBluetooth6IBPushC"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "IBPushType",
+                "printedName": "IOTBluetooth.IBPushType",
+                "usr": "s:12IOTBluetooth10IBPushTypeO"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              }
+            ],
+            "declKind": "Constructor",
+            "usr": "s:12IOTBluetooth6IBPushC4type5stateAcA0B4TypeO_Sitcfc",
+            "mangledName": "$s12IOTBluetooth6IBPushC4type5stateAcA0B4TypeO_Sitcfc",
+            "moduleName": "IOTBluetooth",
+            "declAttributes": [
+              "AccessControl"
+            ],
+            "init_kind": "Designated"
+          },
           {
             "kind": "Var",
-            "name": "systemValue",
-            "printedName": "systemValue",
+            "name": "all",
+            "printedName": "all",
             "children": [
               {
                 "kind": "TypeNominal",
-                "name": "Optional",
-                "printedName": "Swift.Int?",
+                "name": "Array",
+                "printedName": "[IOTBluetooth.IBPush]",
                 "children": [
                   {
                     "kind": "TypeNominal",
-                    "name": "Int",
-                    "printedName": "Swift.Int",
-                    "usr": "s:Si"
+                    "name": "IBPush",
+                    "printedName": "IOTBluetooth.IBPush",
+                    "usr": "s:12IOTBluetooth6IBPushC"
                   }
                 ],
-                "usr": "s:Sq"
+                "usr": "s:Sa"
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth15IBVibrateConfigC11systemValueSiSgvp",
-            "mangledName": "$s12IOTBluetooth15IBVibrateConfigC11systemValueSiSgvp",
+            "usr": "s:12IOTBluetooth6IBPushC3allSayACGvpZ",
+            "mangledName": "$s12IOTBluetooth6IBPushC3allSayACGvpZ",
             "moduleName": "IOTBluetooth",
+            "static": true,
             "declAttributes": [
-              "HasInitialValue",
-              "HasStorage",
-              "AccessControl",
-              "RawDocComment"
+              "Final",
+              "AccessControl"
             ],
-            "hasStorage": true,
             "accessors": [
               {
                 "kind": "Accessor",
                 "children": [
                   {
                     "kind": "TypeNominal",
-                    "name": "Optional",
-                    "printedName": "Swift.Int?",
+                    "name": "Array",
+                    "printedName": "[IOTBluetooth.IBPush]",
                     "children": [
                       {
                         "kind": "TypeNominal",
-                        "name": "Int",
-                        "printedName": "Swift.Int",
-                        "usr": "s:Si"
+                        "name": "IBPush",
+                        "printedName": "IOTBluetooth.IBPush",
+                        "usr": "s:12IOTBluetooth6IBPushC"
                       }
                     ],
-                    "usr": "s:Sq"
+                    "usr": "s:Sa"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth15IBVibrateConfigC11systemValueSiSgvg",
-                "mangledName": "$s12IOTBluetooth15IBVibrateConfigC11systemValueSiSgvg",
+                "usr": "s:12IOTBluetooth6IBPushC3allSayACGvgZ",
+                "mangledName": "$s12IOTBluetooth6IBPushC3allSayACGvgZ",
                 "moduleName": "IOTBluetooth",
-                "implicit": true,
+                "static": true,
+                "declAttributes": [
+                  "Final"
+                ],
                 "accessorKind": "get"
-              },
+              }
+            ]
+          }
+        ],
+        "declKind": "Class",
+        "usr": "s:12IOTBluetooth6IBPushC",
+        "mangledName": "$s12IOTBluetooth6IBPushC",
+        "moduleName": "IOTBluetooth",
+        "declAttributes": [
+          "AccessControl",
+          "RawDocComment"
+        ],
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
+        ]
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "IBPushType",
+        "printedName": "IBPushType",
+        "children": [
+          {
+            "kind": "Var",
+            "name": "tel",
+            "printedName": "tel",
+            "children": [
               {
-                "kind": "Accessor",
-                "name": "Set",
-                "printedName": "Set()",
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(IOTBluetooth.IBPushType.Type) -> IOTBluetooth.IBPushType",
                 "children": [
                   {
                     "kind": "TypeNominal",
-                    "name": "Void",
-                    "printedName": "()"
+                    "name": "IBPushType",
+                    "printedName": "IOTBluetooth.IBPushType",
+                    "usr": "s:12IOTBluetooth10IBPushTypeO"
                   },
                   {
                     "kind": "TypeNominal",
-                    "name": "Optional",
-                    "printedName": "Swift.Int?",
+                    "name": "Metatype",
+                    "printedName": "IOTBluetooth.IBPushType.Type",
                     "children": [
                       {
                         "kind": "TypeNominal",
-                        "name": "Int",
-                        "printedName": "Swift.Int",
-                        "usr": "s:Si"
+                        "name": "IBPushType",
+                        "printedName": "IOTBluetooth.IBPushType",
+                        "usr": "s:12IOTBluetooth10IBPushTypeO"
                       }
-                    ],
-                    "usr": "s:Sq"
+                    ]
                   }
-                ],
-                "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth15IBVibrateConfigC11systemValueSiSgvs",
-                "mangledName": "$s12IOTBluetooth15IBVibrateConfigC11systemValueSiSgvs",
-                "moduleName": "IOTBluetooth",
-                "implicit": true,
-                "accessorKind": "set"
-              },
+                ]
+              }
+            ],
+            "declKind": "EnumElement",
+            "usr": "s:12IOTBluetooth10IBPushTypeO3telyA2CmF",
+            "mangledName": "$s12IOTBluetooth10IBPushTypeO3telyA2CmF",
+            "moduleName": "IOTBluetooth"
+          },
+          {
+            "kind": "Var",
+            "name": "sms",
+            "printedName": "sms",
+            "children": [
               {
-                "kind": "Accessor",
-                "name": "Modify",
-                "printedName": "Modify()",
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(IOTBluetooth.IBPushType.Type) -> IOTBluetooth.IBPushType",
                 "children": [
                   {
                     "kind": "TypeNominal",
-                    "name": "Void",
-                    "printedName": "()"
+                    "name": "IBPushType",
+                    "printedName": "IOTBluetooth.IBPushType",
+                    "usr": "s:12IOTBluetooth10IBPushTypeO"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Metatype",
+                    "printedName": "IOTBluetooth.IBPushType.Type",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "IBPushType",
+                        "printedName": "IOTBluetooth.IBPushType",
+                        "usr": "s:12IOTBluetooth10IBPushTypeO"
+                      }
+                    ]
                   }
-                ],
-                "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth15IBVibrateConfigC11systemValueSiSgvM",
-                "mangledName": "$s12IOTBluetooth15IBVibrateConfigC11systemValueSiSgvM",
-                "moduleName": "IOTBluetooth",
-                "implicit": true,
-                "accessorKind": "_modify"
+                ]
               }
-            ]
+            ],
+            "declKind": "EnumElement",
+            "usr": "s:12IOTBluetooth10IBPushTypeO3smsyA2CmF",
+            "mangledName": "$s12IOTBluetooth10IBPushTypeO3smsyA2CmF",
+            "moduleName": "IOTBluetooth"
           },
           {
             "kind": "Var",
-            "name": "ringsValue",
-            "printedName": "ringsValue",
+            "name": "email",
+            "printedName": "email",
             "children": [
               {
-                "kind": "TypeNominal",
-                "name": "Optional",
-                "printedName": "Swift.Int?",
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(IOTBluetooth.IBPushType.Type) -> IOTBluetooth.IBPushType",
                 "children": [
                   {
                     "kind": "TypeNominal",
-                    "name": "Int",
-                    "printedName": "Swift.Int",
-                    "usr": "s:Si"
+                    "name": "IBPushType",
+                    "printedName": "IOTBluetooth.IBPushType",
+                    "usr": "s:12IOTBluetooth10IBPushTypeO"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Metatype",
+                    "printedName": "IOTBluetooth.IBPushType.Type",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "IBPushType",
+                        "printedName": "IOTBluetooth.IBPushType",
+                        "usr": "s:12IOTBluetooth10IBPushTypeO"
+                      }
+                    ]
                   }
-                ],
-                "usr": "s:Sq"
+                ]
               }
             ],
-            "declKind": "Var",
-            "usr": "s:12IOTBluetooth15IBVibrateConfigC10ringsValueSiSgvp",
-            "mangledName": "$s12IOTBluetooth15IBVibrateConfigC10ringsValueSiSgvp",
-            "moduleName": "IOTBluetooth",
-            "declAttributes": [
-              "HasInitialValue",
-              "HasStorage",
-              "AccessControl",
-              "RawDocComment"
-            ],
-            "hasStorage": true,
-            "accessors": [
+            "declKind": "EnumElement",
+            "usr": "s:12IOTBluetooth10IBPushTypeO5emailyA2CmF",
+            "mangledName": "$s12IOTBluetooth10IBPushTypeO5emailyA2CmF",
+            "moduleName": "IOTBluetooth"
+          },
+          {
+            "kind": "Var",
+            "name": "wechat",
+            "printedName": "wechat",
+            "children": [
               {
-                "kind": "Accessor",
-                "name": "Get",
-                "printedName": "Get()",
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(IOTBluetooth.IBPushType.Type) -> IOTBluetooth.IBPushType",
                 "children": [
                   {
                     "kind": "TypeNominal",
-                    "name": "Optional",
-                    "printedName": "Swift.Int?",
+                    "name": "IBPushType",
+                    "printedName": "IOTBluetooth.IBPushType",
+                    "usr": "s:12IOTBluetooth10IBPushTypeO"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Metatype",
+                    "printedName": "IOTBluetooth.IBPushType.Type",
                     "children": [
                       {
                         "kind": "TypeNominal",
-                        "name": "Int",
-                        "printedName": "Swift.Int",
-                        "usr": "s:Si"
+                        "name": "IBPushType",
+                        "printedName": "IOTBluetooth.IBPushType",
+                        "usr": "s:12IOTBluetooth10IBPushTypeO"
                       }
-                    ],
-                    "usr": "s:Sq"
+                    ]
                   }
-                ],
-                "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth15IBVibrateConfigC10ringsValueSiSgvg",
-                "mangledName": "$s12IOTBluetooth15IBVibrateConfigC10ringsValueSiSgvg",
-                "moduleName": "IOTBluetooth",
-                "implicit": true,
-                "accessorKind": "get"
-              },
+                ]
+              }
+            ],
+            "declKind": "EnumElement",
+            "usr": "s:12IOTBluetooth10IBPushTypeO6wechatyA2CmF",
+            "mangledName": "$s12IOTBluetooth10IBPushTypeO6wechatyA2CmF",
+            "moduleName": "IOTBluetooth"
+          },
+          {
+            "kind": "Var",
+            "name": "qq",
+            "printedName": "qq",
+            "children": [
               {
-                "kind": "Accessor",
-                "name": "Set",
-                "printedName": "Set()",
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(IOTBluetooth.IBPushType.Type) -> IOTBluetooth.IBPushType",
                 "children": [
                   {
                     "kind": "TypeNominal",
-                    "name": "Void",
-                    "printedName": "()"
+                    "name": "IBPushType",
+                    "printedName": "IOTBluetooth.IBPushType",
+                    "usr": "s:12IOTBluetooth10IBPushTypeO"
                   },
                   {
                     "kind": "TypeNominal",
-                    "name": "Optional",
-                    "printedName": "Swift.Int?",
+                    "name": "Metatype",
+                    "printedName": "IOTBluetooth.IBPushType.Type",
                     "children": [
                       {
                         "kind": "TypeNominal",
-                        "name": "Int",
-                        "printedName": "Swift.Int",
-                        "usr": "s:Si"
+                        "name": "IBPushType",
+                        "printedName": "IOTBluetooth.IBPushType",
+                        "usr": "s:12IOTBluetooth10IBPushTypeO"
                       }
-                    ],
-                    "usr": "s:Sq"
+                    ]
                   }
-                ],
-                "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth15IBVibrateConfigC10ringsValueSiSgvs",
-                "mangledName": "$s12IOTBluetooth15IBVibrateConfigC10ringsValueSiSgvs",
-                "moduleName": "IOTBluetooth",
-                "implicit": true,
-                "accessorKind": "set"
-              },
+                ]
+              }
+            ],
+            "declKind": "EnumElement",
+            "usr": "s:12IOTBluetooth10IBPushTypeO2qqyA2CmF",
+            "mangledName": "$s12IOTBluetooth10IBPushTypeO2qqyA2CmF",
+            "moduleName": "IOTBluetooth"
+          },
+          {
+            "kind": "Var",
+            "name": "facebook",
+            "printedName": "facebook",
+            "children": [
               {
-                "kind": "Accessor",
-                "name": "Modify",
-                "printedName": "Modify()",
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(IOTBluetooth.IBPushType.Type) -> IOTBluetooth.IBPushType",
                 "children": [
                   {
                     "kind": "TypeNominal",
-                    "name": "Void",
-                    "printedName": "()"
+                    "name": "IBPushType",
+                    "printedName": "IOTBluetooth.IBPushType",
+                    "usr": "s:12IOTBluetooth10IBPushTypeO"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Metatype",
+                    "printedName": "IOTBluetooth.IBPushType.Type",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "IBPushType",
+                        "printedName": "IOTBluetooth.IBPushType",
+                        "usr": "s:12IOTBluetooth10IBPushTypeO"
+                      }
+                    ]
                   }
-                ],
-                "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth15IBVibrateConfigC10ringsValueSiSgvM",
-                "mangledName": "$s12IOTBluetooth15IBVibrateConfigC10ringsValueSiSgvM",
-                "moduleName": "IOTBluetooth",
-                "implicit": true,
-                "accessorKind": "_modify"
+                ]
               }
-            ]
+            ],
+            "declKind": "EnumElement",
+            "usr": "s:12IOTBluetooth10IBPushTypeO8facebookyA2CmF",
+            "mangledName": "$s12IOTBluetooth10IBPushTypeO8facebookyA2CmF",
+            "moduleName": "IOTBluetooth"
           },
           {
             "kind": "Var",
-            "name": "ringsState",
-            "printedName": "ringsState",
+            "name": "twitter",
+            "printedName": "twitter",
             "children": [
               {
-                "kind": "TypeNominal",
-                "name": "Optional",
-                "printedName": "Swift.Int?",
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(IOTBluetooth.IBPushType.Type) -> IOTBluetooth.IBPushType",
                 "children": [
                   {
                     "kind": "TypeNominal",
-                    "name": "Int",
-                    "printedName": "Swift.Int",
-                    "usr": "s:Si"
+                    "name": "IBPushType",
+                    "printedName": "IOTBluetooth.IBPushType",
+                    "usr": "s:12IOTBluetooth10IBPushTypeO"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Metatype",
+                    "printedName": "IOTBluetooth.IBPushType.Type",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "IBPushType",
+                        "printedName": "IOTBluetooth.IBPushType",
+                        "usr": "s:12IOTBluetooth10IBPushTypeO"
+                      }
+                    ]
                   }
-                ],
-                "usr": "s:Sq"
+                ]
               }
             ],
-            "declKind": "Var",
-            "usr": "s:12IOTBluetooth15IBVibrateConfigC10ringsStateSiSgvp",
-            "mangledName": "$s12IOTBluetooth15IBVibrateConfigC10ringsStateSiSgvp",
-            "moduleName": "IOTBluetooth",
-            "declAttributes": [
-              "HasInitialValue",
-              "HasStorage",
-              "AccessControl",
-              "RawDocComment"
-            ],
-            "hasStorage": true,
-            "accessors": [
+            "declKind": "EnumElement",
+            "usr": "s:12IOTBluetooth10IBPushTypeO7twitteryA2CmF",
+            "mangledName": "$s12IOTBluetooth10IBPushTypeO7twitteryA2CmF",
+            "moduleName": "IOTBluetooth"
+          },
+          {
+            "kind": "Var",
+            "name": "whatsapp",
+            "printedName": "whatsapp",
+            "children": [
               {
-                "kind": "Accessor",
-                "name": "Get",
-                "printedName": "Get()",
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(IOTBluetooth.IBPushType.Type) -> IOTBluetooth.IBPushType",
                 "children": [
                   {
                     "kind": "TypeNominal",
-                    "name": "Optional",
-                    "printedName": "Swift.Int?",
+                    "name": "IBPushType",
+                    "printedName": "IOTBluetooth.IBPushType",
+                    "usr": "s:12IOTBluetooth10IBPushTypeO"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Metatype",
+                    "printedName": "IOTBluetooth.IBPushType.Type",
                     "children": [
                       {
                         "kind": "TypeNominal",
-                        "name": "Int",
-                        "printedName": "Swift.Int",
-                        "usr": "s:Si"
+                        "name": "IBPushType",
+                        "printedName": "IOTBluetooth.IBPushType",
+                        "usr": "s:12IOTBluetooth10IBPushTypeO"
                       }
-                    ],
-                    "usr": "s:Sq"
+                    ]
                   }
-                ],
-                "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth15IBVibrateConfigC10ringsStateSiSgvg",
-                "mangledName": "$s12IOTBluetooth15IBVibrateConfigC10ringsStateSiSgvg",
-                "moduleName": "IOTBluetooth",
-                "implicit": true,
-                "accessorKind": "get"
-              },
+                ]
+              }
+            ],
+            "declKind": "EnumElement",
+            "usr": "s:12IOTBluetooth10IBPushTypeO8whatsappyA2CmF",
+            "mangledName": "$s12IOTBluetooth10IBPushTypeO8whatsappyA2CmF",
+            "moduleName": "IOTBluetooth"
+          },
+          {
+            "kind": "Var",
+            "name": "linkedIn",
+            "printedName": "linkedIn",
+            "children": [
               {
-                "kind": "Accessor",
-                "name": "Set",
-                "printedName": "Set()",
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(IOTBluetooth.IBPushType.Type) -> IOTBluetooth.IBPushType",
                 "children": [
                   {
                     "kind": "TypeNominal",
-                    "name": "Void",
-                    "printedName": "()"
+                    "name": "IBPushType",
+                    "printedName": "IOTBluetooth.IBPushType",
+                    "usr": "s:12IOTBluetooth10IBPushTypeO"
                   },
                   {
                     "kind": "TypeNominal",
-                    "name": "Optional",
-                    "printedName": "Swift.Int?",
+                    "name": "Metatype",
+                    "printedName": "IOTBluetooth.IBPushType.Type",
                     "children": [
                       {
                         "kind": "TypeNominal",
-                        "name": "Int",
-                        "printedName": "Swift.Int",
-                        "usr": "s:Si"
+                        "name": "IBPushType",
+                        "printedName": "IOTBluetooth.IBPushType",
+                        "usr": "s:12IOTBluetooth10IBPushTypeO"
                       }
-                    ],
-                    "usr": "s:Sq"
+                    ]
                   }
-                ],
-                "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth15IBVibrateConfigC10ringsStateSiSgvs",
-                "mangledName": "$s12IOTBluetooth15IBVibrateConfigC10ringsStateSiSgvs",
-                "moduleName": "IOTBluetooth",
-                "implicit": true,
-                "accessorKind": "set"
-              },
+                ]
+              }
+            ],
+            "declKind": "EnumElement",
+            "usr": "s:12IOTBluetooth10IBPushTypeO8linkedInyA2CmF",
+            "mangledName": "$s12IOTBluetooth10IBPushTypeO8linkedInyA2CmF",
+            "moduleName": "IOTBluetooth"
+          },
+          {
+            "kind": "Var",
+            "name": "instagram",
+            "printedName": "instagram",
+            "children": [
               {
-                "kind": "Accessor",
-                "name": "Modify",
-                "printedName": "Modify()",
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(IOTBluetooth.IBPushType.Type) -> IOTBluetooth.IBPushType",
                 "children": [
                   {
                     "kind": "TypeNominal",
-                    "name": "Void",
-                    "printedName": "()"
+                    "name": "IBPushType",
+                    "printedName": "IOTBluetooth.IBPushType",
+                    "usr": "s:12IOTBluetooth10IBPushTypeO"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Metatype",
+                    "printedName": "IOTBluetooth.IBPushType.Type",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "IBPushType",
+                        "printedName": "IOTBluetooth.IBPushType",
+                        "usr": "s:12IOTBluetooth10IBPushTypeO"
+                      }
+                    ]
                   }
-                ],
-                "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth15IBVibrateConfigC10ringsStateSiSgvM",
-                "mangledName": "$s12IOTBluetooth15IBVibrateConfigC10ringsStateSiSgvM",
-                "moduleName": "IOTBluetooth",
-                "implicit": true,
-                "accessorKind": "_modify"
+                ]
               }
-            ]
+            ],
+            "declKind": "EnumElement",
+            "usr": "s:12IOTBluetooth10IBPushTypeO9instagramyA2CmF",
+            "mangledName": "$s12IOTBluetooth10IBPushTypeO9instagramyA2CmF",
+            "moduleName": "IOTBluetooth"
           },
           {
             "kind": "Var",
-            "name": "vibrateState",
-            "printedName": "vibrateState",
+            "name": "messenger",
+            "printedName": "messenger",
             "children": [
               {
-                "kind": "TypeNominal",
-                "name": "Optional",
-                "printedName": "Swift.Int?",
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(IOTBluetooth.IBPushType.Type) -> IOTBluetooth.IBPushType",
                 "children": [
                   {
                     "kind": "TypeNominal",
-                    "name": "Int",
-                    "printedName": "Swift.Int",
-                    "usr": "s:Si"
+                    "name": "IBPushType",
+                    "printedName": "IOTBluetooth.IBPushType",
+                    "usr": "s:12IOTBluetooth10IBPushTypeO"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Metatype",
+                    "printedName": "IOTBluetooth.IBPushType.Type",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "IBPushType",
+                        "printedName": "IOTBluetooth.IBPushType",
+                        "usr": "s:12IOTBluetooth10IBPushTypeO"
+                      }
+                    ]
                   }
-                ],
-                "usr": "s:Sq"
+                ]
               }
             ],
-            "declKind": "Var",
-            "usr": "s:12IOTBluetooth15IBVibrateConfigC12vibrateStateSiSgvp",
-            "mangledName": "$s12IOTBluetooth15IBVibrateConfigC12vibrateStateSiSgvp",
-            "moduleName": "IOTBluetooth",
-            "declAttributes": [
-              "HasInitialValue",
-              "HasStorage",
-              "AccessControl",
-              "RawDocComment"
+            "declKind": "EnumElement",
+            "usr": "s:12IOTBluetooth10IBPushTypeO9messengeryA2CmF",
+            "mangledName": "$s12IOTBluetooth10IBPushTypeO9messengeryA2CmF",
+            "moduleName": "IOTBluetooth"
+          },
+          {
+            "kind": "Var",
+            "name": "snapchat",
+            "printedName": "snapchat",
+            "children": [
+              {
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(IOTBluetooth.IBPushType.Type) -> IOTBluetooth.IBPushType",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "IBPushType",
+                    "printedName": "IOTBluetooth.IBPushType",
+                    "usr": "s:12IOTBluetooth10IBPushTypeO"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Metatype",
+                    "printedName": "IOTBluetooth.IBPushType.Type",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "IBPushType",
+                        "printedName": "IOTBluetooth.IBPushType",
+                        "usr": "s:12IOTBluetooth10IBPushTypeO"
+                      }
+                    ]
+                  }
+                ]
+              }
             ],
-            "hasStorage": true,
-            "accessors": [
+            "declKind": "EnumElement",
+            "usr": "s:12IOTBluetooth10IBPushTypeO8snapchatyA2CmF",
+            "mangledName": "$s12IOTBluetooth10IBPushTypeO8snapchatyA2CmF",
+            "moduleName": "IOTBluetooth"
+          },
+          {
+            "kind": "Var",
+            "name": "line",
+            "printedName": "line",
+            "children": [
               {
-                "kind": "Accessor",
-                "name": "Get",
-                "printedName": "Get()",
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(IOTBluetooth.IBPushType.Type) -> IOTBluetooth.IBPushType",
                 "children": [
                   {
                     "kind": "TypeNominal",
-                    "name": "Optional",
-                    "printedName": "Swift.Int?",
+                    "name": "IBPushType",
+                    "printedName": "IOTBluetooth.IBPushType",
+                    "usr": "s:12IOTBluetooth10IBPushTypeO"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Metatype",
+                    "printedName": "IOTBluetooth.IBPushType.Type",
                     "children": [
                       {
                         "kind": "TypeNominal",
-                        "name": "Int",
-                        "printedName": "Swift.Int",
-                        "usr": "s:Si"
+                        "name": "IBPushType",
+                        "printedName": "IOTBluetooth.IBPushType",
+                        "usr": "s:12IOTBluetooth10IBPushTypeO"
                       }
-                    ],
-                    "usr": "s:Sq"
+                    ]
                   }
-                ],
-                "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth15IBVibrateConfigC12vibrateStateSiSgvg",
-                "mangledName": "$s12IOTBluetooth15IBVibrateConfigC12vibrateStateSiSgvg",
-                "moduleName": "IOTBluetooth",
-                "implicit": true,
-                "accessorKind": "get"
-              },
+                ]
+              }
+            ],
+            "declKind": "EnumElement",
+            "usr": "s:12IOTBluetooth10IBPushTypeO4lineyA2CmF",
+            "mangledName": "$s12IOTBluetooth10IBPushTypeO4lineyA2CmF",
+            "moduleName": "IOTBluetooth"
+          },
+          {
+            "kind": "Var",
+            "name": "talk",
+            "printedName": "talk",
+            "children": [
               {
-                "kind": "Accessor",
-                "name": "Set",
-                "printedName": "Set()",
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(IOTBluetooth.IBPushType.Type) -> IOTBluetooth.IBPushType",
                 "children": [
                   {
                     "kind": "TypeNominal",
-                    "name": "Void",
-                    "printedName": "()"
+                    "name": "IBPushType",
+                    "printedName": "IOTBluetooth.IBPushType",
+                    "usr": "s:12IOTBluetooth10IBPushTypeO"
                   },
                   {
                     "kind": "TypeNominal",
-                    "name": "Optional",
-                    "printedName": "Swift.Int?",
+                    "name": "Metatype",
+                    "printedName": "IOTBluetooth.IBPushType.Type",
                     "children": [
                       {
                         "kind": "TypeNominal",
-                        "name": "Int",
-                        "printedName": "Swift.Int",
-                        "usr": "s:Si"
+                        "name": "IBPushType",
+                        "printedName": "IOTBluetooth.IBPushType",
+                        "usr": "s:12IOTBluetooth10IBPushTypeO"
                       }
-                    ],
-                    "usr": "s:Sq"
+                    ]
+                  }
+                ]
+              }
+            ],
+            "declKind": "EnumElement",
+            "usr": "s:12IOTBluetooth10IBPushTypeO4talkyA2CmF",
+            "mangledName": "$s12IOTBluetooth10IBPushTypeO4talkyA2CmF",
+            "moduleName": "IOTBluetooth"
+          },
+          {
+            "kind": "Var",
+            "name": "viber",
+            "printedName": "viber",
+            "children": [
+              {
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(IOTBluetooth.IBPushType.Type) -> IOTBluetooth.IBPushType",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "IBPushType",
+                    "printedName": "IOTBluetooth.IBPushType",
+                    "usr": "s:12IOTBluetooth10IBPushTypeO"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Metatype",
+                    "printedName": "IOTBluetooth.IBPushType.Type",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "IBPushType",
+                        "printedName": "IOTBluetooth.IBPushType",
+                        "usr": "s:12IOTBluetooth10IBPushTypeO"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "declKind": "EnumElement",
+            "usr": "s:12IOTBluetooth10IBPushTypeO5viberyA2CmF",
+            "mangledName": "$s12IOTBluetooth10IBPushTypeO5viberyA2CmF",
+            "moduleName": "IOTBluetooth"
+          },
+          {
+            "kind": "Var",
+            "name": "skype",
+            "printedName": "skype",
+            "children": [
+              {
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(IOTBluetooth.IBPushType.Type) -> IOTBluetooth.IBPushType",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "IBPushType",
+                    "printedName": "IOTBluetooth.IBPushType",
+                    "usr": "s:12IOTBluetooth10IBPushTypeO"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Metatype",
+                    "printedName": "IOTBluetooth.IBPushType.Type",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "IBPushType",
+                        "printedName": "IOTBluetooth.IBPushType",
+                        "usr": "s:12IOTBluetooth10IBPushTypeO"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "declKind": "EnumElement",
+            "usr": "s:12IOTBluetooth10IBPushTypeO5skypeyA2CmF",
+            "mangledName": "$s12IOTBluetooth10IBPushTypeO5skypeyA2CmF",
+            "moduleName": "IOTBluetooth"
+          },
+          {
+            "kind": "Var",
+            "name": "telegram",
+            "printedName": "telegram",
+            "children": [
+              {
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(IOTBluetooth.IBPushType.Type) -> IOTBluetooth.IBPushType",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "IBPushType",
+                    "printedName": "IOTBluetooth.IBPushType",
+                    "usr": "s:12IOTBluetooth10IBPushTypeO"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Metatype",
+                    "printedName": "IOTBluetooth.IBPushType.Type",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "IBPushType",
+                        "printedName": "IOTBluetooth.IBPushType",
+                        "usr": "s:12IOTBluetooth10IBPushTypeO"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "declKind": "EnumElement",
+            "usr": "s:12IOTBluetooth10IBPushTypeO8telegramyA2CmF",
+            "mangledName": "$s12IOTBluetooth10IBPushTypeO8telegramyA2CmF",
+            "moduleName": "IOTBluetooth"
+          },
+          {
+            "kind": "Var",
+            "name": "other",
+            "printedName": "other",
+            "children": [
+              {
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(IOTBluetooth.IBPushType.Type) -> IOTBluetooth.IBPushType",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "IBPushType",
+                    "printedName": "IOTBluetooth.IBPushType",
+                    "usr": "s:12IOTBluetooth10IBPushTypeO"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Metatype",
+                    "printedName": "IOTBluetooth.IBPushType.Type",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "IBPushType",
+                        "printedName": "IOTBluetooth.IBPushType",
+                        "usr": "s:12IOTBluetooth10IBPushTypeO"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "declKind": "EnumElement",
+            "usr": "s:12IOTBluetooth10IBPushTypeO5otheryA2CmF",
+            "mangledName": "$s12IOTBluetooth10IBPushTypeO5otheryA2CmF",
+            "moduleName": "IOTBluetooth"
+          },
+          {
+            "kind": "Var",
+            "name": "name",
+            "printedName": "name",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:12IOTBluetooth10IBPushTypeO4nameSSvp",
+            "mangledName": "$s12IOTBluetooth10IBPushTypeO4nameSSvp",
+            "moduleName": "IOTBluetooth",
+            "declAttributes": [
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth15IBVibrateConfigC12vibrateStateSiSgvs",
-                "mangledName": "$s12IOTBluetooth15IBVibrateConfigC12vibrateStateSiSgvs",
+                "usr": "s:12IOTBluetooth10IBPushTypeO4nameSSvg",
+                "mangledName": "$s12IOTBluetooth10IBPushTypeO4nameSSvg",
                 "moduleName": "IOTBluetooth",
-                "implicit": true,
-                "accessorKind": "set"
-              },
+                "accessorKind": "get"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "bundleId",
+            "printedName": "bundleId",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:12IOTBluetooth10IBPushTypeO8bundleIdSSvp",
+            "mangledName": "$s12IOTBluetooth10IBPushTypeO8bundleIdSSvp",
+            "moduleName": "IOTBluetooth",
+            "declAttributes": [
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "accessors": [
               {
                 "kind": "Accessor",
-                "name": "Modify",
-                "printedName": "Modify()",
+                "name": "Get",
+                "printedName": "Get()",
                 "children": [
                   {
                     "kind": "TypeNominal",
-                    "name": "Void",
-                    "printedName": "()"
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth15IBVibrateConfigC12vibrateStateSiSgvM",
-                "mangledName": "$s12IOTBluetooth15IBVibrateConfigC12vibrateStateSiSgvM",
+                "usr": "s:12IOTBluetooth10IBPushTypeO8bundleIdSSvg",
+                "mangledName": "$s12IOTBluetooth10IBPushTypeO8bundleIdSSvg",
                 "moduleName": "IOTBluetooth",
-                "implicit": true,
-                "accessorKind": "_modify"
+                "accessorKind": "get"
               }
             ]
           },
           {
             "kind": "Constructor",
             "name": "init",
-            "printedName": "init()",
+            "printedName": "init(rawValue:)",
             "children": [
               {
                 "kind": "TypeNominal",
-                "name": "IBVibrateConfig",
-                "printedName": "IOTBluetooth.IBVibrateConfig",
-                "usr": "s:12IOTBluetooth15IBVibrateConfigC"
+                "name": "Optional",
+                "printedName": "IOTBluetooth.IBPushType?",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "IBPushType",
+                    "printedName": "IOTBluetooth.IBPushType",
+                    "usr": "s:12IOTBluetooth10IBPushTypeO"
+                  }
+                ],
+                "usr": "s:Sq"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
               }
             ],
             "declKind": "Constructor",
-            "usr": "s:12IOTBluetooth15IBVibrateConfigCACycfc",
-            "mangledName": "$s12IOTBluetooth15IBVibrateConfigCACycfc",
+            "usr": "s:12IOTBluetooth10IBPushTypeO8rawValueACSgSi_tcfc",
+            "mangledName": "$s12IOTBluetooth10IBPushTypeO8rawValueACSgSi_tcfc",
             "moduleName": "IOTBluetooth",
-            "declAttributes": [
-              "AccessControl"
-            ],
+            "implicit": true,
             "init_kind": "Designated"
+          },
+          {
+            "kind": "Var",
+            "name": "rawValue",
+            "printedName": "rawValue",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:12IOTBluetooth10IBPushTypeO8rawValueSivp",
+            "mangledName": "$s12IOTBluetooth10IBPushTypeO8rawValueSivp",
+            "moduleName": "IOTBluetooth",
+            "implicit": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth10IBPushTypeO8rawValueSivg",
+                "mangledName": "$s12IOTBluetooth10IBPushTypeO8rawValueSivg",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "get"
+              }
+            ]
           }
         ],
-        "declKind": "Class",
-        "usr": "s:12IOTBluetooth15IBVibrateConfigC",
-        "mangledName": "$s12IOTBluetooth15IBVibrateConfigC",
+        "declKind": "Enum",
+        "usr": "s:12IOTBluetooth10IBPushTypeO",
+        "mangledName": "$s12IOTBluetooth10IBPushTypeO",
         "moduleName": "IOTBluetooth",
         "declAttributes": [
           "AccessControl",
           "RawDocComment"
+        ],
+        "enumRawTypeName": "Int",
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Equatable",
+            "printedName": "Equatable",
+            "usr": "s:SQ",
+            "mangledName": "$sSQ"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Hashable",
+            "printedName": "Hashable",
+            "usr": "s:SH",
+            "mangledName": "$sSH"
+          },
+          {
+            "kind": "Conformance",
+            "name": "RawRepresentable",
+            "printedName": "RawRepresentable",
+            "children": [
+              {
+                "kind": "TypeWitness",
+                "name": "RawValue",
+                "printedName": "RawValue",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ]
+              }
+            ],
+            "usr": "s:SY",
+            "mangledName": "$sSY"
+          }
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "IOTBluetooth",
+        "declAttributes": [
+          "RawDocComment"
         ]
       },
       {
         "kind": "TypeDecl",
-        "name": "IBVibrateSound",
-        "printedName": "IBVibrateSound",
+        "name": "IBHistoryStandItem",
+        "printedName": "IBHistoryStandItem",
         "children": [
           {
             "kind": "Var",
-            "name": "systemValue",
-            "printedName": "systemValue",
+            "name": "time",
+            "printedName": "time",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth14IBVibrateSoundC11systemValueSivp",
-            "mangledName": "$s12IOTBluetooth14IBVibrateSoundC11systemValueSivp",
+            "usr": "s:12IOTBluetooth18IBHistoryStandItemC4timeSivp",
+            "mangledName": "$s12IOTBluetooth18IBHistoryStandItemC4timeSivp",
             "moduleName": "IOTBluetooth",
             "declAttributes": [
               "HasInitialValue",
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth14IBVibrateSoundC11systemValueSivg",
-                "mangledName": "$s12IOTBluetooth14IBVibrateSoundC11systemValueSivg",
+                "usr": "s:12IOTBluetooth18IBHistoryStandItemC4timeSivg",
+                "mangledName": "$s12IOTBluetooth18IBHistoryStandItemC4timeSivg",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "get"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth14IBVibrateSoundC11systemValueSivs",
-                "mangledName": "$s12IOTBluetooth14IBVibrateSoundC11systemValueSivs",
+                "usr": "s:12IOTBluetooth18IBHistoryStandItemC4timeSivs",
+                "mangledName": "$s12IOTBluetooth18IBHistoryStandItemC4timeSivs",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "set"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth14IBVibrateSoundC11systemValueSivM",
-                "mangledName": "$s12IOTBluetooth14IBVibrateSoundC11systemValueSivM",
+                "usr": "s:12IOTBluetooth18IBHistoryStandItemC4timeSivM",
+                "mangledName": "$s12IOTBluetooth18IBHistoryStandItemC4timeSivM",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "_modify"
               }
             ]
           },
+          {
+            "kind": "Constructor",
+            "name": "init",
+            "printedName": "init()",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "IBHistoryStandItem",
+                "printedName": "IOTBluetooth.IBHistoryStandItem",
+                "usr": "s:12IOTBluetooth18IBHistoryStandItemC"
+              }
+            ],
+            "declKind": "Constructor",
+            "usr": "s:12IOTBluetooth18IBHistoryStandItemCACycfc",
+            "mangledName": "$s12IOTBluetooth18IBHistoryStandItemCACycfc",
+            "moduleName": "IOTBluetooth",
+            "declAttributes": [
+              "AccessControl"
+            ],
+            "init_kind": "Designated"
+          }
+        ],
+        "declKind": "Class",
+        "usr": "s:12IOTBluetooth18IBHistoryStandItemC",
+        "mangledName": "$s12IOTBluetooth18IBHistoryStandItemC",
+        "moduleName": "IOTBluetooth",
+        "declAttributes": [
+          "AccessControl",
+          "RawDocComment"
+        ],
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
+        ]
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "IBVibrateConfig",
+        "printedName": "IBVibrateConfig",
+        "children": [
           {
             "kind": "Var",
-            "name": "ringsValue",
-            "printedName": "ringsValue",
+            "name": "type",
+            "printedName": "type",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth14IBVibrateSoundC10ringsValueSivp",
-            "mangledName": "$s12IOTBluetooth14IBVibrateSoundC10ringsValueSivp",
+            "usr": "s:12IOTBluetooth15IBVibrateConfigC4typeSivp",
+            "mangledName": "$s12IOTBluetooth15IBVibrateConfigC4typeSivp",
             "moduleName": "IOTBluetooth",
             "declAttributes": [
               "HasInitialValue",
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth14IBVibrateSoundC10ringsValueSivg",
-                "mangledName": "$s12IOTBluetooth14IBVibrateSoundC10ringsValueSivg",
+                "usr": "s:12IOTBluetooth15IBVibrateConfigC4typeSivg",
+                "mangledName": "$s12IOTBluetooth15IBVibrateConfigC4typeSivg",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "get"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth14IBVibrateSoundC10ringsValueSivs",
-                "mangledName": "$s12IOTBluetooth14IBVibrateSoundC10ringsValueSivs",
+                "usr": "s:12IOTBluetooth15IBVibrateConfigC4typeSivs",
+                "mangledName": "$s12IOTBluetooth15IBVibrateConfigC4typeSivs",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "set"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth14IBVibrateSoundC10ringsValueSivM",
-                "mangledName": "$s12IOTBluetooth14IBVibrateSoundC10ringsValueSivM",
+                "usr": "s:12IOTBluetooth15IBVibrateConfigC4typeSivM",
+                "mangledName": "$s12IOTBluetooth15IBVibrateConfigC4typeSivM",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "_modify"
           },
           {
             "kind": "Var",
-            "name": "mediaValue",
-            "printedName": "mediaValue",
+            "name": "systemValue",
+            "printedName": "systemValue",
             "children": [
               {
                 "kind": "TypeNominal",
-                "name": "Int",
-                "printedName": "Swift.Int",
-                "usr": "s:Si"
+                "name": "Optional",
+                "printedName": "Swift.Int?",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "usr": "s:Sq"
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth14IBVibrateSoundC10mediaValueSivp",
-            "mangledName": "$s12IOTBluetooth14IBVibrateSoundC10mediaValueSivp",
+            "usr": "s:12IOTBluetooth15IBVibrateConfigC11systemValueSiSgvp",
+            "mangledName": "$s12IOTBluetooth15IBVibrateConfigC11systemValueSiSgvp",
             "moduleName": "IOTBluetooth",
             "declAttributes": [
               "HasInitialValue",
                 "children": [
                   {
                     "kind": "TypeNominal",
-                    "name": "Int",
-                    "printedName": "Swift.Int",
-                    "usr": "s:Si"
-                  }
-                ],
-                "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth14IBVibrateSoundC10mediaValueSivg",
-                "mangledName": "$s12IOTBluetooth14IBVibrateSoundC10mediaValueSivg",
+                    "name": "Optional",
+                    "printedName": "Swift.Int?",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Int",
+                        "printedName": "Swift.Int",
+                        "usr": "s:Si"
+                      }
+                    ],
+                    "usr": "s:Sq"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth15IBVibrateConfigC11systemValueSiSgvg",
+                "mangledName": "$s12IOTBluetooth15IBVibrateConfigC11systemValueSiSgvg",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "get"
                     "name": "Void",
                     "printedName": "()"
                   },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Optional",
+                    "printedName": "Swift.Int?",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Int",
+                        "printedName": "Swift.Int",
+                        "usr": "s:Si"
+                      }
+                    ],
+                    "usr": "s:Sq"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth15IBVibrateConfigC11systemValueSiSgvs",
+                "mangledName": "$s12IOTBluetooth15IBVibrateConfigC11systemValueSiSgvs",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth15IBVibrateConfigC11systemValueSiSgvM",
+                "mangledName": "$s12IOTBluetooth15IBVibrateConfigC11systemValueSiSgvM",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "ringsValue",
+            "printedName": "ringsValue",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Optional",
+                "printedName": "Swift.Int?",
+                "children": [
                   {
                     "kind": "TypeNominal",
                     "name": "Int",
                     "usr": "s:Si"
                   }
                 ],
+                "usr": "s:Sq"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:12IOTBluetooth15IBVibrateConfigC10ringsValueSiSgvp",
+            "mangledName": "$s12IOTBluetooth15IBVibrateConfigC10ringsValueSiSgvp",
+            "moduleName": "IOTBluetooth",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Optional",
+                    "printedName": "Swift.Int?",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Int",
+                        "printedName": "Swift.Int",
+                        "usr": "s:Si"
+                      }
+                    ],
+                    "usr": "s:Sq"
+                  }
+                ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth14IBVibrateSoundC10mediaValueSivs",
-                "mangledName": "$s12IOTBluetooth14IBVibrateSoundC10mediaValueSivs",
+                "usr": "s:12IOTBluetooth15IBVibrateConfigC10ringsValueSiSgvg",
+                "mangledName": "$s12IOTBluetooth15IBVibrateConfigC10ringsValueSiSgvg",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Optional",
+                    "printedName": "Swift.Int?",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Int",
+                        "printedName": "Swift.Int",
+                        "usr": "s:Si"
+                      }
+                    ],
+                    "usr": "s:Sq"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth15IBVibrateConfigC10ringsValueSiSgvs",
+                "mangledName": "$s12IOTBluetooth15IBVibrateConfigC10ringsValueSiSgvs",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "set"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth14IBVibrateSoundC10mediaValueSivM",
-                "mangledName": "$s12IOTBluetooth14IBVibrateSoundC10mediaValueSivM",
+                "usr": "s:12IOTBluetooth15IBVibrateConfigC10ringsValueSiSgvM",
+                "mangledName": "$s12IOTBluetooth15IBVibrateConfigC10ringsValueSiSgvM",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "_modify"
             "children": [
               {
                 "kind": "TypeNominal",
-                "name": "Int",
-                "printedName": "Swift.Int",
-                "usr": "s:Si"
+                "name": "Optional",
+                "printedName": "Swift.Int?",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "usr": "s:Sq"
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth14IBVibrateSoundC10ringsStateSivp",
-            "mangledName": "$s12IOTBluetooth14IBVibrateSoundC10ringsStateSivp",
+            "usr": "s:12IOTBluetooth15IBVibrateConfigC10ringsStateSiSgvp",
+            "mangledName": "$s12IOTBluetooth15IBVibrateConfigC10ringsStateSiSgvp",
             "moduleName": "IOTBluetooth",
             "declAttributes": [
               "HasInitialValue",
                 "children": [
                   {
                     "kind": "TypeNominal",
-                    "name": "Int",
-                    "printedName": "Swift.Int",
-                    "usr": "s:Si"
+                    "name": "Optional",
+                    "printedName": "Swift.Int?",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Int",
+                        "printedName": "Swift.Int",
+                        "usr": "s:Si"
+                      }
+                    ],
+                    "usr": "s:Sq"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth14IBVibrateSoundC10ringsStateSivg",
-                "mangledName": "$s12IOTBluetooth14IBVibrateSoundC10ringsStateSivg",
+                "usr": "s:12IOTBluetooth15IBVibrateConfigC10ringsStateSiSgvg",
+                "mangledName": "$s12IOTBluetooth15IBVibrateConfigC10ringsStateSiSgvg",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "get"
                   },
                   {
                     "kind": "TypeNominal",
-                    "name": "Int",
-                    "printedName": "Swift.Int",
-                    "usr": "s:Si"
+                    "name": "Optional",
+                    "printedName": "Swift.Int?",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Int",
+                        "printedName": "Swift.Int",
+                        "usr": "s:Si"
+                      }
+                    ],
+                    "usr": "s:Sq"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth14IBVibrateSoundC10ringsStateSivs",
-                "mangledName": "$s12IOTBluetooth14IBVibrateSoundC10ringsStateSivs",
+                "usr": "s:12IOTBluetooth15IBVibrateConfigC10ringsStateSiSgvs",
+                "mangledName": "$s12IOTBluetooth15IBVibrateConfigC10ringsStateSiSgvs",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "set"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth14IBVibrateSoundC10ringsStateSivM",
-                "mangledName": "$s12IOTBluetooth14IBVibrateSoundC10ringsStateSivM",
+                "usr": "s:12IOTBluetooth15IBVibrateConfigC10ringsStateSiSgvM",
+                "mangledName": "$s12IOTBluetooth15IBVibrateConfigC10ringsStateSiSgvM",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "_modify"
             "children": [
               {
                 "kind": "TypeNominal",
-                "name": "Int",
-                "printedName": "Swift.Int",
-                "usr": "s:Si"
+                "name": "Optional",
+                "printedName": "Swift.Int?",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "usr": "s:Sq"
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth14IBVibrateSoundC12vibrateStateSivp",
-            "mangledName": "$s12IOTBluetooth14IBVibrateSoundC12vibrateStateSivp",
+            "usr": "s:12IOTBluetooth15IBVibrateConfigC12vibrateStateSiSgvp",
+            "mangledName": "$s12IOTBluetooth15IBVibrateConfigC12vibrateStateSiSgvp",
             "moduleName": "IOTBluetooth",
             "declAttributes": [
               "HasInitialValue",
                 "children": [
                   {
                     "kind": "TypeNominal",
-                    "name": "Int",
-                    "printedName": "Swift.Int",
-                    "usr": "s:Si"
+                    "name": "Optional",
+                    "printedName": "Swift.Int?",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Int",
+                        "printedName": "Swift.Int",
+                        "usr": "s:Si"
+                      }
+                    ],
+                    "usr": "s:Sq"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth14IBVibrateSoundC12vibrateStateSivg",
-                "mangledName": "$s12IOTBluetooth14IBVibrateSoundC12vibrateStateSivg",
+                "usr": "s:12IOTBluetooth15IBVibrateConfigC12vibrateStateSiSgvg",
+                "mangledName": "$s12IOTBluetooth15IBVibrateConfigC12vibrateStateSiSgvg",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "get"
                   },
                   {
                     "kind": "TypeNominal",
-                    "name": "Int",
-                    "printedName": "Swift.Int",
-                    "usr": "s:Si"
+                    "name": "Optional",
+                    "printedName": "Swift.Int?",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Int",
+                        "printedName": "Swift.Int",
+                        "usr": "s:Si"
+                      }
+                    ],
+                    "usr": "s:Sq"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth14IBVibrateSoundC12vibrateStateSivs",
-                "mangledName": "$s12IOTBluetooth14IBVibrateSoundC12vibrateStateSivs",
+                "usr": "s:12IOTBluetooth15IBVibrateConfigC12vibrateStateSiSgvs",
+                "mangledName": "$s12IOTBluetooth15IBVibrateConfigC12vibrateStateSiSgvs",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "set"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth14IBVibrateSoundC12vibrateStateSivM",
-                "mangledName": "$s12IOTBluetooth14IBVibrateSoundC12vibrateStateSivM",
+                "usr": "s:12IOTBluetooth15IBVibrateConfigC12vibrateStateSiSgvM",
+                "mangledName": "$s12IOTBluetooth15IBVibrateConfigC12vibrateStateSiSgvM",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "_modify"
             "children": [
               {
                 "kind": "TypeNominal",
-                "name": "IBVibrateSound",
-                "printedName": "IOTBluetooth.IBVibrateSound",
-                "usr": "s:12IOTBluetooth14IBVibrateSoundC"
+                "name": "IBVibrateConfig",
+                "printedName": "IOTBluetooth.IBVibrateConfig",
+                "usr": "s:12IOTBluetooth15IBVibrateConfigC"
               }
             ],
             "declKind": "Constructor",
-            "usr": "s:12IOTBluetooth14IBVibrateSoundCACycfc",
-            "mangledName": "$s12IOTBluetooth14IBVibrateSoundCACycfc",
+            "usr": "s:12IOTBluetooth15IBVibrateConfigCACycfc",
+            "mangledName": "$s12IOTBluetooth15IBVibrateConfigCACycfc",
             "moduleName": "IOTBluetooth",
             "declAttributes": [
               "AccessControl"
           }
         ],
         "declKind": "Class",
-        "usr": "s:12IOTBluetooth14IBVibrateSoundC",
-        "mangledName": "$s12IOTBluetooth14IBVibrateSoundC",
+        "usr": "s:12IOTBluetooth15IBVibrateConfigC",
+        "mangledName": "$s12IOTBluetooth15IBVibrateConfigC",
         "moduleName": "IOTBluetooth",
         "declAttributes": [
           "AccessControl",
           "RawDocComment"
         ],
-        "hasMissingDesignatedInitializers": true
-      },
-      {
-        "kind": "Import",
-        "name": "Foundation",
-        "printedName": "Foundation",
-        "declKind": "Import",
-        "moduleName": "IOTBluetooth",
-        "declAttributes": [
-          "RawDocComment"
-        ]
-      },
-      {
-        "kind": "Import",
-        "name": "Foundation",
-        "printedName": "Foundation",
-        "declKind": "Import",
-        "moduleName": "IOTBluetooth",
-        "declAttributes": [
-          "RawDocComment"
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
         ]
       },
       {
         "kind": "TypeDecl",
-        "name": "IBAddressBook",
-        "printedName": "IBAddressBook",
+        "name": "IBVibrateSound",
+        "printedName": "IBVibrateSound",
         "children": [
           {
             "kind": "Var",
-            "name": "gender",
-            "printedName": "gender",
+            "name": "systemValue",
+            "printedName": "systemValue",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth13IBAddressBookC6genderSivp",
-            "mangledName": "$s12IOTBluetooth13IBAddressBookC6genderSivp",
+            "usr": "s:12IOTBluetooth14IBVibrateSoundC11systemValueSivp",
+            "mangledName": "$s12IOTBluetooth14IBVibrateSoundC11systemValueSivp",
             "moduleName": "IOTBluetooth",
             "declAttributes": [
               "HasInitialValue",
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth13IBAddressBookC6genderSivg",
-                "mangledName": "$s12IOTBluetooth13IBAddressBookC6genderSivg",
+                "usr": "s:12IOTBluetooth14IBVibrateSoundC11systemValueSivg",
+                "mangledName": "$s12IOTBluetooth14IBVibrateSoundC11systemValueSivg",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "get"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth13IBAddressBookC6genderSivs",
-                "mangledName": "$s12IOTBluetooth13IBAddressBookC6genderSivs",
+                "usr": "s:12IOTBluetooth14IBVibrateSoundC11systemValueSivs",
+                "mangledName": "$s12IOTBluetooth14IBVibrateSoundC11systemValueSivs",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "set"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth13IBAddressBookC6genderSivM",
-                "mangledName": "$s12IOTBluetooth13IBAddressBookC6genderSivM",
+                "usr": "s:12IOTBluetooth14IBVibrateSoundC11systemValueSivM",
+                "mangledName": "$s12IOTBluetooth14IBVibrateSoundC11systemValueSivM",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "_modify"
           },
           {
             "kind": "Var",
-            "name": "name",
-            "printedName": "name",
+            "name": "ringsValue",
+            "printedName": "ringsValue",
             "children": [
               {
                 "kind": "TypeNominal",
-                "name": "Optional",
-                "printedName": "Swift.String?",
-                "children": [
-                  {
-                    "kind": "TypeNominal",
-                    "name": "String",
-                    "printedName": "Swift.String",
-                    "usr": "s:SS"
-                  }
-                ],
-                "usr": "s:Sq"
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth13IBAddressBookC4nameSSSgvp",
-            "mangledName": "$s12IOTBluetooth13IBAddressBookC4nameSSSgvp",
+            "usr": "s:12IOTBluetooth14IBVibrateSoundC10ringsValueSivp",
+            "mangledName": "$s12IOTBluetooth14IBVibrateSoundC10ringsValueSivp",
             "moduleName": "IOTBluetooth",
             "declAttributes": [
               "HasInitialValue",
                 "children": [
                   {
                     "kind": "TypeNominal",
-                    "name": "Optional",
-                    "printedName": "Swift.String?",
-                    "children": [
-                      {
-                        "kind": "TypeNominal",
-                        "name": "String",
-                        "printedName": "Swift.String",
-                        "usr": "s:SS"
-                      }
-                    ],
-                    "usr": "s:Sq"
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth13IBAddressBookC4nameSSSgvg",
-                "mangledName": "$s12IOTBluetooth13IBAddressBookC4nameSSSgvg",
+                "usr": "s:12IOTBluetooth14IBVibrateSoundC10ringsValueSivg",
+                "mangledName": "$s12IOTBluetooth14IBVibrateSoundC10ringsValueSivg",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "get"
                   },
                   {
                     "kind": "TypeNominal",
-                    "name": "Optional",
-                    "printedName": "Swift.String?",
-                    "children": [
-                      {
-                        "kind": "TypeNominal",
-                        "name": "String",
-                        "printedName": "Swift.String",
-                        "usr": "s:SS"
-                      }
-                    ],
-                    "usr": "s:Sq"
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth13IBAddressBookC4nameSSSgvs",
-                "mangledName": "$s12IOTBluetooth13IBAddressBookC4nameSSSgvs",
+                "usr": "s:12IOTBluetooth14IBVibrateSoundC10ringsValueSivs",
+                "mangledName": "$s12IOTBluetooth14IBVibrateSoundC10ringsValueSivs",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "set"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth13IBAddressBookC4nameSSSgvM",
-                "mangledName": "$s12IOTBluetooth13IBAddressBookC4nameSSSgvM",
+                "usr": "s:12IOTBluetooth14IBVibrateSoundC10ringsValueSivM",
+                "mangledName": "$s12IOTBluetooth14IBVibrateSoundC10ringsValueSivM",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "_modify"
           },
           {
             "kind": "Var",
-            "name": "phoneNumbers",
-            "printedName": "phoneNumbers",
+            "name": "mediaValue",
+            "printedName": "mediaValue",
             "children": [
               {
                 "kind": "TypeNominal",
-                "name": "Array",
-                "printedName": "[IOTBluetooth.IBPhoneNumber]",
-                "children": [
-                  {
-                    "kind": "TypeNominal",
-                    "name": "IBPhoneNumber",
-                    "printedName": "IOTBluetooth.IBPhoneNumber",
-                    "usr": "s:12IOTBluetooth13IBPhoneNumberC"
-                  }
-                ],
-                "usr": "s:Sa"
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth13IBAddressBookC12phoneNumbersSayAA13IBPhoneNumberCGvp",
-            "mangledName": "$s12IOTBluetooth13IBAddressBookC12phoneNumbersSayAA13IBPhoneNumberCGvp",
+            "usr": "s:12IOTBluetooth14IBVibrateSoundC10mediaValueSivp",
+            "mangledName": "$s12IOTBluetooth14IBVibrateSoundC10mediaValueSivp",
             "moduleName": "IOTBluetooth",
             "declAttributes": [
               "HasInitialValue",
                 "children": [
                   {
                     "kind": "TypeNominal",
-                    "name": "Array",
-                    "printedName": "[IOTBluetooth.IBPhoneNumber]",
-                    "children": [
-                      {
-                        "kind": "TypeNominal",
-                        "name": "IBPhoneNumber",
-                        "printedName": "IOTBluetooth.IBPhoneNumber",
-                        "usr": "s:12IOTBluetooth13IBPhoneNumberC"
-                      }
-                    ],
-                    "usr": "s:Sa"
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth13IBAddressBookC12phoneNumbersSayAA13IBPhoneNumberCGvg",
-                "mangledName": "$s12IOTBluetooth13IBAddressBookC12phoneNumbersSayAA13IBPhoneNumberCGvg",
+                "usr": "s:12IOTBluetooth14IBVibrateSoundC10mediaValueSivg",
+                "mangledName": "$s12IOTBluetooth14IBVibrateSoundC10mediaValueSivg",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "get"
                   },
                   {
                     "kind": "TypeNominal",
-                    "name": "Array",
-                    "printedName": "[IOTBluetooth.IBPhoneNumber]",
-                    "children": [
-                      {
-                        "kind": "TypeNominal",
-                        "name": "IBPhoneNumber",
-                        "printedName": "IOTBluetooth.IBPhoneNumber",
-                        "usr": "s:12IOTBluetooth13IBPhoneNumberC"
-                      }
-                    ],
-                    "usr": "s:Sa"
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth13IBAddressBookC12phoneNumbersSayAA13IBPhoneNumberCGvs",
-                "mangledName": "$s12IOTBluetooth13IBAddressBookC12phoneNumbersSayAA13IBPhoneNumberCGvs",
+                "usr": "s:12IOTBluetooth14IBVibrateSoundC10mediaValueSivs",
+                "mangledName": "$s12IOTBluetooth14IBVibrateSoundC10mediaValueSivs",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "set"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth13IBAddressBookC12phoneNumbersSayAA13IBPhoneNumberCGvM",
-                "mangledName": "$s12IOTBluetooth13IBAddressBookC12phoneNumbersSayAA13IBPhoneNumberCGvM",
+                "usr": "s:12IOTBluetooth14IBVibrateSoundC10mediaValueSivM",
+                "mangledName": "$s12IOTBluetooth14IBVibrateSoundC10mediaValueSivM",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "_modify"
               }
             ]
           },
-          {
-            "kind": "Constructor",
-            "name": "init",
-            "printedName": "init()",
-            "children": [
-              {
-                "kind": "TypeNominal",
-                "name": "IBAddressBook",
-                "printedName": "IOTBluetooth.IBAddressBook",
-                "usr": "s:12IOTBluetooth13IBAddressBookC"
-              }
-            ],
-            "declKind": "Constructor",
-            "usr": "s:12IOTBluetooth13IBAddressBookCACycfc",
-            "mangledName": "$s12IOTBluetooth13IBAddressBookCACycfc",
-            "moduleName": "IOTBluetooth",
-            "declAttributes": [
-              "AccessControl"
-            ],
-            "init_kind": "Designated"
-          },
           {
             "kind": "Var",
-            "name": "description",
-            "printedName": "description",
+            "name": "ringsState",
+            "printedName": "ringsState",
             "children": [
               {
                 "kind": "TypeNominal",
-                "name": "String",
-                "printedName": "Swift.String",
-                "usr": "s:SS"
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth13IBAddressBookC11descriptionSSvp",
-            "mangledName": "$s12IOTBluetooth13IBAddressBookC11descriptionSSvp",
+            "usr": "s:12IOTBluetooth14IBVibrateSoundC10ringsStateSivp",
+            "mangledName": "$s12IOTBluetooth14IBVibrateSoundC10ringsStateSivp",
             "moduleName": "IOTBluetooth",
             "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
               "AccessControl",
               "RawDocComment"
             ],
+            "hasStorage": true,
             "accessors": [
               {
                 "kind": "Accessor",
                 "children": [
                   {
                     "kind": "TypeNominal",
-                    "name": "String",
-                    "printedName": "Swift.String",
-                    "usr": "s:SS"
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth13IBAddressBookC11descriptionSSvg",
-                "mangledName": "$s12IOTBluetooth13IBAddressBookC11descriptionSSvg",
+                "usr": "s:12IOTBluetooth14IBVibrateSoundC10ringsStateSivg",
+                "mangledName": "$s12IOTBluetooth14IBVibrateSoundC10ringsStateSivg",
                 "moduleName": "IOTBluetooth",
+                "implicit": true,
                 "accessorKind": "get"
-              }
-            ]
-          }
-        ],
-        "declKind": "Class",
-        "usr": "s:12IOTBluetooth13IBAddressBookC",
-        "mangledName": "$s12IOTBluetooth13IBAddressBookC",
-        "moduleName": "IOTBluetooth",
-        "declAttributes": [
-          "AccessControl",
-          "RawDocComment"
-        ]
-      },
-      {
-        "kind": "TypeDecl",
-        "name": "IBPhoneNumber",
-        "printedName": "IBPhoneNumber",
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth14IBVibrateSoundC10ringsStateSivs",
+                "mangledName": "$s12IOTBluetooth14IBVibrateSoundC10ringsStateSivs",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth14IBVibrateSoundC10ringsStateSivM",
+                "mangledName": "$s12IOTBluetooth14IBVibrateSoundC10ringsStateSivM",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "vibrateState",
+            "printedName": "vibrateState",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:12IOTBluetooth14IBVibrateSoundC12vibrateStateSivp",
+            "mangledName": "$s12IOTBluetooth14IBVibrateSoundC12vibrateStateSivp",
+            "moduleName": "IOTBluetooth",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth14IBVibrateSoundC12vibrateStateSivg",
+                "mangledName": "$s12IOTBluetooth14IBVibrateSoundC12vibrateStateSivg",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth14IBVibrateSoundC12vibrateStateSivs",
+                "mangledName": "$s12IOTBluetooth14IBVibrateSoundC12vibrateStateSivs",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth14IBVibrateSoundC12vibrateStateSivM",
+                "mangledName": "$s12IOTBluetooth14IBVibrateSoundC12vibrateStateSivM",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Constructor",
+            "name": "init",
+            "printedName": "init()",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "IBVibrateSound",
+                "printedName": "IOTBluetooth.IBVibrateSound",
+                "usr": "s:12IOTBluetooth14IBVibrateSoundC"
+              }
+            ],
+            "declKind": "Constructor",
+            "usr": "s:12IOTBluetooth14IBVibrateSoundCACycfc",
+            "mangledName": "$s12IOTBluetooth14IBVibrateSoundCACycfc",
+            "moduleName": "IOTBluetooth",
+            "declAttributes": [
+              "AccessControl"
+            ],
+            "init_kind": "Designated"
+          }
+        ],
+        "declKind": "Class",
+        "usr": "s:12IOTBluetooth14IBVibrateSoundC",
+        "mangledName": "$s12IOTBluetooth14IBVibrateSoundC",
+        "moduleName": "IOTBluetooth",
+        "declAttributes": [
+          "AccessControl",
+          "RawDocComment"
+        ],
+        "hasMissingDesignatedInitializers": true,
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "IOTBluetooth",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "IOTBluetooth",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "IBAddressBook",
+        "printedName": "IBAddressBook",
         "children": [
           {
             "kind": "Var",
-            "name": "number",
-            "printedName": "number",
+            "name": "gender",
+            "printedName": "gender",
             "children": [
               {
                 "kind": "TypeNominal",
-                "name": "String",
-                "printedName": "Swift.String",
-                "usr": "s:SS"
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth13IBPhoneNumberC6numberSSvp",
-            "mangledName": "$s12IOTBluetooth13IBPhoneNumberC6numberSSvp",
+            "usr": "s:12IOTBluetooth13IBAddressBookC6genderSivp",
+            "mangledName": "$s12IOTBluetooth13IBAddressBookC6genderSivp",
             "moduleName": "IOTBluetooth",
             "declAttributes": [
               "HasInitialValue",
                 "children": [
                   {
                     "kind": "TypeNominal",
-                    "name": "String",
-                    "printedName": "Swift.String",
-                    "usr": "s:SS"
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth13IBPhoneNumberC6numberSSvg",
-                "mangledName": "$s12IOTBluetooth13IBPhoneNumberC6numberSSvg",
+                "usr": "s:12IOTBluetooth13IBAddressBookC6genderSivg",
+                "mangledName": "$s12IOTBluetooth13IBAddressBookC6genderSivg",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "get"
                   },
                   {
                     "kind": "TypeNominal",
-                    "name": "String",
-                    "printedName": "Swift.String",
-                    "usr": "s:SS"
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth13IBPhoneNumberC6numberSSvs",
-                "mangledName": "$s12IOTBluetooth13IBPhoneNumberC6numberSSvs",
+                "usr": "s:12IOTBluetooth13IBAddressBookC6genderSivs",
+                "mangledName": "$s12IOTBluetooth13IBAddressBookC6genderSivs",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "set"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth13IBPhoneNumberC6numberSSvM",
-                "mangledName": "$s12IOTBluetooth13IBPhoneNumberC6numberSSvM",
+                "usr": "s:12IOTBluetooth13IBAddressBookC6genderSivM",
+                "mangledName": "$s12IOTBluetooth13IBAddressBookC6genderSivM",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "_modify"
           },
           {
             "kind": "Var",
-            "name": "location",
-            "printedName": "location",
+            "name": "name",
+            "printedName": "name",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth13IBPhoneNumberC8locationSSSgvp",
-            "mangledName": "$s12IOTBluetooth13IBPhoneNumberC8locationSSSgvp",
+            "usr": "s:12IOTBluetooth13IBAddressBookC4nameSSSgvp",
+            "mangledName": "$s12IOTBluetooth13IBAddressBookC4nameSSSgvp",
             "moduleName": "IOTBluetooth",
             "declAttributes": [
               "HasInitialValue",
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth13IBPhoneNumberC8locationSSSgvg",
-                "mangledName": "$s12IOTBluetooth13IBPhoneNumberC8locationSSSgvg",
+                "usr": "s:12IOTBluetooth13IBAddressBookC4nameSSSgvg",
+                "mangledName": "$s12IOTBluetooth13IBAddressBookC4nameSSSgvg",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "get"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth13IBPhoneNumberC8locationSSSgvs",
-                "mangledName": "$s12IOTBluetooth13IBPhoneNumberC8locationSSSgvs",
+                "usr": "s:12IOTBluetooth13IBAddressBookC4nameSSSgvs",
+                "mangledName": "$s12IOTBluetooth13IBAddressBookC4nameSSSgvs",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "set"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth13IBPhoneNumberC8locationSSSgvM",
-                "mangledName": "$s12IOTBluetooth13IBPhoneNumberC8locationSSSgvM",
+                "usr": "s:12IOTBluetooth13IBAddressBookC4nameSSSgvM",
+                "mangledName": "$s12IOTBluetooth13IBAddressBookC4nameSSSgvM",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "_modify"
           },
           {
             "kind": "Var",
-            "name": "operator",
-            "printedName": "operator",
+            "name": "phoneNumbers",
+            "printedName": "phoneNumbers",
             "children": [
               {
                 "kind": "TypeNominal",
-                "name": "Optional",
-                "printedName": "Swift.String?",
+                "name": "Array",
+                "printedName": "[IOTBluetooth.IBPhoneNumber]",
                 "children": [
                   {
                     "kind": "TypeNominal",
-                    "name": "String",
-                    "printedName": "Swift.String",
-                    "usr": "s:SS"
+                    "name": "IBPhoneNumber",
+                    "printedName": "IOTBluetooth.IBPhoneNumber",
+                    "usr": "s:12IOTBluetooth13IBPhoneNumberC"
                   }
                 ],
-                "usr": "s:Sq"
+                "usr": "s:Sa"
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth13IBPhoneNumberC8operatorSSSgvp",
-            "mangledName": "$s12IOTBluetooth13IBPhoneNumberC8operatorSSSgvp",
+            "usr": "s:12IOTBluetooth13IBAddressBookC12phoneNumbersSayAA13IBPhoneNumberCGvp",
+            "mangledName": "$s12IOTBluetooth13IBAddressBookC12phoneNumbersSayAA13IBPhoneNumberCGvp",
             "moduleName": "IOTBluetooth",
             "declAttributes": [
               "HasInitialValue",
                 "children": [
                   {
                     "kind": "TypeNominal",
-                    "name": "Optional",
-                    "printedName": "Swift.String?",
+                    "name": "Array",
+                    "printedName": "[IOTBluetooth.IBPhoneNumber]",
                     "children": [
                       {
                         "kind": "TypeNominal",
-                        "name": "String",
-                        "printedName": "Swift.String",
-                        "usr": "s:SS"
+                        "name": "IBPhoneNumber",
+                        "printedName": "IOTBluetooth.IBPhoneNumber",
+                        "usr": "s:12IOTBluetooth13IBPhoneNumberC"
                       }
                     ],
-                    "usr": "s:Sq"
+                    "usr": "s:Sa"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth13IBPhoneNumberC8operatorSSSgvg",
-                "mangledName": "$s12IOTBluetooth13IBPhoneNumberC8operatorSSSgvg",
+                "usr": "s:12IOTBluetooth13IBAddressBookC12phoneNumbersSayAA13IBPhoneNumberCGvg",
+                "mangledName": "$s12IOTBluetooth13IBAddressBookC12phoneNumbersSayAA13IBPhoneNumberCGvg",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "get"
                   },
                   {
                     "kind": "TypeNominal",
-                    "name": "Optional",
-                    "printedName": "Swift.String?",
+                    "name": "Array",
+                    "printedName": "[IOTBluetooth.IBPhoneNumber]",
                     "children": [
                       {
                         "kind": "TypeNominal",
-                        "name": "String",
-                        "printedName": "Swift.String",
-                        "usr": "s:SS"
+                        "name": "IBPhoneNumber",
+                        "printedName": "IOTBluetooth.IBPhoneNumber",
+                        "usr": "s:12IOTBluetooth13IBPhoneNumberC"
                       }
                     ],
-                    "usr": "s:Sq"
+                    "usr": "s:Sa"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth13IBPhoneNumberC8operatorSSSgvs",
-                "mangledName": "$s12IOTBluetooth13IBPhoneNumberC8operatorSSSgvs",
+                "usr": "s:12IOTBluetooth13IBAddressBookC12phoneNumbersSayAA13IBPhoneNumberCGvs",
+                "mangledName": "$s12IOTBluetooth13IBAddressBookC12phoneNumbersSayAA13IBPhoneNumberCGvs",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "set"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth13IBPhoneNumberC8operatorSSSgvM",
-                "mangledName": "$s12IOTBluetooth13IBPhoneNumberC8operatorSSSgvM",
+                "usr": "s:12IOTBluetooth13IBAddressBookC12phoneNumbersSayAA13IBPhoneNumberCGvM",
+                "mangledName": "$s12IOTBluetooth13IBAddressBookC12phoneNumbersSayAA13IBPhoneNumberCGvM",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "_modify"
             "children": [
               {
                 "kind": "TypeNominal",
-                "name": "IBPhoneNumber",
-                "printedName": "IOTBluetooth.IBPhoneNumber",
-                "usr": "s:12IOTBluetooth13IBPhoneNumberC"
+                "name": "IBAddressBook",
+                "printedName": "IOTBluetooth.IBAddressBook",
+                "usr": "s:12IOTBluetooth13IBAddressBookC"
               }
             ],
             "declKind": "Constructor",
-            "usr": "s:12IOTBluetooth13IBPhoneNumberCACycfc",
-            "mangledName": "$s12IOTBluetooth13IBPhoneNumberCACycfc",
+            "usr": "s:12IOTBluetooth13IBAddressBookCACycfc",
+            "mangledName": "$s12IOTBluetooth13IBAddressBookCACycfc",
             "moduleName": "IOTBluetooth",
             "declAttributes": [
               "AccessControl"
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth13IBPhoneNumberC11descriptionSSvp",
-            "mangledName": "$s12IOTBluetooth13IBPhoneNumberC11descriptionSSvp",
+            "usr": "s:12IOTBluetooth13IBAddressBookC11descriptionSSvp",
+            "mangledName": "$s12IOTBluetooth13IBAddressBookC11descriptionSSvp",
             "moduleName": "IOTBluetooth",
             "declAttributes": [
-              "AccessControl"
+              "AccessControl",
+              "RawDocComment"
             ],
             "accessors": [
               {
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth13IBPhoneNumberC11descriptionSSvg",
-                "mangledName": "$s12IOTBluetooth13IBPhoneNumberC11descriptionSSvg",
+                "usr": "s:12IOTBluetooth13IBAddressBookC11descriptionSSvg",
+                "mangledName": "$s12IOTBluetooth13IBAddressBookC11descriptionSSvg",
                 "moduleName": "IOTBluetooth",
                 "accessorKind": "get"
               }
           }
         ],
         "declKind": "Class",
-        "usr": "s:12IOTBluetooth13IBPhoneNumberC",
-        "mangledName": "$s12IOTBluetooth13IBPhoneNumberC",
+        "usr": "s:12IOTBluetooth13IBAddressBookC",
+        "mangledName": "$s12IOTBluetooth13IBAddressBookC",
         "moduleName": "IOTBluetooth",
         "declAttributes": [
           "AccessControl",
           "RawDocComment"
-        ]
-      },
-      {
-        "kind": "Import",
-        "name": "Foundation",
-        "printedName": "Foundation",
-        "declKind": "Import",
-        "moduleName": "IOTBluetooth",
-        "declAttributes": [
-          "RawDocComment"
+        ],
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
         ]
       },
       {
         "kind": "TypeDecl",
-        "name": "IBParameter",
-        "printedName": "IBParameter",
+        "name": "IBPhoneNumber",
+        "printedName": "IBPhoneNumber",
         "children": [
           {
             "kind": "Var",
-            "name": "dialID",
-            "printedName": "dialID",
+            "name": "number",
+            "printedName": "number",
             "children": [
               {
-                "kind": "TypeFunc",
-                "name": "Function",
-                "printedName": "(IOTBluetooth.IBParameter.Type) -> (Swift.Int) -> IOTBluetooth.IBParameter",
-                "children": [
-                  {
-                    "kind": "TypeFunc",
-                    "name": "Function",
-                    "printedName": "(Swift.Int) -> IOTBluetooth.IBParameter",
-                    "children": [
-                      {
-                        "kind": "TypeNominal",
-                        "name": "IBParameter",
-                        "printedName": "IOTBluetooth.IBParameter",
-                        "usr": "s:12IOTBluetooth11IBParameterO"
-                      },
-                      {
-                        "kind": "TypeNominal",
-                        "name": "Int",
-                        "printedName": "Swift.Int",
-                        "usr": "s:Si"
-                      }
-                    ]
-                  },
-                  {
-                    "kind": "TypeNominal",
-                    "name": "Metatype",
-                    "printedName": "IOTBluetooth.IBParameter.Type",
-                    "children": [
-                      {
-                        "kind": "TypeNominal",
-                        "name": "IBParameter",
-                        "printedName": "IOTBluetooth.IBParameter",
-                        "usr": "s:12IOTBluetooth11IBParameterO"
-                      }
-                    ]
-                  }
-                ]
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
               }
             ],
-            "declKind": "EnumElement",
-            "usr": "s:12IOTBluetooth11IBParameterO6dialIDyACSicACmF",
-            "mangledName": "$s12IOTBluetooth11IBParameterO6dialIDyACSicACmF",
+            "declKind": "Var",
+            "usr": "s:12IOTBluetooth13IBPhoneNumberC6numberSSvp",
+            "mangledName": "$s12IOTBluetooth13IBPhoneNumberC6numberSSvp",
             "moduleName": "IOTBluetooth",
             "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
               "RawDocComment"
-            ]
-          },
-          {
-            "kind": "Var",
-            "name": "action",
-            "printedName": "action",
-            "children": [
+            ],
+            "hasStorage": true,
+            "accessors": [
               {
-                "kind": "TypeFunc",
-                "name": "Function",
-                "printedName": "(IOTBluetooth.IBParameter.Type) -> (Swift.Int) -> IOTBluetooth.IBParameter",
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
                 "children": [
-                  {
-                    "kind": "TypeFunc",
-                    "name": "Function",
-                    "printedName": "(Swift.Int) -> IOTBluetooth.IBParameter",
-                    "children": [
-                      {
-                        "kind": "TypeNominal",
-                        "name": "IBParameter",
-                        "printedName": "IOTBluetooth.IBParameter",
-                        "usr": "s:12IOTBluetooth11IBParameterO"
-                      },
-                      {
-                        "kind": "TypeNominal",
-                        "name": "Int",
-                        "printedName": "Swift.Int",
-                        "usr": "s:Si"
-                      }
-                    ]
-                  },
                   {
                     "kind": "TypeNominal",
-                    "name": "Metatype",
-                    "printedName": "IOTBluetooth.IBParameter.Type",
-                    "children": [
-                      {
-                        "kind": "TypeNominal",
-                        "name": "IBParameter",
-                        "printedName": "IOTBluetooth.IBParameter",
-                        "usr": "s:12IOTBluetooth11IBParameterO"
-                      }
-                    ]
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
                   }
-                ]
-              }
-            ],
-            "declKind": "EnumElement",
-            "usr": "s:12IOTBluetooth11IBParameterO6actionyACSicACmF",
-            "mangledName": "$s12IOTBluetooth11IBParameterO6actionyACSicACmF",
-            "moduleName": "IOTBluetooth",
-            "declAttributes": [
-              "RawDocComment"
-            ]
-          },
-          {
-            "kind": "Var",
-            "name": "motionMode",
-            "printedName": "motionMode",
-            "children": [
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth13IBPhoneNumberC6numberSSvg",
+                "mangledName": "$s12IOTBluetooth13IBPhoneNumberC6numberSSvg",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "get"
+              },
               {
-                "kind": "TypeFunc",
-                "name": "Function",
-                "printedName": "(IOTBluetooth.IBParameter.Type) -> (IOTBluetooth.IBMotionMode) -> IOTBluetooth.IBParameter",
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
                 "children": [
                   {
-                    "kind": "TypeFunc",
-                    "name": "Function",
-                    "printedName": "(IOTBluetooth.IBMotionMode) -> IOTBluetooth.IBParameter",
-                    "children": [
-                      {
-                        "kind": "TypeNominal",
-                        "name": "IBParameter",
-                        "printedName": "IOTBluetooth.IBParameter",
-                        "usr": "s:12IOTBluetooth11IBParameterO"
-                      },
-                      {
-                        "kind": "TypeNominal",
-                        "name": "IBMotionMode",
-                        "printedName": "IOTBluetooth.IBMotionMode",
-                        "usr": "s:12IOTBluetooth12IBMotionModeO"
-                      }
-                    ]
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
                   },
                   {
                     "kind": "TypeNominal",
-                    "name": "Metatype",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth13IBPhoneNumberC6numberSSvs",
+                "mangledName": "$s12IOTBluetooth13IBPhoneNumberC6numberSSvs",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth13IBPhoneNumberC6numberSSvM",
+                "mangledName": "$s12IOTBluetooth13IBPhoneNumberC6numberSSvM",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "location",
+            "printedName": "location",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Optional",
+                "printedName": "Swift.String?",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "usr": "s:Sq"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:12IOTBluetooth13IBPhoneNumberC8locationSSSgvp",
+            "mangledName": "$s12IOTBluetooth13IBPhoneNumberC8locationSSSgvp",
+            "moduleName": "IOTBluetooth",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Optional",
+                    "printedName": "Swift.String?",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "String",
+                        "printedName": "Swift.String",
+                        "usr": "s:SS"
+                      }
+                    ],
+                    "usr": "s:Sq"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth13IBPhoneNumberC8locationSSSgvg",
+                "mangledName": "$s12IOTBluetooth13IBPhoneNumberC8locationSSSgvg",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Optional",
+                    "printedName": "Swift.String?",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "String",
+                        "printedName": "Swift.String",
+                        "usr": "s:SS"
+                      }
+                    ],
+                    "usr": "s:Sq"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth13IBPhoneNumberC8locationSSSgvs",
+                "mangledName": "$s12IOTBluetooth13IBPhoneNumberC8locationSSSgvs",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth13IBPhoneNumberC8locationSSSgvM",
+                "mangledName": "$s12IOTBluetooth13IBPhoneNumberC8locationSSSgvM",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "operator",
+            "printedName": "operator",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Optional",
+                "printedName": "Swift.String?",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "usr": "s:Sq"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:12IOTBluetooth13IBPhoneNumberC8operatorSSSgvp",
+            "mangledName": "$s12IOTBluetooth13IBPhoneNumberC8operatorSSSgvp",
+            "moduleName": "IOTBluetooth",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Optional",
+                    "printedName": "Swift.String?",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "String",
+                        "printedName": "Swift.String",
+                        "usr": "s:SS"
+                      }
+                    ],
+                    "usr": "s:Sq"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth13IBPhoneNumberC8operatorSSSgvg",
+                "mangledName": "$s12IOTBluetooth13IBPhoneNumberC8operatorSSSgvg",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Optional",
+                    "printedName": "Swift.String?",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "String",
+                        "printedName": "Swift.String",
+                        "usr": "s:SS"
+                      }
+                    ],
+                    "usr": "s:Sq"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth13IBPhoneNumberC8operatorSSSgvs",
+                "mangledName": "$s12IOTBluetooth13IBPhoneNumberC8operatorSSSgvs",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth13IBPhoneNumberC8operatorSSSgvM",
+                "mangledName": "$s12IOTBluetooth13IBPhoneNumberC8operatorSSSgvM",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Constructor",
+            "name": "init",
+            "printedName": "init()",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "IBPhoneNumber",
+                "printedName": "IOTBluetooth.IBPhoneNumber",
+                "usr": "s:12IOTBluetooth13IBPhoneNumberC"
+              }
+            ],
+            "declKind": "Constructor",
+            "usr": "s:12IOTBluetooth13IBPhoneNumberCACycfc",
+            "mangledName": "$s12IOTBluetooth13IBPhoneNumberCACycfc",
+            "moduleName": "IOTBluetooth",
+            "declAttributes": [
+              "AccessControl"
+            ],
+            "init_kind": "Designated"
+          },
+          {
+            "kind": "Var",
+            "name": "description",
+            "printedName": "description",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:12IOTBluetooth13IBPhoneNumberC11descriptionSSvp",
+            "mangledName": "$s12IOTBluetooth13IBPhoneNumberC11descriptionSSvp",
+            "moduleName": "IOTBluetooth",
+            "declAttributes": [
+              "AccessControl"
+            ],
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth13IBPhoneNumberC11descriptionSSvg",
+                "mangledName": "$s12IOTBluetooth13IBPhoneNumberC11descriptionSSvg",
+                "moduleName": "IOTBluetooth",
+                "accessorKind": "get"
+              }
+            ]
+          }
+        ],
+        "declKind": "Class",
+        "usr": "s:12IOTBluetooth13IBPhoneNumberC",
+        "mangledName": "$s12IOTBluetooth13IBPhoneNumberC",
+        "moduleName": "IOTBluetooth",
+        "declAttributes": [
+          "AccessControl",
+          "RawDocComment"
+        ],
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "IOTBluetooth",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "IBParameter",
+        "printedName": "IBParameter",
+        "children": [
+          {
+            "kind": "Var",
+            "name": "dialID",
+            "printedName": "dialID",
+            "children": [
+              {
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(IOTBluetooth.IBParameter.Type) -> (Swift.Int) -> IOTBluetooth.IBParameter",
+                "children": [
+                  {
+                    "kind": "TypeFunc",
+                    "name": "Function",
+                    "printedName": "(Swift.Int) -> IOTBluetooth.IBParameter",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "IBParameter",
+                        "printedName": "IOTBluetooth.IBParameter",
+                        "usr": "s:12IOTBluetooth11IBParameterO"
+                      },
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Int",
+                        "printedName": "Swift.Int",
+                        "usr": "s:Si"
+                      }
+                    ]
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Metatype",
+                    "printedName": "IOTBluetooth.IBParameter.Type",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "IBParameter",
+                        "printedName": "IOTBluetooth.IBParameter",
+                        "usr": "s:12IOTBluetooth11IBParameterO"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "declKind": "EnumElement",
+            "usr": "s:12IOTBluetooth11IBParameterO6dialIDyACSicACmF",
+            "mangledName": "$s12IOTBluetooth11IBParameterO6dialIDyACSicACmF",
+            "moduleName": "IOTBluetooth",
+            "declAttributes": [
+              "RawDocComment"
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "action",
+            "printedName": "action",
+            "children": [
+              {
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(IOTBluetooth.IBParameter.Type) -> (Swift.Int) -> IOTBluetooth.IBParameter",
+                "children": [
+                  {
+                    "kind": "TypeFunc",
+                    "name": "Function",
+                    "printedName": "(Swift.Int) -> IOTBluetooth.IBParameter",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "IBParameter",
+                        "printedName": "IOTBluetooth.IBParameter",
+                        "usr": "s:12IOTBluetooth11IBParameterO"
+                      },
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Int",
+                        "printedName": "Swift.Int",
+                        "usr": "s:Si"
+                      }
+                    ]
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Metatype",
+                    "printedName": "IOTBluetooth.IBParameter.Type",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "IBParameter",
+                        "printedName": "IOTBluetooth.IBParameter",
+                        "usr": "s:12IOTBluetooth11IBParameterO"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "declKind": "EnumElement",
+            "usr": "s:12IOTBluetooth11IBParameterO6actionyACSicACmF",
+            "mangledName": "$s12IOTBluetooth11IBParameterO6actionyACSicACmF",
+            "moduleName": "IOTBluetooth",
+            "declAttributes": [
+              "RawDocComment"
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "motionMode",
+            "printedName": "motionMode",
+            "children": [
+              {
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(IOTBluetooth.IBParameter.Type) -> (IOTBluetooth.IBMotionMode) -> IOTBluetooth.IBParameter",
+                "children": [
+                  {
+                    "kind": "TypeFunc",
+                    "name": "Function",
+                    "printedName": "(IOTBluetooth.IBMotionMode) -> IOTBluetooth.IBParameter",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "IBParameter",
+                        "printedName": "IOTBluetooth.IBParameter",
+                        "usr": "s:12IOTBluetooth11IBParameterO"
+                      },
+                      {
+                        "kind": "TypeNominal",
+                        "name": "IBMotionMode",
+                        "printedName": "IOTBluetooth.IBMotionMode",
+                        "usr": "s:12IOTBluetooth12IBMotionModeO"
+                      }
+                    ]
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Metatype",
                     "printedName": "IOTBluetooth.IBParameter.Type",
                     "children": [
                       {
             "declAttributes": [
               "RawDocComment"
             ]
+          },
+          {
+            "kind": "Var",
+            "name": "setPassword",
+            "printedName": "setPassword",
+            "children": [
+              {
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(IOTBluetooth.IBParameter.Type) -> (IOTBluetooth.IBPassword) -> IOTBluetooth.IBParameter",
+                "children": [
+                  {
+                    "kind": "TypeFunc",
+                    "name": "Function",
+                    "printedName": "(IOTBluetooth.IBPassword) -> IOTBluetooth.IBParameter",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "IBParameter",
+                        "printedName": "IOTBluetooth.IBParameter",
+                        "usr": "s:12IOTBluetooth11IBParameterO"
+                      },
+                      {
+                        "kind": "TypeNominal",
+                        "name": "IBPassword",
+                        "printedName": "IOTBluetooth.IBPassword",
+                        "usr": "s:12IOTBluetooth10IBPasswordC"
+                      }
+                    ]
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Metatype",
+                    "printedName": "IOTBluetooth.IBParameter.Type",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "IBParameter",
+                        "printedName": "IOTBluetooth.IBParameter",
+                        "usr": "s:12IOTBluetooth11IBParameterO"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "declKind": "EnumElement",
+            "usr": "s:12IOTBluetooth11IBParameterO11setPasswordyAcA10IBPasswordCcACmF",
+            "mangledName": "$s12IOTBluetooth11IBParameterO11setPasswordyAcA10IBPasswordCcACmF",
+            "moduleName": "IOTBluetooth",
+            "declAttributes": [
+              "RawDocComment"
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "setPush",
+            "printedName": "setPush",
+            "children": [
+              {
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(IOTBluetooth.IBParameter.Type) -> ([IOTBluetooth.IBPush]) -> IOTBluetooth.IBParameter",
+                "children": [
+                  {
+                    "kind": "TypeFunc",
+                    "name": "Function",
+                    "printedName": "([IOTBluetooth.IBPush]) -> IOTBluetooth.IBParameter",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "IBParameter",
+                        "printedName": "IOTBluetooth.IBParameter",
+                        "usr": "s:12IOTBluetooth11IBParameterO"
+                      },
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Array",
+                        "printedName": "[IOTBluetooth.IBPush]",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "IBPush",
+                            "printedName": "IOTBluetooth.IBPush",
+                            "usr": "s:12IOTBluetooth6IBPushC"
+                          }
+                        ],
+                        "usr": "s:Sa"
+                      }
+                    ]
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Metatype",
+                    "printedName": "IOTBluetooth.IBParameter.Type",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "IBParameter",
+                        "printedName": "IOTBluetooth.IBParameter",
+                        "usr": "s:12IOTBluetooth11IBParameterO"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "declKind": "EnumElement",
+            "usr": "s:12IOTBluetooth11IBParameterO7setPushyACSayAA6IBPushCGcACmF",
+            "mangledName": "$s12IOTBluetooth11IBParameterO7setPushyACSayAA6IBPushCGcACmF",
+            "moduleName": "IOTBluetooth",
+            "declAttributes": [
+              "RawDocComment"
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "setSosContact",
+            "printedName": "setSosContact",
+            "children": [
+              {
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(IOTBluetooth.IBParameter.Type) -> ([IOTBluetooth.IBContact]) -> IOTBluetooth.IBParameter",
+                "children": [
+                  {
+                    "kind": "TypeFunc",
+                    "name": "Function",
+                    "printedName": "([IOTBluetooth.IBContact]) -> IOTBluetooth.IBParameter",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "IBParameter",
+                        "printedName": "IOTBluetooth.IBParameter",
+                        "usr": "s:12IOTBluetooth11IBParameterO"
+                      },
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Array",
+                        "printedName": "[IOTBluetooth.IBContact]",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "IBContact",
+                            "printedName": "IOTBluetooth.IBContact",
+                            "usr": "s:12IOTBluetooth9IBContactC"
+                          }
+                        ],
+                        "usr": "s:Sa"
+                      }
+                    ]
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Metatype",
+                    "printedName": "IOTBluetooth.IBParameter.Type",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "IBParameter",
+                        "printedName": "IOTBluetooth.IBParameter",
+                        "usr": "s:12IOTBluetooth11IBParameterO"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "declKind": "EnumElement",
+            "usr": "s:12IOTBluetooth11IBParameterO13setSosContactyACSayAA9IBContactCGcACmF",
+            "mangledName": "$s12IOTBluetooth11IBParameterO13setSosContactyACSayAA9IBContactCGcACmF",
+            "moduleName": "IOTBluetooth",
+            "declAttributes": [
+              "RawDocComment"
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "sendSchedule",
+            "printedName": "sendSchedule",
+            "children": [
+              {
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(IOTBluetooth.IBParameter.Type) -> ([IOTBluetooth.IBSchedule]) -> IOTBluetooth.IBParameter",
+                "children": [
+                  {
+                    "kind": "TypeFunc",
+                    "name": "Function",
+                    "printedName": "([IOTBluetooth.IBSchedule]) -> IOTBluetooth.IBParameter",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "IBParameter",
+                        "printedName": "IOTBluetooth.IBParameter",
+                        "usr": "s:12IOTBluetooth11IBParameterO"
+                      },
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Array",
+                        "printedName": "[IOTBluetooth.IBSchedule]",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "IBSchedule",
+                            "printedName": "IOTBluetooth.IBSchedule",
+                            "usr": "s:12IOTBluetooth10IBScheduleC"
+                          }
+                        ],
+                        "usr": "s:Sa"
+                      }
+                    ]
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Metatype",
+                    "printedName": "IOTBluetooth.IBParameter.Type",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "IBParameter",
+                        "printedName": "IOTBluetooth.IBParameter",
+                        "usr": "s:12IOTBluetooth11IBParameterO"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "declKind": "EnumElement",
+            "usr": "s:12IOTBluetooth11IBParameterO12sendScheduleyACSayAA10IBScheduleCGcACmF",
+            "mangledName": "$s12IOTBluetooth11IBParameterO12sendScheduleyACSayAA10IBScheduleCGcACmF",
+            "moduleName": "IOTBluetooth",
+            "declAttributes": [
+              "RawDocComment"
+            ]
           }
         ],
         "declKind": "Enum",
         "declAttributes": [
           "AccessControl",
           "RawDocComment"
+        ],
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
         ]
       },
       {
         ],
         "enumRawTypeName": "Int",
         "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
           {
             "kind": "Conformance",
             "name": "Equatable",
         ],
         "enumRawTypeName": "Int",
         "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
           {
             "kind": "Conformance",
             "name": "Equatable",
         ],
         "enumRawTypeName": "Int",
         "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
           {
             "kind": "Conformance",
             "name": "Equatable",
           "AccessControl",
           "RawDocComment"
         ],
-        "hasMissingDesignatedInitializers": true
+        "hasMissingDesignatedInitializers": true,
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
+        ]
       },
       {
         "kind": "Import",
               {
                 "kind": "TypeNominal",
                 "name": "Decoder",
-                "printedName": "Swift.Decoder",
+                "printedName": "any Swift.Decoder",
                 "usr": "s:s7DecoderP"
               }
             ],
               {
                 "kind": "TypeNominal",
                 "name": "Encoder",
-                "printedName": "Swift.Encoder",
+                "printedName": "any Swift.Encoder",
                 "usr": "s:s7EncoderP"
               }
             ],
           "RawDocComment"
         ],
         "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
           {
             "kind": "Conformance",
             "name": "Decodable",
         "declAttributes": [
           "AccessControl",
           "RawDocComment"
+        ],
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
         ]
       },
       {
               {
                 "kind": "TypeNominal",
                 "name": "Decoder",
-                "printedName": "Swift.Decoder",
+                "printedName": "any Swift.Decoder",
                 "usr": "s:s7DecoderP"
               }
             ],
               {
                 "kind": "TypeNominal",
                 "name": "Encoder",
-                "printedName": "Swift.Encoder",
+                "printedName": "any Swift.Encoder",
                 "usr": "s:s7EncoderP"
               }
             ],
         ],
         "hasMissingDesignatedInitializers": true,
         "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
           {
             "kind": "Conformance",
             "name": "Decodable",
         "declAttributes": [
           "AccessControl",
           "RawDocComment"
+        ],
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
         ]
       },
       {
               {
                 "kind": "TypeNominal",
                 "name": "Decoder",
-                "printedName": "Swift.Decoder",
+                "printedName": "any Swift.Decoder",
                 "usr": "s:s7DecoderP"
               }
             ],
               {
                 "kind": "TypeNominal",
                 "name": "Encoder",
-                "printedName": "Swift.Encoder",
+                "printedName": "any Swift.Encoder",
                 "usr": "s:s7EncoderP"
               }
             ],
           "RawDocComment"
         ],
         "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
           {
             "kind": "Conformance",
             "name": "Decodable",
           "AccessControl",
           "RawDocComment"
         ],
-        "hasMissingDesignatedInitializers": true
+        "hasMissingDesignatedInitializers": true,
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
+        ]
       },
       {
         "kind": "Import",
         "declAttributes": [
           "AccessControl",
           "RawDocComment"
+        ],
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
         ]
       },
       {
           "AccessControl",
           "RawDocComment"
         ],
-        "hasMissingDesignatedInitializers": true
+        "hasMissingDesignatedInitializers": true,
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
+        ]
       },
       {
         "kind": "Import",
         "declAttributes": [
           "AccessControl",
           "RawDocComment"
+        ],
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
         ]
       },
       {
         "declAttributes": [
           "AccessControl",
           "RawDocComment"
+        ],
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
         ]
       },
       {
             "declAttributes": [
               "AccessControl"
             ],
-            "isFromExtension": true
+            "isFromExtension": true,
+            "conformances": [
+              {
+                "kind": "Conformance",
+                "name": "Copyable",
+                "printedName": "Copyable",
+                "usr": "s:s8CopyableP",
+                "mangledName": "$ss8CopyableP"
+              },
+              {
+                "kind": "Conformance",
+                "name": "Escapable",
+                "printedName": "Escapable",
+                "usr": "s:s9EscapableP",
+                "mangledName": "$ss9EscapableP"
+              }
+            ]
           }
         ],
         "declKind": "Class",
         "declAttributes": [
           "AccessControl"
         ],
-        "hasMissingDesignatedInitializers": true
+        "hasMissingDesignatedInitializers": true,
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "IOTBluetooth",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "IBPassword",
+        "printedName": "IBPassword",
+        "children": [
+          {
+            "kind": "Var",
+            "name": "type",
+            "printedName": "type",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:12IOTBluetooth10IBPasswordC4typeSivp",
+            "mangledName": "$s12IOTBluetooth10IBPasswordC4typeSivp",
+            "moduleName": "IOTBluetooth",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth10IBPasswordC4typeSivg",
+                "mangledName": "$s12IOTBluetooth10IBPasswordC4typeSivg",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth10IBPasswordC4typeSivs",
+                "mangledName": "$s12IOTBluetooth10IBPasswordC4typeSivs",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth10IBPasswordC4typeSivM",
+                "mangledName": "$s12IOTBluetooth10IBPasswordC4typeSivM",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "password",
+            "printedName": "password",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:12IOTBluetooth10IBPasswordC8passwordSSvp",
+            "mangledName": "$s12IOTBluetooth10IBPasswordC8passwordSSvp",
+            "moduleName": "IOTBluetooth",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth10IBPasswordC8passwordSSvg",
+                "mangledName": "$s12IOTBluetooth10IBPasswordC8passwordSSvg",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth10IBPasswordC8passwordSSvs",
+                "mangledName": "$s12IOTBluetooth10IBPasswordC8passwordSSvs",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth10IBPasswordC8passwordSSvM",
+                "mangledName": "$s12IOTBluetooth10IBPasswordC8passwordSSvM",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Constructor",
+            "name": "init",
+            "printedName": "init()",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "IBPassword",
+                "printedName": "IOTBluetooth.IBPassword",
+                "usr": "s:12IOTBluetooth10IBPasswordC"
+              }
+            ],
+            "declKind": "Constructor",
+            "usr": "s:12IOTBluetooth10IBPasswordCACycfc",
+            "mangledName": "$s12IOTBluetooth10IBPasswordCACycfc",
+            "moduleName": "IOTBluetooth",
+            "declAttributes": [
+              "AccessControl"
+            ],
+            "init_kind": "Designated"
+          },
+          {
+            "kind": "Constructor",
+            "name": "init",
+            "printedName": "init(type:password:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "IBPassword",
+                "printedName": "IOTBluetooth.IBPassword",
+                "usr": "s:12IOTBluetooth10IBPasswordC"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Constructor",
+            "usr": "s:12IOTBluetooth10IBPasswordC4type8passwordACSi_SStcfc",
+            "mangledName": "$s12IOTBluetooth10IBPasswordC4type8passwordACSi_SStcfc",
+            "moduleName": "IOTBluetooth",
+            "declAttributes": [
+              "AccessControl"
+            ],
+            "init_kind": "Designated"
+          },
+          {
+            "kind": "Constructor",
+            "name": "init",
+            "printedName": "init(from:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "IBPassword",
+                "printedName": "IOTBluetooth.IBPassword",
+                "usr": "s:12IOTBluetooth10IBPasswordC"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Decoder",
+                "printedName": "any Swift.Decoder",
+                "usr": "s:s7DecoderP"
+              }
+            ],
+            "declKind": "Constructor",
+            "usr": "s:12IOTBluetooth10IBPasswordC4fromACs7Decoder_p_tKcfc",
+            "mangledName": "$s12IOTBluetooth10IBPasswordC4fromACs7Decoder_p_tKcfc",
+            "moduleName": "IOTBluetooth",
+            "implicit": true,
+            "declAttributes": [
+              "Required"
+            ],
+            "throwing": true,
+            "init_kind": "Designated"
+          },
+          {
+            "kind": "Function",
+            "name": "encode",
+            "printedName": "encode(to:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Encoder",
+                "printedName": "any Swift.Encoder",
+                "usr": "s:s7EncoderP"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:12IOTBluetooth10IBPasswordC6encode2toys7Encoder_p_tKF",
+            "mangledName": "$s12IOTBluetooth10IBPasswordC6encode2toys7Encoder_p_tKF",
+            "moduleName": "IOTBluetooth",
+            "implicit": true,
+            "throwing": true,
+            "funcSelfKind": "NonMutating"
+          }
+        ],
+        "declKind": "Class",
+        "usr": "s:12IOTBluetooth10IBPasswordC",
+        "mangledName": "$s12IOTBluetooth10IBPasswordC",
+        "moduleName": "IOTBluetooth",
+        "declAttributes": [
+          "AccessControl",
+          "RawDocComment"
+        ],
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Decodable",
+            "printedName": "Decodable",
+            "usr": "s:Se",
+            "mangledName": "$sSe"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Encodable",
+            "printedName": "Encodable",
+            "usr": "s:SE",
+            "mangledName": "$sSE"
+          }
+        ]
       },
       {
         "kind": "Import",
               "RawDocComment"
             ]
           },
+          {
+            "kind": "Constructor",
+            "name": "init",
+            "printedName": "init(rawValue:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Optional",
+                "printedName": "IOTBluetooth.IBCode?",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "IBCode",
+                    "printedName": "IOTBluetooth.IBCode",
+                    "usr": "s:12IOTBluetooth6IBCodeO"
+                  }
+                ],
+                "usr": "s:Sq"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              }
+            ],
+            "declKind": "Constructor",
+            "usr": "s:12IOTBluetooth6IBCodeO8rawValueACSgSi_tcfc",
+            "mangledName": "$s12IOTBluetooth6IBCodeO8rawValueACSgSi_tcfc",
+            "moduleName": "IOTBluetooth",
+            "implicit": true,
+            "init_kind": "Designated"
+          },
           {
             "kind": "Var",
             "name": "rawValue",
                 "accessorKind": "get"
               }
             ]
-          },
-          {
-            "kind": "Constructor",
-            "name": "init",
-            "printedName": "init(rawValue:)",
-            "children": [
-              {
-                "kind": "TypeNominal",
-                "name": "Optional",
-                "printedName": "IOTBluetooth.IBCode?",
-                "children": [
-                  {
-                    "kind": "TypeNominal",
-                    "name": "IBCode",
-                    "printedName": "IOTBluetooth.IBCode",
-                    "usr": "s:12IOTBluetooth6IBCodeO"
-                  }
-                ],
-                "usr": "s:Sq"
-              },
-              {
-                "kind": "TypeNominal",
-                "name": "Int",
-                "printedName": "Swift.Int",
-                "usr": "s:Si"
-              }
-            ],
-            "declKind": "Constructor",
-            "usr": "s:12IOTBluetooth6IBCodeO8rawValueACSgSi_tcfc",
-            "mangledName": "$s12IOTBluetooth6IBCodeO8rawValueACSgSi_tcfc",
-            "moduleName": "IOTBluetooth",
-            "implicit": true,
-            "init_kind": "Designated"
           }
         ],
         "declKind": "Enum",
         ],
         "enumRawTypeName": "Int",
         "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
           {
             "kind": "Conformance",
             "name": "Equatable",
               {
                 "kind": "TypeNominal",
                 "name": "Decoder",
-                "printedName": "Swift.Decoder",
+                "printedName": "any Swift.Decoder",
                 "usr": "s:s7DecoderP"
               }
             ],
               {
                 "kind": "TypeNominal",
                 "name": "Encoder",
-                "printedName": "Swift.Encoder",
+                "printedName": "any Swift.Encoder",
                 "usr": "s:s7EncoderP"
               }
             ],
         ],
         "hasMissingDesignatedInitializers": true,
         "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
           {
             "kind": "Conformance",
             "name": "Decodable",
               {
                 "kind": "TypeNominal",
                 "name": "Decoder",
-                "printedName": "Swift.Decoder",
+                "printedName": "any Swift.Decoder",
                 "usr": "s:s7DecoderP"
               }
             ],
               {
                 "kind": "TypeNominal",
                 "name": "Encoder",
-                "printedName": "Swift.Encoder",
+                "printedName": "any Swift.Encoder",
                 "usr": "s:s7EncoderP"
               }
             ],
           "RawDocComment"
         ],
         "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
           {
             "kind": "Conformance",
             "name": "Decodable",
               {
                 "kind": "TypeNominal",
                 "name": "Decoder",
-                "printedName": "Swift.Decoder",
+                "printedName": "any Swift.Decoder",
                 "usr": "s:s7DecoderP"
               }
             ],
               {
                 "kind": "TypeNominal",
                 "name": "Encoder",
-                "printedName": "Swift.Encoder",
+                "printedName": "any Swift.Encoder",
                 "usr": "s:s7EncoderP"
               }
             ],
           "RawDocComment"
         ],
         "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
           {
             "kind": "Conformance",
             "name": "Decodable",
             ],
             "init_kind": "Designated"
           },
-          {
-            "kind": "Function",
-            "name": "encode",
-            "printedName": "encode(to:)",
-            "children": [
-              {
-                "kind": "TypeNominal",
-                "name": "Void",
-                "printedName": "()"
-              },
-              {
-                "kind": "TypeNominal",
-                "name": "Encoder",
-                "printedName": "Swift.Encoder",
-                "usr": "s:s7EncoderP"
-              }
-            ],
-            "declKind": "Func",
-            "usr": "s:12IOTBluetooth13IBTrainTargetC6encode2toys7Encoder_p_tKF",
-            "mangledName": "$s12IOTBluetooth13IBTrainTargetC6encode2toys7Encoder_p_tKF",
-            "moduleName": "IOTBluetooth",
-            "implicit": true,
-            "throwing": true,
-            "funcSelfKind": "NonMutating"
-          },
           {
             "kind": "Constructor",
             "name": "init",
               {
                 "kind": "TypeNominal",
                 "name": "Decoder",
-                "printedName": "Swift.Decoder",
+                "printedName": "any Swift.Decoder",
                 "usr": "s:s7DecoderP"
               }
             ],
             ],
             "throwing": true,
             "init_kind": "Designated"
+          },
+          {
+            "kind": "Function",
+            "name": "encode",
+            "printedName": "encode(to:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Encoder",
+                "printedName": "any Swift.Encoder",
+                "usr": "s:s7EncoderP"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:12IOTBluetooth13IBTrainTargetC6encode2toys7Encoder_p_tKF",
+            "mangledName": "$s12IOTBluetooth13IBTrainTargetC6encode2toys7Encoder_p_tKF",
+            "moduleName": "IOTBluetooth",
+            "implicit": true,
+            "throwing": true,
+            "funcSelfKind": "NonMutating"
           }
         ],
         "declKind": "Class",
           "RawDocComment"
         ],
         "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
           {
             "kind": "Conformance",
             "name": "Decodable",
         ],
         "enumRawTypeName": "Int",
         "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
           {
             "kind": "Conformance",
             "name": "Equatable",
         "declAttributes": [
           "AccessControl",
           "RawDocComment"
+        ],
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
         ]
       },
       {
           "AccessControl",
           "RawDocComment"
         ],
-        "hasMissingDesignatedInitializers": true
+        "hasMissingDesignatedInitializers": true,
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
+        ]
       },
       {
         "kind": "TypeDecl",
         "declAttributes": [
           "AccessControl",
           "RawDocComment"
+        ],
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
         ]
       },
       {
         "declAttributes": [
           "AccessControl",
           "RawDocComment"
+        ],
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
         ]
       },
       {
         "declAttributes": [
           "AccessControl",
           "RawDocComment"
+        ],
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
         ]
       },
       {
               "RawDocComment"
             ]
           },
+          {
+            "kind": "Constructor",
+            "name": "init",
+            "printedName": "init(rawValue:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Optional",
+                "printedName": "IOTBluetooth.IBFrequency?",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "IBFrequency",
+                    "printedName": "IOTBluetooth.IBFrequency",
+                    "usr": "s:12IOTBluetooth11IBFrequencyO"
+                  }
+                ],
+                "usr": "s:Sq"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              }
+            ],
+            "declKind": "Constructor",
+            "usr": "s:12IOTBluetooth11IBFrequencyO8rawValueACSgSi_tcfc",
+            "mangledName": "$s12IOTBluetooth11IBFrequencyO8rawValueACSgSi_tcfc",
+            "moduleName": "IOTBluetooth",
+            "implicit": true,
+            "init_kind": "Designated"
+          },
           {
             "kind": "Var",
             "name": "rawValue",
                 "accessorKind": "get"
               }
             ]
-          },
-          {
-            "kind": "Constructor",
-            "name": "init",
-            "printedName": "init(rawValue:)",
-            "children": [
-              {
-                "kind": "TypeNominal",
-                "name": "Optional",
-                "printedName": "IOTBluetooth.IBFrequency?",
-                "children": [
-                  {
-                    "kind": "TypeNominal",
-                    "name": "IBFrequency",
-                    "printedName": "IOTBluetooth.IBFrequency",
-                    "usr": "s:12IOTBluetooth11IBFrequencyO"
-                  }
-                ],
-                "usr": "s:Sq"
-              },
-              {
-                "kind": "TypeNominal",
-                "name": "Int",
-                "printedName": "Swift.Int",
-                "usr": "s:Si"
-              }
-            ],
-            "declKind": "Constructor",
-            "usr": "s:12IOTBluetooth11IBFrequencyO8rawValueACSgSi_tcfc",
-            "mangledName": "$s12IOTBluetooth11IBFrequencyO8rawValueACSgSi_tcfc",
-            "moduleName": "IOTBluetooth",
-            "implicit": true,
-            "init_kind": "Designated"
           }
         ],
         "declKind": "Enum",
         ],
         "enumRawTypeName": "Int",
         "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
           {
             "kind": "Conformance",
             "name": "Equatable",
           },
           {
             "kind": "Var",
-            "name": "userData",
-            "printedName": "userData",
+            "name": "getPasssword",
+            "printedName": "getPasssword",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC8userDataACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC8userDataACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC12getPassswordACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC12getPassswordACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC8userDataACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC8userDataACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC12getPassswordACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC12getPassswordACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "about",
-            "printedName": "about",
+            "name": "setPasssword",
+            "printedName": "setPasssword",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC5aboutACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC5aboutACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC12setPassswordACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC12setPassswordACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC5aboutACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC5aboutACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC12setPassswordACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC12setPassswordACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "switchDial",
-            "printedName": "switchDial",
+            "name": "getPushConfig",
+            "printedName": "getPushConfig",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC10switchDialACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC10switchDialACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC13getPushConfigACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC13getPushConfigACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC10switchDialACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC10switchDialACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC13getPushConfigACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC13getPushConfigACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "deleteDial",
-            "printedName": "deleteDial",
+            "name": "setPushConfig",
+            "printedName": "setPushConfig",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC10deleteDialACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC10deleteDialACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC13setPushConfigACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC13setPushConfigACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC10deleteDialACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC10deleteDialACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC13setPushConfigACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC13setPushConfigACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "fetchCurrentDialId",
-            "printedName": "fetchCurrentDialId",
+            "name": "getSosContact",
+            "printedName": "getSosContact",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC18fetchCurrentDialIdACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC18fetchCurrentDialIdACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC13getSosContactACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC13getSosContactACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC18fetchCurrentDialIdACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC18fetchCurrentDialIdACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC13getSosContactACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC13getSosContactACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "find",
-            "printedName": "find",
+            "name": "setSosContact",
+            "printedName": "setSosContact",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC4findACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC4findACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC13setSosContactACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC13setSosContactACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC4findACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC4findACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC13setSosContactACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC13setSosContactACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "message",
-            "printedName": "message",
+            "name": "sendSchedule",
+            "printedName": "sendSchedule",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC7messageACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC7messageACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC12sendScheduleACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC12sendScheduleACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC7messageACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC7messageACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC12sendScheduleACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC12sendScheduleACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "startSport",
-            "printedName": "startSport",
+            "name": "userData",
+            "printedName": "userData",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC10startSportACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC10startSportACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC8userDataACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC8userDataACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC10startSportACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC10startSportACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC8userDataACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC8userDataACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "endSport",
-            "printedName": "endSport",
+            "name": "about",
+            "printedName": "about",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC8endSportACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC8endSportACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC5aboutACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC5aboutACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC8endSportACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC8endSportACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC5aboutACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC5aboutACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "trainFrequency",
-            "printedName": "trainFrequency",
+            "name": "switchDial",
+            "printedName": "switchDial",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC14trainFrequencyACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC14trainFrequencyACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC10switchDialACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC10switchDialACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC14trainFrequencyACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC14trainFrequencyACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC10switchDialACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC10switchDialACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "trainPauseResume",
-            "printedName": "trainPauseResume",
+            "name": "deleteDial",
+            "printedName": "deleteDial",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC16trainPauseResumeACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC16trainPauseResumeACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC10deleteDialACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC10deleteDialACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC16trainPauseResumeACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC16trainPauseResumeACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC10deleteDialACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC10deleteDialACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "language",
-            "printedName": "language",
+            "name": "fetchCurrentDialId",
+            "printedName": "fetchCurrentDialId",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC8languageACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC8languageACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC18fetchCurrentDialIdACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC18fetchCurrentDialIdACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC8languageACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC8languageACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC18fetchCurrentDialIdACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC18fetchCurrentDialIdACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "fetchHeartRate",
-            "printedName": "fetchHeartRate",
+            "name": "find",
+            "printedName": "find",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC14fetchHeartRateACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC14fetchHeartRateACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC4findACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC4findACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC14fetchHeartRateACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC14fetchHeartRateACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC4findACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC4findACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "heartRate",
-            "printedName": "heartRate",
+            "name": "message",
+            "printedName": "message",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC9heartRateACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC9heartRateACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC7messageACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC7messageACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC9heartRateACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC9heartRateACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC7messageACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC7messageACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "fetchBloodOxygen",
-            "printedName": "fetchBloodOxygen",
+            "name": "startSport",
+            "printedName": "startSport",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC16fetchBloodOxygenACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC16fetchBloodOxygenACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC10startSportACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC10startSportACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC16fetchBloodOxygenACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC16fetchBloodOxygenACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC10startSportACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC10startSportACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "bloodOxygen",
-            "printedName": "bloodOxygen",
+            "name": "endSport",
+            "printedName": "endSport",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC11bloodOxygenACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC11bloodOxygenACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC8endSportACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC8endSportACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC11bloodOxygenACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC11bloodOxygenACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC8endSportACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC8endSportACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "currentHeartRate",
-            "printedName": "currentHeartRate",
+            "name": "trainFrequency",
+            "printedName": "trainFrequency",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC16currentHeartRateACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC16currentHeartRateACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC14trainFrequencyACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC14trainFrequencyACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC16currentHeartRateACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC16currentHeartRateACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC14trainFrequencyACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC14trainFrequencyACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "heartRateMode",
-            "printedName": "heartRateMode",
+            "name": "trainPauseResume",
+            "printedName": "trainPauseResume",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC13heartRateModeACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC13heartRateModeACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC16trainPauseResumeACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC16trainPauseResumeACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC13heartRateModeACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC13heartRateModeACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC16trainPauseResumeACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC16trainPauseResumeACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "heartRateHigh",
-            "printedName": "heartRateHigh",
+            "name": "language",
+            "printedName": "language",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC13heartRateHighACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC13heartRateHighACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC8languageACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC8languageACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC13heartRateHighACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC13heartRateHighACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC8languageACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC8languageACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "takePhoto",
-            "printedName": "takePhoto",
+            "name": "fetchHeartRate",
+            "printedName": "fetchHeartRate",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC9takePhotoACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC9takePhotoACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC14fetchHeartRateACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC14fetchHeartRateACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC9takePhotoACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC9takePhotoACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC14fetchHeartRateACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC14fetchHeartRateACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "restore",
-            "printedName": "restore",
+            "name": "heartRate",
+            "printedName": "heartRate",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC7restoreACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC7restoreACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC9heartRateACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC9heartRateACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC7restoreACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC7restoreACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC9heartRateACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC9heartRateACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "reboot",
-            "printedName": "reboot",
+            "name": "fetchBloodOxygen",
+            "printedName": "fetchBloodOxygen",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC6rebootACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC6rebootACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC16fetchBloodOxygenACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC16fetchBloodOxygenACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC6rebootACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC6rebootACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC16fetchBloodOxygenACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC16fetchBloodOxygenACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "shutdown",
-            "printedName": "shutdown",
+            "name": "bloodOxygen",
+            "printedName": "bloodOxygen",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC8shutdownACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC8shutdownACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC11bloodOxygenACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC11bloodOxygenACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC8shutdownACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC8shutdownACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC11bloodOxygenACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC11bloodOxygenACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "fetchBattery",
-            "printedName": "fetchBattery",
+            "name": "currentHeartRate",
+            "printedName": "currentHeartRate",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC12fetchBatteryACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC12fetchBatteryACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC16currentHeartRateACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC16currentHeartRateACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC12fetchBatteryACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC12fetchBatteryACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC16currentHeartRateACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC16currentHeartRateACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "fetchClock",
-            "printedName": "fetchClock",
+            "name": "heartRateMode",
+            "printedName": "heartRateMode",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC10fetchClockACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC10fetchClockACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC13heartRateModeACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC13heartRateModeACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC10fetchClockACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC10fetchClockACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC13heartRateModeACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC13heartRateModeACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "setClock",
-            "printedName": "setClock",
+            "name": "heartRateHigh",
+            "printedName": "heartRateHigh",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC8setClockACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC8setClockACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC13heartRateHighACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC13heartRateHighACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC8setClockACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC8setClockACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC13heartRateHighACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC13heartRateHighACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "fetchDials",
-            "printedName": "fetchDials",
+            "name": "takePhoto",
+            "printedName": "takePhoto",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC10fetchDialsACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC10fetchDialsACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC9takePhotoACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC9takePhotoACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC10fetchDialsACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC10fetchDialsACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC9takePhotoACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC9takePhotoACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "checkDialID",
-            "printedName": "checkDialID",
+            "name": "restore",
+            "printedName": "restore",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC11checkDialIDACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC11checkDialIDACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC7restoreACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC7restoreACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC11checkDialIDACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC11checkDialIDACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC7restoreACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC7restoreACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "fetchWatchState",
-            "printedName": "fetchWatchState",
+            "name": "reboot",
+            "printedName": "reboot",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC15fetchWatchStateACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC15fetchWatchStateACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC6rebootACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC6rebootACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC15fetchWatchStateACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC15fetchWatchStateACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC6rebootACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC6rebootACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "fetchScreen",
-            "printedName": "fetchScreen",
+            "name": "shutdown",
+            "printedName": "shutdown",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC11fetchScreenACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC11fetchScreenACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC8shutdownACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC8shutdownACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC11fetchScreenACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC11fetchScreenACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC8shutdownACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC8shutdownACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "screen",
-            "printedName": "screen",
+            "name": "fetchBattery",
+            "printedName": "fetchBattery",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC6screenACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC6screenACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC12fetchBatteryACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC12fetchBatteryACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC6screenACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC6screenACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC12fetchBatteryACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC12fetchBatteryACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "fetchVibrateSound",
-            "printedName": "fetchVibrateSound",
+            "name": "fetchClock",
+            "printedName": "fetchClock",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC17fetchVibrateSoundACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC17fetchVibrateSoundACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC10fetchClockACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC10fetchClockACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC17fetchVibrateSoundACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC17fetchVibrateSoundACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC10fetchClockACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC10fetchClockACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "vibrateSound",
-            "printedName": "vibrateSound",
+            "name": "setClock",
+            "printedName": "setClock",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC12vibrateSoundACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC12vibrateSoundACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC8setClockACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC8setClockACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC12vibrateSoundACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC12vibrateSoundACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC8setClockACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC8setClockACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "auxiliary",
-            "printedName": "auxiliary",
+            "name": "fetchDials",
+            "printedName": "fetchDials",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC9auxiliaryACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC9auxiliaryACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC10fetchDialsACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC10fetchDialsACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC9auxiliaryACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC9auxiliaryACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC10fetchDialsACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC10fetchDialsACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "fetchAuxiliary",
-            "printedName": "fetchAuxiliary",
+            "name": "checkDialID",
+            "printedName": "checkDialID",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC14fetchAuxiliaryACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC14fetchAuxiliaryACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC11checkDialIDACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC11checkDialIDACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC14fetchAuxiliaryACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC14fetchAuxiliaryACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC11checkDialIDACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC11checkDialIDACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "fetchTargetStep",
-            "printedName": "fetchTargetStep",
+            "name": "fetchWatchState",
+            "printedName": "fetchWatchState",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC15fetchTargetStepACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC15fetchTargetStepACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC15fetchWatchStateACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC15fetchWatchStateACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC15fetchTargetStepACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC15fetchTargetStepACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC15fetchWatchStateACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC15fetchWatchStateACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "targetStep",
-            "printedName": "targetStep",
+            "name": "fetchScreen",
+            "printedName": "fetchScreen",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC10targetStepACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC10targetStepACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC11fetchScreenACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC11fetchScreenACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC10targetStepACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC10targetStepACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC11fetchScreenACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC11fetchScreenACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "fetchOtherTarget",
-            "printedName": "fetchOtherTarget",
+            "name": "screen",
+            "printedName": "screen",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC16fetchOtherTargetACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC16fetchOtherTargetACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC6screenACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC6screenACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC16fetchOtherTargetACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC16fetchOtherTargetACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC6screenACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC6screenACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "targetOther",
-            "printedName": "targetOther",
+            "name": "fetchVibrateSound",
+            "printedName": "fetchVibrateSound",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC11targetOtherACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC11targetOtherACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC17fetchVibrateSoundACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC17fetchVibrateSoundACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC11targetOtherACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC11targetOtherACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC17fetchVibrateSoundACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC17fetchVibrateSoundACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "fetchSleep",
-            "printedName": "fetchSleep",
+            "name": "vibrateSound",
+            "printedName": "vibrateSound",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC10fetchSleepACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC10fetchSleepACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC12vibrateSoundACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC12vibrateSoundACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC10fetchSleepACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC10fetchSleepACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC12vibrateSoundACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC12vibrateSoundACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "sleep",
-            "printedName": "sleep",
+            "name": "auxiliary",
+            "printedName": "auxiliary",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC5sleepACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC5sleepACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC9auxiliaryACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC9auxiliaryACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC5sleepACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC5sleepACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC9auxiliaryACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC9auxiliaryACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "fetchWater",
-            "printedName": "fetchWater",
+            "name": "fetchAuxiliary",
+            "printedName": "fetchAuxiliary",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC10fetchWaterACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC10fetchWaterACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC14fetchAuxiliaryACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC14fetchAuxiliaryACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC10fetchWaterACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC10fetchWaterACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC14fetchAuxiliaryACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC14fetchAuxiliaryACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "water",
-            "printedName": "water",
+            "name": "fetchTargetStep",
+            "printedName": "fetchTargetStep",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC5waterACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC5waterACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC15fetchTargetStepACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC15fetchTargetStepACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC5waterACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC5waterACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC15fetchTargetStepACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC15fetchTargetStepACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "unit",
-            "printedName": "unit",
+            "name": "targetStep",
+            "printedName": "targetStep",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC4unitACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC4unitACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC10targetStepACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC10targetStepACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC4unitACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC4unitACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC10targetStepACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC10targetStepACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "trainTarget",
-            "printedName": "trainTarget",
+            "name": "fetchOtherTarget",
+            "printedName": "fetchOtherTarget",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC11trainTargetACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC11trainTargetACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC16fetchOtherTargetACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC16fetchOtherTargetACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC11trainTargetACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC11trainTargetACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC16fetchOtherTargetACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC16fetchOtherTargetACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "syncHeartRate",
-            "printedName": "syncHeartRate",
+            "name": "targetOther",
+            "printedName": "targetOther",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC13syncHeartRateACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC13syncHeartRateACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC11targetOtherACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC11targetOtherACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC13syncHeartRateACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC13syncHeartRateACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC11targetOtherACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC11targetOtherACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "syncBloodOxygen",
-            "printedName": "syncBloodOxygen",
+            "name": "fetchSleep",
+            "printedName": "fetchSleep",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC15syncBloodOxygenACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC15syncBloodOxygenACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC10fetchSleepACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC10fetchSleepACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC15syncBloodOxygenACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC15syncBloodOxygenACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC10fetchSleepACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC10fetchSleepACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "syncStepCount",
-            "printedName": "syncStepCount",
+            "name": "sleep",
+            "printedName": "sleep",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC13syncStepCountACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC13syncStepCountACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC5sleepACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC5sleepACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC13syncStepCountACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC13syncStepCountACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC5sleepACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC5sleepACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "syncFatBurning",
-            "printedName": "syncFatBurning",
+            "name": "fetchWater",
+            "printedName": "fetchWater",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC14syncFatBurningACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC14syncFatBurningACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC10fetchWaterACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC10fetchWaterACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC14syncFatBurningACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC14syncFatBurningACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC10fetchWaterACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC10fetchWaterACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "syncStand",
-            "printedName": "syncStand",
+            "name": "water",
+            "printedName": "water",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC9syncStandACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC9syncStandACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC5waterACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC5waterACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC9syncStandACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC9syncStandACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC5waterACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC5waterACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "syncCalorie",
-            "printedName": "syncCalorie",
+            "name": "unit",
+            "printedName": "unit",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC11syncCalorieACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC11syncCalorieACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC4unitACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC4unitACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC11syncCalorieACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC11syncCalorieACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC4unitACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC4unitACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "syncDistance",
-            "printedName": "syncDistance",
+            "name": "trainTarget",
+            "printedName": "trainTarget",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC12syncDistanceACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC12syncDistanceACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC11trainTargetACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC11trainTargetACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC12syncDistanceACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC12syncDistanceACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC11trainTargetACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC11trainTargetACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "syncTrain",
-            "printedName": "syncTrain",
+            "name": "syncHeartRate",
+            "printedName": "syncHeartRate",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC9syncTrainACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC9syncTrainACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC13syncHeartRateACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC13syncHeartRateACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC9syncTrainACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC9syncTrainACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC13syncHeartRateACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC13syncHeartRateACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "syncSleep",
-            "printedName": "syncSleep",
+            "name": "syncBloodOxygen",
+            "printedName": "syncBloodOxygen",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC9syncSleepACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC9syncSleepACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC15syncBloodOxygenACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC15syncBloodOxygenACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC9syncSleepACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC9syncSleepACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC15syncBloodOxygenACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC15syncBloodOxygenACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "syncGPS",
-            "printedName": "syncGPS",
+            "name": "syncStepCount",
+            "printedName": "syncStepCount",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC7syncGPSACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC7syncGPSACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC13syncStepCountACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC13syncStepCountACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC7syncGPSACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC7syncGPSACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC13syncStepCountACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC13syncStepCountACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "sendSyncEnd",
-            "printedName": "sendSyncEnd",
+            "name": "syncFatBurning",
+            "printedName": "syncFatBurning",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC11sendSyncEndACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC11sendSyncEndACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC14syncFatBurningACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC14syncFatBurningACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC11sendSyncEndACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC11sendSyncEndACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC14syncFatBurningACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC14syncFatBurningACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "disk",
-            "printedName": "disk",
+            "name": "syncStand",
+            "printedName": "syncStand",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC4diskACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC4diskACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC9syncStandACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC9syncStandACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC4diskACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC4diskACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC9syncStandACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC9syncStandACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "sendPhone",
-            "printedName": "sendPhone",
+            "name": "syncCalorie",
+            "printedName": "syncCalorie",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC9sendPhoneACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC9sendPhoneACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC11syncCalorieACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC11syncCalorieACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC9sendPhoneACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC9sendPhoneACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC11syncCalorieACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC11syncCalorieACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "sendTime",
-            "printedName": "sendTime",
+            "name": "syncDistance",
+            "printedName": "syncDistance",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC8sendTimeACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC8sendTimeACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC12syncDistanceACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC12syncDistanceACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC8sendTimeACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC8sendTimeACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC12syncDistanceACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC12syncDistanceACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "unpair",
-            "printedName": "unpair",
+            "name": "syncTrain",
+            "printedName": "syncTrain",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC6unpairACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC6unpairACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC9syncTrainACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC9syncTrainACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC6unpairACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC6unpairACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC9syncTrainACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC9syncTrainACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "sendUnpair",
-            "printedName": "sendUnpair",
+            "name": "syncSleep",
+            "printedName": "syncSleep",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC10sendUnpairACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC10sendUnpairACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC9syncSleepACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC9syncSleepACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC10sendUnpairACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC10sendUnpairACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC9syncSleepACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC9syncSleepACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "sendWeather",
-            "printedName": "sendWeather",
+            "name": "syncGPS",
+            "printedName": "syncGPS",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC11sendWeatherACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC11sendWeatherACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC7syncGPSACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC7syncGPSACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC11sendWeatherACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC11sendWeatherACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC7syncGPSACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC7syncGPSACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "addressBook",
-            "printedName": "addressBook",
+            "name": "sendSyncEnd",
+            "printedName": "sendSyncEnd",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC11addressBookACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC11addressBookACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC11sendSyncEndACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC11sendSyncEndACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC11addressBookACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC11addressBookACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC11sendSyncEndACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC11sendSyncEndACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "mp3",
-            "printedName": "mp3",
+            "name": "disk",
+            "printedName": "disk",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC3mp3ACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC3mp3ACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC4diskACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC4diskACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC3mp3ACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC3mp3ACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC4diskACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC4diskACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "dial",
-            "printedName": "dial",
+            "name": "sendPhone",
+            "printedName": "sendPhone",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC4dialACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC4dialACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC9sendPhoneACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC9sendPhoneACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC4dialACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC4dialACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC9sendPhoneACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC9sendPhoneACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "deleteFile",
-            "printedName": "deleteFile",
+            "name": "sendTime",
+            "printedName": "sendTime",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC10deleteFileACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC10deleteFileACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC8sendTimeACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC8sendTimeACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC10deleteFileACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC10deleteFileACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC8sendTimeACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC8sendTimeACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "deleteFiles",
-            "printedName": "deleteFiles",
+            "name": "unpair",
+            "printedName": "unpair",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC11deleteFilesACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC11deleteFilesACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC6unpairACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC6unpairACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC11deleteFilesACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC11deleteFilesACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC6unpairACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC6unpairACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "ota",
-            "printedName": "ota",
+            "name": "sendUnpair",
+            "printedName": "sendUnpair",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC3otaACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC3otaACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC10sendUnpairACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC10sendUnpairACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC3otaACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC3otaACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC10sendUnpairACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC10sendUnpairACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "revokeFileSend",
-            "printedName": "revokeFileSend",
+            "name": "sendWeather",
+            "printedName": "sendWeather",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC14revokeFileSendACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC14revokeFileSendACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC11sendWeatherACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC11sendWeatherACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth9IBAbilityC14revokeFileSendACvgZ",
-                "mangledName": "$s12IOTBluetooth9IBAbilityC14revokeFileSendACvgZ",
+                "usr": "s:12IOTBluetooth9IBAbilityC11sendWeatherACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC11sendWeatherACvgZ",
                 "moduleName": "IOTBluetooth",
                 "static": true,
                 "implicit": true,
           },
           {
             "kind": "Var",
-            "name": "fetchFiles",
-            "printedName": "fetchFiles",
+            "name": "addressBook",
+            "printedName": "addressBook",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth9IBAbilityC10fetchFilesACvpZ",
-            "mangledName": "$s12IOTBluetooth9IBAbilityC10fetchFilesACvpZ",
+            "usr": "s:12IOTBluetooth9IBAbilityC11addressBookACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC11addressBookACvpZ",
+            "moduleName": "IOTBluetooth",
+            "static": true,
+            "declAttributes": [
+              "HasInitialValue",
+              "Final",
+              "HasStorage",
+              "RawDocComment"
+            ],
+            "isFromExtension": true,
+            "isLet": true,
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "IBAbility",
+                    "printedName": "IOTBluetooth.IBAbility",
+                    "usr": "s:12IOTBluetooth9IBAbilityC"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth9IBAbilityC11addressBookACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC11addressBookACvgZ",
+                "moduleName": "IOTBluetooth",
+                "static": true,
+                "implicit": true,
+                "declAttributes": [
+                  "Final"
+                ],
+                "isFromExtension": true,
+                "accessorKind": "get"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "mp3",
+            "printedName": "mp3",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "IBAbility",
+                "printedName": "IOTBluetooth.IBAbility",
+                "usr": "s:12IOTBluetooth9IBAbilityC"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:12IOTBluetooth9IBAbilityC3mp3ACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC3mp3ACvpZ",
+            "moduleName": "IOTBluetooth",
+            "static": true,
+            "declAttributes": [
+              "HasInitialValue",
+              "Final",
+              "HasStorage",
+              "RawDocComment"
+            ],
+            "isFromExtension": true,
+            "isLet": true,
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "IBAbility",
+                    "printedName": "IOTBluetooth.IBAbility",
+                    "usr": "s:12IOTBluetooth9IBAbilityC"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth9IBAbilityC3mp3ACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC3mp3ACvgZ",
+                "moduleName": "IOTBluetooth",
+                "static": true,
+                "implicit": true,
+                "declAttributes": [
+                  "Final"
+                ],
+                "isFromExtension": true,
+                "accessorKind": "get"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "dial",
+            "printedName": "dial",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "IBAbility",
+                "printedName": "IOTBluetooth.IBAbility",
+                "usr": "s:12IOTBluetooth9IBAbilityC"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:12IOTBluetooth9IBAbilityC4dialACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC4dialACvpZ",
+            "moduleName": "IOTBluetooth",
+            "static": true,
+            "declAttributes": [
+              "HasInitialValue",
+              "Final",
+              "HasStorage",
+              "RawDocComment"
+            ],
+            "isFromExtension": true,
+            "isLet": true,
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "IBAbility",
+                    "printedName": "IOTBluetooth.IBAbility",
+                    "usr": "s:12IOTBluetooth9IBAbilityC"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth9IBAbilityC4dialACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC4dialACvgZ",
+                "moduleName": "IOTBluetooth",
+                "static": true,
+                "implicit": true,
+                "declAttributes": [
+                  "Final"
+                ],
+                "isFromExtension": true,
+                "accessorKind": "get"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "deleteFile",
+            "printedName": "deleteFile",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "IBAbility",
+                "printedName": "IOTBluetooth.IBAbility",
+                "usr": "s:12IOTBluetooth9IBAbilityC"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:12IOTBluetooth9IBAbilityC10deleteFileACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC10deleteFileACvpZ",
+            "moduleName": "IOTBluetooth",
+            "static": true,
+            "declAttributes": [
+              "HasInitialValue",
+              "Final",
+              "HasStorage",
+              "RawDocComment"
+            ],
+            "isFromExtension": true,
+            "isLet": true,
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "IBAbility",
+                    "printedName": "IOTBluetooth.IBAbility",
+                    "usr": "s:12IOTBluetooth9IBAbilityC"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth9IBAbilityC10deleteFileACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC10deleteFileACvgZ",
+                "moduleName": "IOTBluetooth",
+                "static": true,
+                "implicit": true,
+                "declAttributes": [
+                  "Final"
+                ],
+                "isFromExtension": true,
+                "accessorKind": "get"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "deleteFiles",
+            "printedName": "deleteFiles",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "IBAbility",
+                "printedName": "IOTBluetooth.IBAbility",
+                "usr": "s:12IOTBluetooth9IBAbilityC"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:12IOTBluetooth9IBAbilityC11deleteFilesACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC11deleteFilesACvpZ",
+            "moduleName": "IOTBluetooth",
+            "static": true,
+            "declAttributes": [
+              "HasInitialValue",
+              "Final",
+              "HasStorage",
+              "RawDocComment"
+            ],
+            "isFromExtension": true,
+            "isLet": true,
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "IBAbility",
+                    "printedName": "IOTBluetooth.IBAbility",
+                    "usr": "s:12IOTBluetooth9IBAbilityC"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth9IBAbilityC11deleteFilesACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC11deleteFilesACvgZ",
+                "moduleName": "IOTBluetooth",
+                "static": true,
+                "implicit": true,
+                "declAttributes": [
+                  "Final"
+                ],
+                "isFromExtension": true,
+                "accessorKind": "get"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "ota",
+            "printedName": "ota",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "IBAbility",
+                "printedName": "IOTBluetooth.IBAbility",
+                "usr": "s:12IOTBluetooth9IBAbilityC"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:12IOTBluetooth9IBAbilityC3otaACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC3otaACvpZ",
+            "moduleName": "IOTBluetooth",
+            "static": true,
+            "declAttributes": [
+              "HasInitialValue",
+              "Final",
+              "HasStorage",
+              "RawDocComment"
+            ],
+            "isFromExtension": true,
+            "isLet": true,
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "IBAbility",
+                    "printedName": "IOTBluetooth.IBAbility",
+                    "usr": "s:12IOTBluetooth9IBAbilityC"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth9IBAbilityC3otaACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC3otaACvgZ",
+                "moduleName": "IOTBluetooth",
+                "static": true,
+                "implicit": true,
+                "declAttributes": [
+                  "Final"
+                ],
+                "isFromExtension": true,
+                "accessorKind": "get"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "revokeFileSend",
+            "printedName": "revokeFileSend",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "IBAbility",
+                "printedName": "IOTBluetooth.IBAbility",
+                "usr": "s:12IOTBluetooth9IBAbilityC"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:12IOTBluetooth9IBAbilityC14revokeFileSendACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC14revokeFileSendACvpZ",
+            "moduleName": "IOTBluetooth",
+            "static": true,
+            "declAttributes": [
+              "HasInitialValue",
+              "Final",
+              "HasStorage",
+              "RawDocComment"
+            ],
+            "isFromExtension": true,
+            "isLet": true,
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "IBAbility",
+                    "printedName": "IOTBluetooth.IBAbility",
+                    "usr": "s:12IOTBluetooth9IBAbilityC"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth9IBAbilityC14revokeFileSendACvgZ",
+                "mangledName": "$s12IOTBluetooth9IBAbilityC14revokeFileSendACvgZ",
+                "moduleName": "IOTBluetooth",
+                "static": true,
+                "implicit": true,
+                "declAttributes": [
+                  "Final"
+                ],
+                "isFromExtension": true,
+                "accessorKind": "get"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "fetchFiles",
+            "printedName": "fetchFiles",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "IBAbility",
+                "printedName": "IOTBluetooth.IBAbility",
+                "usr": "s:12IOTBluetooth9IBAbilityC"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:12IOTBluetooth9IBAbilityC10fetchFilesACvpZ",
+            "mangledName": "$s12IOTBluetooth9IBAbilityC10fetchFilesACvpZ",
             "moduleName": "IOTBluetooth",
             "static": true,
             "declAttributes": [
           "AccessControl",
           "RawDocComment"
         ],
-        "hasMissingDesignatedInitializers": true
+        "hasMissingDesignatedInitializers": true,
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
+        ]
       },
       {
         "kind": "Import",
         "declAttributes": [
           "AccessControl",
           "RawDocComment"
+        ],
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
         ]
       },
       {
           "AccessControl",
           "RawDocComment"
         ],
-        "hasMissingDesignatedInitializers": true
+        "hasMissingDesignatedInitializers": true,
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
+        ]
       },
       {
         "kind": "TypeDecl",
               "RawDocComment"
             ]
           },
+          {
+            "kind": "Constructor",
+            "name": "init",
+            "printedName": "init(rawValue:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Optional",
+                "printedName": "IOTBluetooth.IBDuration?",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "IBDuration",
+                    "printedName": "IOTBluetooth.IBDuration",
+                    "usr": "s:12IOTBluetooth10IBDurationO"
+                  }
+                ],
+                "usr": "s:Sq"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              }
+            ],
+            "declKind": "Constructor",
+            "usr": "s:12IOTBluetooth10IBDurationO8rawValueACSgSi_tcfc",
+            "mangledName": "$s12IOTBluetooth10IBDurationO8rawValueACSgSi_tcfc",
+            "moduleName": "IOTBluetooth",
+            "implicit": true,
+            "init_kind": "Designated"
+          },
           {
             "kind": "Var",
             "name": "rawValue",
                 "accessorKind": "get"
               }
             ]
-          },
-          {
-            "kind": "Constructor",
-            "name": "init",
-            "printedName": "init(rawValue:)",
-            "children": [
-              {
-                "kind": "TypeNominal",
-                "name": "Optional",
-                "printedName": "IOTBluetooth.IBDuration?",
-                "children": [
-                  {
-                    "kind": "TypeNominal",
-                    "name": "IBDuration",
-                    "printedName": "IOTBluetooth.IBDuration",
-                    "usr": "s:12IOTBluetooth10IBDurationO"
-                  }
-                ],
-                "usr": "s:Sq"
-              },
-              {
-                "kind": "TypeNominal",
-                "name": "Int",
-                "printedName": "Swift.Int",
-                "usr": "s:Si"
-              }
-            ],
-            "declKind": "Constructor",
-            "usr": "s:12IOTBluetooth10IBDurationO8rawValueACSgSi_tcfc",
-            "mangledName": "$s12IOTBluetooth10IBDurationO8rawValueACSgSi_tcfc",
-            "moduleName": "IOTBluetooth",
-            "implicit": true,
-            "init_kind": "Designated"
           }
         ],
         "declKind": "Enum",
         ],
         "enumRawTypeName": "Int",
         "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
           {
             "kind": "Conformance",
             "name": "Equatable",
             ],
             "init_kind": "Designated"
           },
-          {
-            "kind": "Function",
-            "name": "encode",
-            "printedName": "encode(to:)",
-            "children": [
-              {
-                "kind": "TypeNominal",
-                "name": "Void",
-                "printedName": "()"
-              },
-              {
-                "kind": "TypeNominal",
-                "name": "Encoder",
-                "printedName": "Swift.Encoder",
-                "usr": "s:s7EncoderP"
-              }
-            ],
-            "declKind": "Func",
-            "usr": "s:12IOTBluetooth10IBSendTimeC6encode2toys7Encoder_p_tKF",
-            "mangledName": "$s12IOTBluetooth10IBSendTimeC6encode2toys7Encoder_p_tKF",
-            "moduleName": "IOTBluetooth",
-            "implicit": true,
-            "throwing": true,
-            "funcSelfKind": "NonMutating"
-          },
           {
             "kind": "Constructor",
             "name": "init",
               {
                 "kind": "TypeNominal",
                 "name": "Decoder",
-                "printedName": "Swift.Decoder",
+                "printedName": "any Swift.Decoder",
                 "usr": "s:s7DecoderP"
               }
             ],
             ],
             "throwing": true,
             "init_kind": "Designated"
+          },
+          {
+            "kind": "Function",
+            "name": "encode",
+            "printedName": "encode(to:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Encoder",
+                "printedName": "any Swift.Encoder",
+                "usr": "s:s7EncoderP"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:12IOTBluetooth10IBSendTimeC6encode2toys7Encoder_p_tKF",
+            "mangledName": "$s12IOTBluetooth10IBSendTimeC6encode2toys7Encoder_p_tKF",
+            "moduleName": "IOTBluetooth",
+            "implicit": true,
+            "throwing": true,
+            "funcSelfKind": "NonMutating"
           }
         ],
         "declKind": "Class",
           "RawDocComment"
         ],
         "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
           {
             "kind": "Conformance",
             "name": "Decodable",
           "RawDocComment"
         ]
       },
-      {
-        "kind": "Import",
-        "name": "Foundation",
-        "printedName": "Foundation",
-        "declKind": "Import",
-        "moduleName": "IOTBluetooth",
-        "declAttributes": [
-          "RawDocComment"
-        ]
-      },
       {
         "kind": "TypeDecl",
-        "name": "IBTargetStep",
-        "printedName": "IBTargetStep",
+        "name": "IBContact",
+        "printedName": "IBContact",
         "children": [
           {
             "kind": "Var",
-            "name": "value",
-            "printedName": "value",
+            "name": "gender",
+            "printedName": "gender",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth12IBTargetStepC5valueSivp",
-            "mangledName": "$s12IOTBluetooth12IBTargetStepC5valueSivp",
+            "usr": "s:12IOTBluetooth9IBContactC6genderSivp",
+            "mangledName": "$s12IOTBluetooth9IBContactC6genderSivp",
             "moduleName": "IOTBluetooth",
             "declAttributes": [
               "HasInitialValue",
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth12IBTargetStepC5valueSivg",
-                "mangledName": "$s12IOTBluetooth12IBTargetStepC5valueSivg",
+                "usr": "s:12IOTBluetooth9IBContactC6genderSivg",
+                "mangledName": "$s12IOTBluetooth9IBContactC6genderSivg",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "get"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth12IBTargetStepC5valueSivs",
-                "mangledName": "$s12IOTBluetooth12IBTargetStepC5valueSivs",
+                "usr": "s:12IOTBluetooth9IBContactC6genderSivs",
+                "mangledName": "$s12IOTBluetooth9IBContactC6genderSivs",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "set"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth12IBTargetStepC5valueSivM",
-                "mangledName": "$s12IOTBluetooth12IBTargetStepC5valueSivM",
+                "usr": "s:12IOTBluetooth9IBContactC6genderSivM",
+                "mangledName": "$s12IOTBluetooth9IBContactC6genderSivM",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "_modify"
           },
           {
             "kind": "Var",
-            "name": "ring",
-            "printedName": "ring",
+            "name": "name",
+            "printedName": "name",
             "children": [
               {
                 "kind": "TypeNominal",
-                "name": "Int",
-                "printedName": "Swift.Int",
-                "usr": "s:Si"
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth12IBTargetStepC4ringSivp",
-            "mangledName": "$s12IOTBluetooth12IBTargetStepC4ringSivp",
+            "usr": "s:12IOTBluetooth9IBContactC4nameSSvp",
+            "mangledName": "$s12IOTBluetooth9IBContactC4nameSSvp",
             "moduleName": "IOTBluetooth",
             "declAttributes": [
               "HasInitialValue",
                 "children": [
                   {
                     "kind": "TypeNominal",
-                    "name": "Int",
-                    "printedName": "Swift.Int",
-                    "usr": "s:Si"
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth12IBTargetStepC4ringSivg",
-                "mangledName": "$s12IOTBluetooth12IBTargetStepC4ringSivg",
+                "usr": "s:12IOTBluetooth9IBContactC4nameSSvg",
+                "mangledName": "$s12IOTBluetooth9IBContactC4nameSSvg",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "get"
                   },
                   {
                     "kind": "TypeNominal",
-                    "name": "Int",
-                    "printedName": "Swift.Int",
-                    "usr": "s:Si"
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth12IBTargetStepC4ringSivs",
-                "mangledName": "$s12IOTBluetooth12IBTargetStepC4ringSivs",
+                "usr": "s:12IOTBluetooth9IBContactC4nameSSvs",
+                "mangledName": "$s12IOTBluetooth9IBContactC4nameSSvs",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "set"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth12IBTargetStepC4ringSivM",
-                "mangledName": "$s12IOTBluetooth12IBTargetStepC4ringSivM",
+                "usr": "s:12IOTBluetooth9IBContactC4nameSSvM",
+                "mangledName": "$s12IOTBluetooth9IBContactC4nameSSvM",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "_modify"
           },
           {
             "kind": "Var",
-            "name": "vibrate",
-            "printedName": "vibrate",
+            "name": "tel",
+            "printedName": "tel",
             "children": [
               {
                 "kind": "TypeNominal",
-                "name": "Int",
-                "printedName": "Swift.Int",
-                "usr": "s:Si"
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth12IBTargetStepC7vibrateSivp",
-            "mangledName": "$s12IOTBluetooth12IBTargetStepC7vibrateSivp",
+            "usr": "s:12IOTBluetooth9IBContactC3telSSvp",
+            "mangledName": "$s12IOTBluetooth9IBContactC3telSSvp",
             "moduleName": "IOTBluetooth",
             "declAttributes": [
               "HasInitialValue",
                 "children": [
                   {
                     "kind": "TypeNominal",
-                    "name": "Int",
-                    "printedName": "Swift.Int",
-                    "usr": "s:Si"
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth12IBTargetStepC7vibrateSivg",
-                "mangledName": "$s12IOTBluetooth12IBTargetStepC7vibrateSivg",
+                "usr": "s:12IOTBluetooth9IBContactC3telSSvg",
+                "mangledName": "$s12IOTBluetooth9IBContactC3telSSvg",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "get"
                   },
                   {
                     "kind": "TypeNominal",
-                    "name": "Int",
-                    "printedName": "Swift.Int",
-                    "usr": "s:Si"
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth12IBTargetStepC7vibrateSivs",
-                "mangledName": "$s12IOTBluetooth12IBTargetStepC7vibrateSivs",
+                "usr": "s:12IOTBluetooth9IBContactC3telSSvs",
+                "mangledName": "$s12IOTBluetooth9IBContactC3telSSvs",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "set"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth12IBTargetStepC7vibrateSivM",
-                "mangledName": "$s12IOTBluetooth12IBTargetStepC7vibrateSivM",
+                "usr": "s:12IOTBluetooth9IBContactC3telSSvM",
+                "mangledName": "$s12IOTBluetooth9IBContactC3telSSvM",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "_modify"
               }
             ]
           },
+          {
+            "kind": "Constructor",
+            "name": "init",
+            "printedName": "init()",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "IBContact",
+                "printedName": "IOTBluetooth.IBContact",
+                "usr": "s:12IOTBluetooth9IBContactC"
+              }
+            ],
+            "declKind": "Constructor",
+            "usr": "s:12IOTBluetooth9IBContactCACycfc",
+            "mangledName": "$s12IOTBluetooth9IBContactCACycfc",
+            "moduleName": "IOTBluetooth",
+            "declAttributes": [
+              "AccessControl"
+            ],
+            "init_kind": "Designated"
+          }
+        ],
+        "declKind": "Class",
+        "usr": "s:12IOTBluetooth9IBContactC",
+        "mangledName": "$s12IOTBluetooth9IBContactC",
+        "moduleName": "IOTBluetooth",
+        "declAttributes": [
+          "AccessControl",
+          "RawDocComment"
+        ],
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "IOTBluetooth",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "IOTBluetooth",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "IBTargetStep",
+        "printedName": "IBTargetStep",
+        "children": [
           {
             "kind": "Var",
-            "name": "notice",
-            "printedName": "notice",
+            "name": "value",
+            "printedName": "value",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth12IBTargetStepC6noticeSivp",
-            "mangledName": "$s12IOTBluetooth12IBTargetStepC6noticeSivp",
+            "usr": "s:12IOTBluetooth12IBTargetStepC5valueSivp",
+            "mangledName": "$s12IOTBluetooth12IBTargetStepC5valueSivp",
+            "moduleName": "IOTBluetooth",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth12IBTargetStepC5valueSivg",
+                "mangledName": "$s12IOTBluetooth12IBTargetStepC5valueSivg",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth12IBTargetStepC5valueSivs",
+                "mangledName": "$s12IOTBluetooth12IBTargetStepC5valueSivs",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth12IBTargetStepC5valueSivM",
+                "mangledName": "$s12IOTBluetooth12IBTargetStepC5valueSivM",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "ring",
+            "printedName": "ring",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:12IOTBluetooth12IBTargetStepC4ringSivp",
+            "mangledName": "$s12IOTBluetooth12IBTargetStepC4ringSivp",
+            "moduleName": "IOTBluetooth",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth12IBTargetStepC4ringSivg",
+                "mangledName": "$s12IOTBluetooth12IBTargetStepC4ringSivg",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth12IBTargetStepC4ringSivs",
+                "mangledName": "$s12IOTBluetooth12IBTargetStepC4ringSivs",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth12IBTargetStepC4ringSivM",
+                "mangledName": "$s12IOTBluetooth12IBTargetStepC4ringSivM",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "vibrate",
+            "printedName": "vibrate",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:12IOTBluetooth12IBTargetStepC7vibrateSivp",
+            "mangledName": "$s12IOTBluetooth12IBTargetStepC7vibrateSivp",
+            "moduleName": "IOTBluetooth",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth12IBTargetStepC7vibrateSivg",
+                "mangledName": "$s12IOTBluetooth12IBTargetStepC7vibrateSivg",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth12IBTargetStepC7vibrateSivs",
+                "mangledName": "$s12IOTBluetooth12IBTargetStepC7vibrateSivs",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth12IBTargetStepC7vibrateSivM",
+                "mangledName": "$s12IOTBluetooth12IBTargetStepC7vibrateSivM",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "notice",
+            "printedName": "notice",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:12IOTBluetooth12IBTargetStepC6noticeSivp",
+            "mangledName": "$s12IOTBluetooth12IBTargetStepC6noticeSivp",
             "moduleName": "IOTBluetooth",
             "declAttributes": [
               "HasInitialValue",
           "AccessControl",
           "RawDocComment"
         ],
-        "hasMissingDesignatedInitializers": true
+        "hasMissingDesignatedInitializers": true,
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
+        ]
       },
       {
         "kind": "Import",
         "moduleName": "IOTBluetooth",
         "declAttributes": [
           "AccessControl"
+        ],
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
         ]
       },
       {
         "moduleName": "IOTBluetooth",
         "declAttributes": [
           "AccessControl"
+        ],
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          }
         ]
       },
       {
           {
             "kind": "TypeNominal",
             "name": "Optional",
-            "printedName": "IOTBluetooth.IBPeripheralUUID?",
+            "printedName": "(any IOTBluetooth.IBPeripheralUUID)?",
             "children": [
               {
                 "kind": "TypeNominal",
                 "name": "IBPeripheralUUID",
-                "printedName": "IOTBluetooth.IBPeripheralUUID",
+                "printedName": "any IOTBluetooth.IBPeripheralUUID",
                 "usr": "s:12IOTBluetooth16IBPeripheralUUIDP"
               }
             ],
           {
             "kind": "TypeNominal",
             "name": "Optional",
-            "printedName": "IOTBluetooth.IBPeripheralUUID?",
+            "printedName": "(any IOTBluetooth.IBPeripheralUUID)?",
             "children": [
               {
                 "kind": "TypeNominal",
                 "name": "IBPeripheralUUID",
-                "printedName": "IOTBluetooth.IBPeripheralUUID",
+                "printedName": "any IOTBluetooth.IBPeripheralUUID",
                 "usr": "s:12IOTBluetooth16IBPeripheralUUIDP"
               }
             ],
         "declAttributes": [
           "AccessControl",
           "RawDocComment"
+        ],
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
         ]
       },
       {
               {
                 "kind": "TypeNominal",
                 "name": "Decoder",
-                "printedName": "Swift.Decoder",
+                "printedName": "any Swift.Decoder",
                 "usr": "s:s7DecoderP"
               }
             ],
               {
                 "kind": "TypeNominal",
                 "name": "Encoder",
-                "printedName": "Swift.Encoder",
+                "printedName": "any Swift.Encoder",
                 "usr": "s:s7EncoderP"
               }
             ],
           "RawDocComment"
         ],
         "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
           {
             "kind": "Conformance",
             "name": "Decodable",
         "name": "IBMp3File",
         "printedName": "IBMp3File",
         "children": [
-          {
-            "kind": "Function",
-            "name": "encode",
-            "printedName": "encode(to:)",
-            "children": [
-              {
-                "kind": "TypeNominal",
-                "name": "Void",
-                "printedName": "()"
-              },
-              {
-                "kind": "TypeNominal",
-                "name": "Encoder",
-                "printedName": "Swift.Encoder",
-                "usr": "s:s7EncoderP"
-              }
-            ],
-            "declKind": "Func",
-            "usr": "s:12IOTBluetooth9IBMp3FileC6encode2toys7Encoder_p_tKF",
-            "mangledName": "$s12IOTBluetooth9IBMp3FileC6encode2toys7Encoder_p_tKF",
-            "moduleName": "IOTBluetooth",
-            "implicit": true,
-            "throwing": true,
-            "funcSelfKind": "NonMutating"
-          },
           {
             "kind": "Constructor",
             "name": "init",
               {
                 "kind": "TypeNominal",
                 "name": "Decoder",
-                "printedName": "Swift.Decoder",
+                "printedName": "any Swift.Decoder",
                 "usr": "s:s7DecoderP"
               }
             ],
             ],
             "throwing": true,
             "init_kind": "Designated"
+          },
+          {
+            "kind": "Function",
+            "name": "encode",
+            "printedName": "encode(to:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Encoder",
+                "printedName": "any Swift.Encoder",
+                "usr": "s:s7EncoderP"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:12IOTBluetooth9IBMp3FileC6encode2toys7Encoder_p_tKF",
+            "mangledName": "$s12IOTBluetooth9IBMp3FileC6encode2toys7Encoder_p_tKF",
+            "moduleName": "IOTBluetooth",
+            "implicit": true,
+            "throwing": true,
+            "funcSelfKind": "NonMutating"
           }
         ],
         "declKind": "Class",
         ],
         "hasMissingDesignatedInitializers": true,
         "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
           {
             "kind": "Conformance",
             "name": "Decodable",
               {
                 "kind": "TypeNominal",
                 "name": "ImplicitlyUnwrappedOptional",
-                "printedName": "ObjectiveC.NSObjectProtocol?",
+                "printedName": "(any ObjectiveC.NSObjectProtocol)?",
                 "children": [
                   {
                     "kind": "TypeNominal",
                     "name": "NSObjectProtocol",
-                    "printedName": "ObjectiveC.NSObjectProtocol",
+                    "printedName": "any ObjectiveC.NSObjectProtocol",
                     "usr": "c:objc(pl)NSObject"
                   }
                 ],
               {
                 "kind": "TypeNominal",
                 "name": "NSObjectProtocol",
-                "printedName": "ObjectiveC.NSObjectProtocol",
+                "printedName": "any ObjectiveC.NSObjectProtocol",
                 "usr": "c:objc(pl)NSObject"
               }
             ],
           "AccessControl",
           "RawDocComment"
         ],
-        "hasMissingDesignatedInitializers": true
-      },
-      {
-        "kind": "Import",
-        "name": "Foundation",
-        "printedName": "Foundation",
-        "declKind": "Import",
-        "moduleName": "IOTBluetooth",
-        "declAttributes": [
-          "RawDocComment"
+        "hasMissingDesignatedInitializers": true,
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
         ]
       },
-      {
-        "kind": "Import",
-        "name": "MixSdk",
-        "printedName": "MixSdk",
-        "declKind": "Import",
-        "moduleName": "IOTBluetooth"
-      },
       {
         "kind": "Import",
         "name": "Foundation",
             ],
             "init_kind": "Designated"
           },
-          {
-            "kind": "Function",
-            "name": "encode",
-            "printedName": "encode(to:)",
-            "children": [
-              {
-                "kind": "TypeNominal",
-                "name": "Void",
-                "printedName": "()"
-              },
-              {
-                "kind": "TypeNominal",
-                "name": "Encoder",
-                "printedName": "Swift.Encoder",
-                "usr": "s:s7EncoderP"
-              }
-            ],
-            "declKind": "Func",
-            "usr": "s:12IOTBluetooth11IBPhoneInfoC6encode2toys7Encoder_p_tKF",
-            "mangledName": "$s12IOTBluetooth11IBPhoneInfoC6encode2toys7Encoder_p_tKF",
-            "moduleName": "IOTBluetooth",
-            "implicit": true,
-            "throwing": true,
-            "funcSelfKind": "NonMutating"
-          },
           {
             "kind": "Constructor",
             "name": "init",
               {
                 "kind": "TypeNominal",
                 "name": "Decoder",
-                "printedName": "Swift.Decoder",
+                "printedName": "any Swift.Decoder",
                 "usr": "s:s7DecoderP"
               }
             ],
             ],
             "throwing": true,
             "init_kind": "Designated"
+          },
+          {
+            "kind": "Function",
+            "name": "encode",
+            "printedName": "encode(to:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Encoder",
+                "printedName": "any Swift.Encoder",
+                "usr": "s:s7EncoderP"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:12IOTBluetooth11IBPhoneInfoC6encode2toys7Encoder_p_tKF",
+            "mangledName": "$s12IOTBluetooth11IBPhoneInfoC6encode2toys7Encoder_p_tKF",
+            "moduleName": "IOTBluetooth",
+            "implicit": true,
+            "throwing": true,
+            "funcSelfKind": "NonMutating"
           }
         ],
         "declKind": "Class",
           "RawDocComment"
         ],
         "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
           {
             "kind": "Conformance",
             "name": "Decodable",
           "RawDocComment"
         ]
       },
-      {
-        "kind": "Import",
-        "name": "Foundation",
-        "printedName": "Foundation",
-        "declKind": "Import",
-        "moduleName": "IOTBluetooth",
-        "declAttributes": [
-          "RawDocComment"
-        ]
-      },
       {
         "kind": "TypeDecl",
-        "name": "IBHistorySleepItem",
-        "printedName": "IBHistorySleepItem",
+        "name": "IBSchedule",
+        "printedName": "IBSchedule",
         "children": [
           {
             "kind": "Var",
-            "name": "sleepId",
-            "printedName": "sleepId",
+            "name": "id",
+            "printedName": "id",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth18IBHistorySleepItemC7sleepIdSivp",
-            "mangledName": "$s12IOTBluetooth18IBHistorySleepItemC7sleepIdSivp",
+            "usr": "s:12IOTBluetooth10IBScheduleC2idSivp",
+            "mangledName": "$s12IOTBluetooth10IBScheduleC2idSivp",
             "moduleName": "IOTBluetooth",
             "declAttributes": [
               "HasInitialValue",
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth18IBHistorySleepItemC7sleepIdSivg",
-                "mangledName": "$s12IOTBluetooth18IBHistorySleepItemC7sleepIdSivg",
+                "usr": "s:12IOTBluetooth10IBScheduleC2idSivg",
+                "mangledName": "$s12IOTBluetooth10IBScheduleC2idSivg",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "get"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth18IBHistorySleepItemC7sleepIdSivs",
-                "mangledName": "$s12IOTBluetooth18IBHistorySleepItemC7sleepIdSivs",
+                "usr": "s:12IOTBluetooth10IBScheduleC2idSivs",
+                "mangledName": "$s12IOTBluetooth10IBScheduleC2idSivs",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "set"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth18IBHistorySleepItemC7sleepIdSivM",
-                "mangledName": "$s12IOTBluetooth18IBHistorySleepItemC7sleepIdSivM",
+                "usr": "s:12IOTBluetooth10IBScheduleC2idSivM",
+                "mangledName": "$s12IOTBluetooth10IBScheduleC2idSivM",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "_modify"
           },
           {
             "kind": "Var",
-            "name": "type",
-            "printedName": "type",
+            "name": "title",
+            "printedName": "title",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:12IOTBluetooth10IBScheduleC5titleSSvp",
+            "mangledName": "$s12IOTBluetooth10IBScheduleC5titleSSvp",
+            "moduleName": "IOTBluetooth",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth10IBScheduleC5titleSSvg",
+                "mangledName": "$s12IOTBluetooth10IBScheduleC5titleSSvg",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth10IBScheduleC5titleSSvs",
+                "mangledName": "$s12IOTBluetooth10IBScheduleC5titleSSvs",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth10IBScheduleC5titleSSvM",
+                "mangledName": "$s12IOTBluetooth10IBScheduleC5titleSSvM",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "begin",
+            "printedName": "begin",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth18IBHistorySleepItemC4typeSivp",
-            "mangledName": "$s12IOTBluetooth18IBHistorySleepItemC4typeSivp",
+            "usr": "s:12IOTBluetooth10IBScheduleC5beginSivp",
+            "mangledName": "$s12IOTBluetooth10IBScheduleC5beginSivp",
             "moduleName": "IOTBluetooth",
             "declAttributes": [
               "HasInitialValue",
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth18IBHistorySleepItemC4typeSivg",
-                "mangledName": "$s12IOTBluetooth18IBHistorySleepItemC4typeSivg",
+                "usr": "s:12IOTBluetooth10IBScheduleC5beginSivg",
+                "mangledName": "$s12IOTBluetooth10IBScheduleC5beginSivg",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "get"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth18IBHistorySleepItemC4typeSivs",
-                "mangledName": "$s12IOTBluetooth18IBHistorySleepItemC4typeSivs",
+                "usr": "s:12IOTBluetooth10IBScheduleC5beginSivs",
+                "mangledName": "$s12IOTBluetooth10IBScheduleC5beginSivs",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "set"
                   }
                 ],
                 "declKind": "Accessor",
-                "usr": "s:12IOTBluetooth18IBHistorySleepItemC4typeSivM",
-                "mangledName": "$s12IOTBluetooth18IBHistorySleepItemC4typeSivM",
+                "usr": "s:12IOTBluetooth10IBScheduleC5beginSivM",
+                "mangledName": "$s12IOTBluetooth10IBScheduleC5beginSivM",
                 "moduleName": "IOTBluetooth",
                 "implicit": true,
                 "accessorKind": "_modify"
           },
           {
             "kind": "Var",
-            "name": "startTime",
-            "printedName": "startTime",
+            "name": "end",
+            "printedName": "end",
             "children": [
               {
                 "kind": "TypeNominal",
               }
             ],
             "declKind": "Var",
-            "usr": "s:12IOTBluetooth18IBHistorySleepItemC9startTimeSivp",
-            "mangledName": "$s12IOTBluetooth18IBHistorySleepItemC9startTimeSivp",
+            "usr": "s:12IOTBluetooth10IBScheduleC3endSivp",
+            "mangledName": "$s12IOTBluetooth10IBScheduleC3endSivp",
+            "moduleName": "IOTBluetooth",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth10IBScheduleC3endSivg",
+                "mangledName": "$s12IOTBluetooth10IBScheduleC3endSivg",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth10IBScheduleC3endSivs",
+                "mangledName": "$s12IOTBluetooth10IBScheduleC3endSivs",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth10IBScheduleC3endSivM",
+                "mangledName": "$s12IOTBluetooth10IBScheduleC3endSivM",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "content",
+            "printedName": "content",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Optional",
+                "printedName": "Swift.String?",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "usr": "s:Sq"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:12IOTBluetooth10IBScheduleC7contentSSSgvp",
+            "mangledName": "$s12IOTBluetooth10IBScheduleC7contentSSSgvp",
+            "moduleName": "IOTBluetooth",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Optional",
+                    "printedName": "Swift.String?",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "String",
+                        "printedName": "Swift.String",
+                        "usr": "s:SS"
+                      }
+                    ],
+                    "usr": "s:Sq"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth10IBScheduleC7contentSSSgvg",
+                "mangledName": "$s12IOTBluetooth10IBScheduleC7contentSSSgvg",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Optional",
+                    "printedName": "Swift.String?",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "String",
+                        "printedName": "Swift.String",
+                        "usr": "s:SS"
+                      }
+                    ],
+                    "usr": "s:Sq"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth10IBScheduleC7contentSSSgvs",
+                "mangledName": "$s12IOTBluetooth10IBScheduleC7contentSSSgvs",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth10IBScheduleC7contentSSSgvM",
+                "mangledName": "$s12IOTBluetooth10IBScheduleC7contentSSSgvM",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Constructor",
+            "name": "init",
+            "printedName": "init()",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "IBSchedule",
+                "printedName": "IOTBluetooth.IBSchedule",
+                "usr": "s:12IOTBluetooth10IBScheduleC"
+              }
+            ],
+            "declKind": "Constructor",
+            "usr": "s:12IOTBluetooth10IBScheduleCACycfc",
+            "mangledName": "$s12IOTBluetooth10IBScheduleCACycfc",
+            "moduleName": "IOTBluetooth",
+            "declAttributes": [
+              "AccessControl"
+            ],
+            "init_kind": "Designated"
+          }
+        ],
+        "declKind": "Class",
+        "usr": "s:12IOTBluetooth10IBScheduleC",
+        "mangledName": "$s12IOTBluetooth10IBScheduleC",
+        "moduleName": "IOTBluetooth",
+        "declAttributes": [
+          "AccessControl",
+          "RawDocComment"
+        ],
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "IOTBluetooth",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "IOTBluetooth",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "IBHistorySleepItem",
+        "printedName": "IBHistorySleepItem",
+        "children": [
+          {
+            "kind": "Var",
+            "name": "sleepId",
+            "printedName": "sleepId",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:12IOTBluetooth18IBHistorySleepItemC7sleepIdSivp",
+            "mangledName": "$s12IOTBluetooth18IBHistorySleepItemC7sleepIdSivp",
+            "moduleName": "IOTBluetooth",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth18IBHistorySleepItemC7sleepIdSivg",
+                "mangledName": "$s12IOTBluetooth18IBHistorySleepItemC7sleepIdSivg",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth18IBHistorySleepItemC7sleepIdSivs",
+                "mangledName": "$s12IOTBluetooth18IBHistorySleepItemC7sleepIdSivs",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth18IBHistorySleepItemC7sleepIdSivM",
+                "mangledName": "$s12IOTBluetooth18IBHistorySleepItemC7sleepIdSivM",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "type",
+            "printedName": "type",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:12IOTBluetooth18IBHistorySleepItemC4typeSivp",
+            "mangledName": "$s12IOTBluetooth18IBHistorySleepItemC4typeSivp",
+            "moduleName": "IOTBluetooth",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth18IBHistorySleepItemC4typeSivg",
+                "mangledName": "$s12IOTBluetooth18IBHistorySleepItemC4typeSivg",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth18IBHistorySleepItemC4typeSivs",
+                "mangledName": "$s12IOTBluetooth18IBHistorySleepItemC4typeSivs",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:12IOTBluetooth18IBHistorySleepItemC4typeSivM",
+                "mangledName": "$s12IOTBluetooth18IBHistorySleepItemC4typeSivM",
+                "moduleName": "IOTBluetooth",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "startTime",
+            "printedName": "startTime",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:12IOTBluetooth18IBHistorySleepItemC9startTimeSivp",
+            "mangledName": "$s12IOTBluetooth18IBHistorySleepItemC9startTimeSivp",
             "moduleName": "IOTBluetooth",
             "declAttributes": [
               "HasInitialValue",
         "declAttributes": [
           "AccessControl",
           "RawDocComment"
+        ],
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
         ]
       },
       {
         "declAttributes": [
           "AccessControl",
           "RawDocComment"
+        ],
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
         ]
       },
       {
         "declAttributes": [
           "AccessControl",
           "RawDocComment"
+        ],
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
         ]
       },
       {
         "declAttributes": [
           "AccessControl",
           "RawDocComment"
+        ],
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
         ]
       },
       {
             ],
             "init_kind": "Designated"
           },
-          {
-            "kind": "Function",
-            "name": "encode",
-            "printedName": "encode(to:)",
-            "children": [
-              {
-                "kind": "TypeNominal",
-                "name": "Void",
-                "printedName": "()"
-              },
-              {
-                "kind": "TypeNominal",
-                "name": "Encoder",
-                "printedName": "Swift.Encoder",
-                "usr": "s:s7EncoderP"
-              }
-            ],
-            "declKind": "Func",
-            "usr": "s:12IOTBluetooth7IBClockC6encode2toys7Encoder_p_tKF",
-            "mangledName": "$s12IOTBluetooth7IBClockC6encode2toys7Encoder_p_tKF",
-            "moduleName": "IOTBluetooth",
-            "implicit": true,
-            "throwing": true,
-            "funcSelfKind": "NonMutating"
-          },
           {
             "kind": "Constructor",
             "name": "init",
               {
                 "kind": "TypeNominal",
                 "name": "Decoder",
-                "printedName": "Swift.Decoder",
+                "printedName": "any Swift.Decoder",
                 "usr": "s:s7DecoderP"
               }
             ],
             ],
             "throwing": true,
             "init_kind": "Designated"
+          },
+          {
+            "kind": "Function",
+            "name": "encode",
+            "printedName": "encode(to:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Encoder",
+                "printedName": "any Swift.Encoder",
+                "usr": "s:s7EncoderP"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:12IOTBluetooth7IBClockC6encode2toys7Encoder_p_tKF",
+            "mangledName": "$s12IOTBluetooth7IBClockC6encode2toys7Encoder_p_tKF",
+            "moduleName": "IOTBluetooth",
+            "implicit": true,
+            "throwing": true,
+            "funcSelfKind": "NonMutating"
           }
         ],
         "declKind": "Class",
           "RawDocComment"
         ],
         "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
           {
             "kind": "Conformance",
             "name": "Decodable",
               {
                 "kind": "TypeNominal",
                 "name": "Decoder",
-                "printedName": "Swift.Decoder",
+                "printedName": "any Swift.Decoder",
                 "usr": "s:s7DecoderP"
               }
             ],
               {
                 "kind": "TypeNominal",
                 "name": "Encoder",
-                "printedName": "Swift.Encoder",
+                "printedName": "any Swift.Encoder",
                 "usr": "s:s7EncoderP"
               }
             ],
           "RawDocComment"
         ],
         "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
           {
             "kind": "Conformance",
             "name": "Decodable",
           "AccessControl",
           "RawDocComment"
         ],
-        "hasMissingDesignatedInitializers": true
+        "hasMissingDesignatedInitializers": true,
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
+        ]
       },
       {
         "kind": "TypeDecl",
               "RawDocComment"
             ]
           },
+          {
+            "kind": "Constructor",
+            "name": "init",
+            "printedName": "init(rawValue:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Optional",
+                "printedName": "IOTBluetooth.IBHeartRateFrequency?",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "IBHeartRateFrequency",
+                    "printedName": "IOTBluetooth.IBHeartRateFrequency",
+                    "usr": "s:12IOTBluetooth20IBHeartRateFrequencyO"
+                  }
+                ],
+                "usr": "s:Sq"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              }
+            ],
+            "declKind": "Constructor",
+            "usr": "s:12IOTBluetooth20IBHeartRateFrequencyO8rawValueACSgSi_tcfc",
+            "mangledName": "$s12IOTBluetooth20IBHeartRateFrequencyO8rawValueACSgSi_tcfc",
+            "moduleName": "IOTBluetooth",
+            "implicit": true,
+            "init_kind": "Designated"
+          },
           {
             "kind": "Var",
             "name": "rawValue",
                 "accessorKind": "get"
               }
             ]
-          },
-          {
-            "kind": "Constructor",
-            "name": "init",
-            "printedName": "init(rawValue:)",
-            "children": [
-              {
-                "kind": "TypeNominal",
-                "name": "Optional",
-                "printedName": "IOTBluetooth.IBHeartRateFrequency?",
-                "children": [
-                  {
-                    "kind": "TypeNominal",
-                    "name": "IBHeartRateFrequency",
-                    "printedName": "IOTBluetooth.IBHeartRateFrequency",
-                    "usr": "s:12IOTBluetooth20IBHeartRateFrequencyO"
-                  }
-                ],
-                "usr": "s:Sq"
-              },
-              {
-                "kind": "TypeNominal",
-                "name": "Int",
-                "printedName": "Swift.Int",
-                "usr": "s:Si"
-              }
-            ],
-            "declKind": "Constructor",
-            "usr": "s:12IOTBluetooth20IBHeartRateFrequencyO8rawValueACSgSi_tcfc",
-            "mangledName": "$s12IOTBluetooth20IBHeartRateFrequencyO8rawValueACSgSi_tcfc",
-            "moduleName": "IOTBluetooth",
-            "implicit": true,
-            "init_kind": "Designated"
           }
         ],
         "declKind": "Enum",
         ],
         "enumRawTypeName": "Int",
         "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
           {
             "kind": "Conformance",
             "name": "Equatable",
             ],
             "init_kind": "Designated"
           },
-          {
-            "kind": "Function",
-            "name": "encode",
-            "printedName": "encode(to:)",
-            "children": [
-              {
-                "kind": "TypeNominal",
-                "name": "Void",
-                "printedName": "()"
-              },
-              {
-                "kind": "TypeNominal",
-                "name": "Encoder",
-                "printedName": "Swift.Encoder",
-                "usr": "s:s7EncoderP"
-              }
-            ],
-            "declKind": "Func",
-            "usr": "s:12IOTBluetooth9IBWeatherC6encode2toys7Encoder_p_tKF",
-            "mangledName": "$s12IOTBluetooth9IBWeatherC6encode2toys7Encoder_p_tKF",
-            "moduleName": "IOTBluetooth",
-            "implicit": true,
-            "throwing": true,
-            "funcSelfKind": "NonMutating"
-          },
           {
             "kind": "Constructor",
             "name": "init",
               {
                 "kind": "TypeNominal",
                 "name": "Decoder",
-                "printedName": "Swift.Decoder",
+                "printedName": "any Swift.Decoder",
                 "usr": "s:s7DecoderP"
               }
             ],
             ],
             "throwing": true,
             "init_kind": "Designated"
+          },
+          {
+            "kind": "Function",
+            "name": "encode",
+            "printedName": "encode(to:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Encoder",
+                "printedName": "any Swift.Encoder",
+                "usr": "s:s7EncoderP"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:12IOTBluetooth9IBWeatherC6encode2toys7Encoder_p_tKF",
+            "mangledName": "$s12IOTBluetooth9IBWeatherC6encode2toys7Encoder_p_tKF",
+            "moduleName": "IOTBluetooth",
+            "implicit": true,
+            "throwing": true,
+            "funcSelfKind": "NonMutating"
           }
         ],
         "declKind": "Class",
           "RawDocComment"
         ],
         "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
           {
             "kind": "Conformance",
             "name": "Decodable",
               {
                 "kind": "TypeNominal",
                 "name": "Decoder",
-                "printedName": "Swift.Decoder",
+                "printedName": "any Swift.Decoder",
                 "usr": "s:s7DecoderP"
               }
             ],
               {
                 "kind": "TypeNominal",
                 "name": "Encoder",
-                "printedName": "Swift.Encoder",
+                "printedName": "any Swift.Encoder",
                 "usr": "s:s7EncoderP"
               }
             ],
           "RawDocComment"
         ],
         "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
           {
             "kind": "Conformance",
             "name": "Decodable",
               {
                 "kind": "TypeNominal",
                 "name": "Decoder",
-                "printedName": "Swift.Decoder",
+                "printedName": "any Swift.Decoder",
                 "usr": "s:s7DecoderP"
               }
             ],
               {
                 "kind": "TypeNominal",
                 "name": "Encoder",
-                "printedName": "Swift.Encoder",
+                "printedName": "any Swift.Encoder",
                 "usr": "s:s7EncoderP"
               }
             ],
           "RawDocComment"
         ],
         "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
           {
             "kind": "Conformance",
             "name": "Decodable",
               {
                 "kind": "TypeNominal",
                 "name": "Decoder",
-                "printedName": "Swift.Decoder",
+                "printedName": "any Swift.Decoder",
                 "usr": "s:s7DecoderP"
               }
             ],
               {
                 "kind": "TypeNominal",
                 "name": "Encoder",
-                "printedName": "Swift.Encoder",
+                "printedName": "any Swift.Encoder",
                 "usr": "s:s7EncoderP"
               }
             ],
           "RawDocComment"
         ],
         "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
           {
             "kind": "Conformance",
             "name": "Decodable",
               {
                 "kind": "TypeNominal",
                 "name": "Decoder",
-                "printedName": "Swift.Decoder",
+                "printedName": "any Swift.Decoder",
                 "usr": "s:s7DecoderP"
               }
             ],
               {
                 "kind": "TypeNominal",
                 "name": "Encoder",
-                "printedName": "Swift.Encoder",
+                "printedName": "any Swift.Encoder",
                 "usr": "s:s7EncoderP"
               }
             ],
           "RawDocComment"
         ],
         "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
           {
             "kind": "Conformance",
             "name": "Decodable",
         "name": "IBOtaFile",
         "printedName": "IBOtaFile",
         "children": [
-          {
-            "kind": "Function",
-            "name": "encode",
-            "printedName": "encode(to:)",
-            "children": [
-              {
-                "kind": "TypeNominal",
-                "name": "Void",
-                "printedName": "()"
-              },
-              {
-                "kind": "TypeNominal",
-                "name": "Encoder",
-                "printedName": "Swift.Encoder",
-                "usr": "s:s7EncoderP"
-              }
-            ],
-            "declKind": "Func",
-            "usr": "s:12IOTBluetooth9IBOtaFileC6encode2toys7Encoder_p_tKF",
-            "mangledName": "$s12IOTBluetooth9IBOtaFileC6encode2toys7Encoder_p_tKF",
-            "moduleName": "IOTBluetooth",
-            "implicit": true,
-            "throwing": true,
-            "funcSelfKind": "NonMutating"
-          },
           {
             "kind": "Constructor",
             "name": "init",
               {
                 "kind": "TypeNominal",
                 "name": "Decoder",
-                "printedName": "Swift.Decoder",
+                "printedName": "any Swift.Decoder",
                 "usr": "s:s7DecoderP"
               }
             ],
             ],
             "throwing": true,
             "init_kind": "Designated"
+          },
+          {
+            "kind": "Function",
+            "name": "encode",
+            "printedName": "encode(to:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Encoder",
+                "printedName": "any Swift.Encoder",
+                "usr": "s:s7EncoderP"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:12IOTBluetooth9IBOtaFileC6encode2toys7Encoder_p_tKF",
+            "mangledName": "$s12IOTBluetooth9IBOtaFileC6encode2toys7Encoder_p_tKF",
+            "moduleName": "IOTBluetooth",
+            "implicit": true,
+            "throwing": true,
+            "funcSelfKind": "NonMutating"
           }
         ],
         "declKind": "Class",
         ],
         "hasMissingDesignatedInitializers": true,
         "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
           {
             "kind": "Conformance",
             "name": "Decodable",
           "AccessControl",
           "RawDocComment"
         ],
-        "hasMissingDesignatedInitializers": true
+        "hasMissingDesignatedInitializers": true,
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
+        ]
       },
       {
         "kind": "TypeDecl",
         "declAttributes": [
           "AccessControl",
           "RawDocComment"
+        ],
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
         ]
       },
       {
         "declAttributes": [
           "AccessControl"
         ],
-        "hasMissingDesignatedInitializers": true
+        "hasMissingDesignatedInitializers": true,
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
+        ]
       },
       {
         "kind": "Import",
         "declAttributes": [
           "AccessControl",
           "RawDocComment"
+        ],
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
         ]
       },
       {
         "moduleName": "IOTBluetooth",
         "declAttributes": [
           "AccessControl"
+        ],
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
         ]
       },
       {
         "declAttributes": [
           "AccessControl",
           "RawDocComment"
+        ],
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
         ]
       },
       {
         "declAttributes": [
           "AccessControl",
           "RawDocComment"
+        ],
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
         ]
       },
       {
           "AccessControl",
           "RawDocComment"
         ],
-        "hasMissingDesignatedInitializers": true
+        "hasMissingDesignatedInitializers": true,
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
+        ]
       },
       {
         "kind": "TypeDecl",
               "RawDocComment"
             ]
           },
+          {
+            "kind": "Constructor",
+            "name": "init",
+            "printedName": "init(rawValue:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Optional",
+                "printedName": "IOTBluetooth.IBBloodOxygenFrequency?",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "IBBloodOxygenFrequency",
+                    "printedName": "IOTBluetooth.IBBloodOxygenFrequency",
+                    "usr": "s:12IOTBluetooth22IBBloodOxygenFrequencyO"
+                  }
+                ],
+                "usr": "s:Sq"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              }
+            ],
+            "declKind": "Constructor",
+            "usr": "s:12IOTBluetooth22IBBloodOxygenFrequencyO8rawValueACSgSi_tcfc",
+            "mangledName": "$s12IOTBluetooth22IBBloodOxygenFrequencyO8rawValueACSgSi_tcfc",
+            "moduleName": "IOTBluetooth",
+            "implicit": true,
+            "init_kind": "Designated"
+          },
           {
             "kind": "Var",
             "name": "rawValue",
                 "accessorKind": "get"
               }
             ]
-          },
-          {
-            "kind": "Constructor",
-            "name": "init",
-            "printedName": "init(rawValue:)",
-            "children": [
-              {
-                "kind": "TypeNominal",
-                "name": "Optional",
-                "printedName": "IOTBluetooth.IBBloodOxygenFrequency?",
-                "children": [
-                  {
-                    "kind": "TypeNominal",
-                    "name": "IBBloodOxygenFrequency",
-                    "printedName": "IOTBluetooth.IBBloodOxygenFrequency",
-                    "usr": "s:12IOTBluetooth22IBBloodOxygenFrequencyO"
-                  }
-                ],
-                "usr": "s:Sq"
-              },
-              {
-                "kind": "TypeNominal",
-                "name": "Int",
-                "printedName": "Swift.Int",
-                "usr": "s:Si"
-              }
-            ],
-            "declKind": "Constructor",
-            "usr": "s:12IOTBluetooth22IBBloodOxygenFrequencyO8rawValueACSgSi_tcfc",
-            "mangledName": "$s12IOTBluetooth22IBBloodOxygenFrequencyO8rawValueACSgSi_tcfc",
-            "moduleName": "IOTBluetooth",
-            "implicit": true,
-            "init_kind": "Designated"
           }
         ],
         "declKind": "Enum",
         ],
         "enumRawTypeName": "Int",
         "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
           {
             "kind": "Conformance",
             "name": "Equatable",
         "declAttributes": [
           "AccessControl"
         ],
-        "hasMissingDesignatedInitializers": true
+        "hasMissingDesignatedInitializers": true,
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
+        ]
       },
       {
         "kind": "Import",
         "declAttributes": [
           "AccessControl",
           "RawDocComment"
+        ],
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
         ]
       },
       {
               "RawDocComment"
             ]
           },
+          {
+            "kind": "Constructor",
+            "name": "init",
+            "printedName": "init(rawValue:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Optional",
+                "printedName": "IOTBluetooth.IBLanguage?",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "IBLanguage",
+                    "printedName": "IOTBluetooth.IBLanguage",
+                    "usr": "s:12IOTBluetooth10IBLanguageO"
+                  }
+                ],
+                "usr": "s:Sq"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              }
+            ],
+            "declKind": "Constructor",
+            "usr": "s:12IOTBluetooth10IBLanguageO8rawValueACSgSi_tcfc",
+            "mangledName": "$s12IOTBluetooth10IBLanguageO8rawValueACSgSi_tcfc",
+            "moduleName": "IOTBluetooth",
+            "implicit": true,
+            "init_kind": "Designated"
+          },
           {
             "kind": "Var",
             "name": "rawValue",
                 "accessorKind": "get"
               }
             ]
-          },
-          {
-            "kind": "Constructor",
-            "name": "init",
-            "printedName": "init(rawValue:)",
-            "children": [
-              {
-                "kind": "TypeNominal",
-                "name": "Optional",
-                "printedName": "IOTBluetooth.IBLanguage?",
-                "children": [
-                  {
-                    "kind": "TypeNominal",
-                    "name": "IBLanguage",
-                    "printedName": "IOTBluetooth.IBLanguage",
-                    "usr": "s:12IOTBluetooth10IBLanguageO"
-                  }
-                ],
-                "usr": "s:Sq"
-              },
-              {
-                "kind": "TypeNominal",
-                "name": "Int",
-                "printedName": "Swift.Int",
-                "usr": "s:Si"
-              }
-            ],
-            "declKind": "Constructor",
-            "usr": "s:12IOTBluetooth10IBLanguageO8rawValueACSgSi_tcfc",
-            "mangledName": "$s12IOTBluetooth10IBLanguageO8rawValueACSgSi_tcfc",
-            "moduleName": "IOTBluetooth",
-            "implicit": true,
-            "init_kind": "Designated"
           }
         ],
         "declKind": "Enum",
         ],
         "enumRawTypeName": "Int",
         "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
           {
             "kind": "Conformance",
             "name": "Equatable",
         "genericSig": "<τ_0_0>",
         "sugared_genericSig": "<Element>",
         "declAttributes": [
+          "EagerMove",
           "Frozen"
         ],
         "isExternal": true,
             "usr": "s:s24_DestructorSafeContainerP",
             "mangledName": "$ss24_DestructorSafeContainerP"
           },
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
           {
             "kind": "Conformance",
             "name": "_ArrayProtocol",
         "mangledName": "$sSS",
         "moduleName": "Swift",
         "declAttributes": [
+          "EagerMove",
           "Frozen"
         ],
         "isExternal": true,
         "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
           {
             "kind": "Conformance",
             "name": "Decodable",
         ],
         "isExternal": true,
         "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Decodable",
+            "printedName": "Decodable",
+            "usr": "s:Se",
+            "mangledName": "$sSe"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Encodable",
+            "printedName": "Encodable",
+            "usr": "s:SE",
+            "mangledName": "$sSE"
+          },
+          {
+            "kind": "Conformance",
+            "name": "CustomReflectable",
+            "printedName": "CustomReflectable",
+            "usr": "s:s17CustomReflectableP",
+            "mangledName": "$ss17CustomReflectableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "_CustomPlaygroundQuickLookable",
+            "printedName": "_CustomPlaygroundQuickLookable",
+            "usr": "s:s30_CustomPlaygroundQuickLookableP",
+            "mangledName": "$ss30_CustomPlaygroundQuickLookableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "_CVarArgPassedAsDouble",
+            "printedName": "_CVarArgPassedAsDouble",
+            "usr": "s:s22_CVarArgPassedAsDoubleP",
+            "mangledName": "$ss22_CVarArgPassedAsDoubleP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "_CVarArgAligned",
+            "printedName": "_CVarArgAligned",
+            "usr": "s:s15_CVarArgAlignedP",
+            "mangledName": "$ss15_CVarArgAlignedP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "CVarArg",
+            "printedName": "CVarArg",
+            "usr": "s:s7CVarArgP",
+            "mangledName": "$ss7CVarArgP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "LosslessStringConvertible",
+            "printedName": "LosslessStringConvertible",
+            "usr": "s:s25LosslessStringConvertibleP",
+            "mangledName": "$ss25LosslessStringConvertibleP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "CustomStringConvertible",
+            "printedName": "CustomStringConvertible",
+            "usr": "s:s23CustomStringConvertibleP",
+            "mangledName": "$ss23CustomStringConvertibleP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "CustomDebugStringConvertible",
+            "printedName": "CustomDebugStringConvertible",
+            "usr": "s:s28CustomDebugStringConvertibleP",
+            "mangledName": "$ss28CustomDebugStringConvertibleP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "TextOutputStreamable",
+            "printedName": "TextOutputStreamable",
+            "usr": "s:s20TextOutputStreamableP",
+            "mangledName": "$ss20TextOutputStreamableP"
+          },
           {
             "kind": "Conformance",
             "name": "BinaryFloatingPoint",
             "usr": "s:s18AdditiveArithmeticP",
             "mangledName": "$ss18AdditiveArithmeticP"
           },
-          {
-            "kind": "Conformance",
-            "name": "Decodable",
-            "printedName": "Decodable",
-            "usr": "s:Se",
-            "mangledName": "$sSe"
-          },
-          {
-            "kind": "Conformance",
-            "name": "Encodable",
-            "printedName": "Encodable",
-            "usr": "s:SE",
-            "mangledName": "$sSE"
-          },
-          {
-            "kind": "Conformance",
-            "name": "CustomReflectable",
-            "printedName": "CustomReflectable",
-            "usr": "s:s17CustomReflectableP",
-            "mangledName": "$ss17CustomReflectableP"
-          },
-          {
-            "kind": "Conformance",
-            "name": "_CustomPlaygroundQuickLookable",
-            "printedName": "_CustomPlaygroundQuickLookable",
-            "usr": "s:s30_CustomPlaygroundQuickLookableP",
-            "mangledName": "$ss30_CustomPlaygroundQuickLookableP"
-          },
-          {
-            "kind": "Conformance",
-            "name": "_CVarArgPassedAsDouble",
-            "printedName": "_CVarArgPassedAsDouble",
-            "usr": "s:s22_CVarArgPassedAsDoubleP",
-            "mangledName": "$ss22_CVarArgPassedAsDoubleP"
-          },
-          {
-            "kind": "Conformance",
-            "name": "_CVarArgAligned",
-            "printedName": "_CVarArgAligned",
-            "usr": "s:s15_CVarArgAlignedP",
-            "mangledName": "$ss15_CVarArgAlignedP"
-          },
-          {
-            "kind": "Conformance",
-            "name": "CVarArg",
-            "printedName": "CVarArg",
-            "usr": "s:s7CVarArgP",
-            "mangledName": "$ss7CVarArgP"
-          },
-          {
-            "kind": "Conformance",
-            "name": "LosslessStringConvertible",
-            "printedName": "LosslessStringConvertible",
-            "usr": "s:s25LosslessStringConvertibleP",
-            "mangledName": "$ss25LosslessStringConvertibleP"
-          },
-          {
-            "kind": "Conformance",
-            "name": "CustomStringConvertible",
-            "printedName": "CustomStringConvertible",
-            "usr": "s:s23CustomStringConvertibleP",
-            "mangledName": "$ss23CustomStringConvertibleP"
-          },
-          {
-            "kind": "Conformance",
-            "name": "CustomDebugStringConvertible",
-            "printedName": "CustomDebugStringConvertible",
-            "usr": "s:s28CustomDebugStringConvertibleP",
-            "mangledName": "$ss28CustomDebugStringConvertibleP"
-          },
-          {
-            "kind": "Conformance",
-            "name": "TextOutputStreamable",
-            "printedName": "TextOutputStreamable",
-            "usr": "s:s20TextOutputStreamableP",
-            "mangledName": "$ss20TextOutputStreamableP"
-          },
           {
             "kind": "Conformance",
             "name": "_ExpressibleByBuiltinIntegerLiteral",
             "usr": "s:s10SIMDScalarP",
             "mangledName": "$ss10SIMDScalarP"
           },
+          {
+            "kind": "Conformance",
+            "name": "BitwiseCopyable",
+            "printedName": "BitwiseCopyable",
+            "usr": "s:s15BitwiseCopyableP",
+            "mangledName": "$ss15BitwiseCopyableP"
+          },
           {
             "kind": "Conformance",
             "name": "_FormatSpecifiable",
             "usr": "s:SL",
             "mangledName": "$sSL"
           },
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
           {
             "kind": "Conformance",
             "name": "Decodable",
             "usr": "s:s10SIMDScalarP",
             "mangledName": "$ss10SIMDScalarP"
           },
+          {
+            "kind": "Conformance",
+            "name": "BitwiseCopyable",
+            "printedName": "BitwiseCopyable",
+            "usr": "s:s15BitwiseCopyableP",
+            "mangledName": "$ss15BitwiseCopyableP"
+          },
           {
             "kind": "Conformance",
             "name": "_FormatSpecifiable",
         "sugared_genericSig": "<Self : Swift.CustomStringConvertible, Self : Swift.Hashable, Self : Swift.Numeric, Self : Swift.Strideable, Self.Magnitude : Swift.BinaryInteger, Self.Magnitude == Self.Magnitude.Magnitude, Self.Words : Swift.RandomAccessCollection, Self.Words.Element == Swift.UInt, Self.Words.Index == Swift.Int>",
         "isExternal": true,
         "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
           {
             "kind": "Conformance",
             "name": "Strideable",
             "usr": "s:ST",
             "mangledName": "$sST"
           },
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
           {
             "kind": "Conformance",
             "name": "ReferenceConvertible",
             "usr": "s:SL",
             "mangledName": "$sSL"
           },
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
           {
             "kind": "Conformance",
             "name": "Decodable",
             "usr": "s:s10SIMDScalarP",
             "mangledName": "$ss10SIMDScalarP"
           },
+          {
+            "kind": "Conformance",
+            "name": "BitwiseCopyable",
+            "printedName": "BitwiseCopyable",
+            "usr": "s:s15BitwiseCopyableP",
+            "mangledName": "$ss15BitwiseCopyableP"
+          },
           {
             "kind": "Conformance",
             "name": "_FormatSpecifiable",
             "usr": "s:s8SendableP",
             "mangledName": "$ss8SendableP"
           },
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
           {
             "kind": "Conformance",
             "name": "IBPeripheralUUID",
             "usr": "s:12IOTBluetooth16IBPeripheralUUIDP",
             "mangledName": "$s12IOTBluetooth16IBPeripheralUUIDP"
           },
-          {
-            "kind": "Conformance",
-            "name": "Comparable",
-            "printedName": "Comparable",
-            "usr": "s:SL",
-            "mangledName": "$sSL"
-          },
           {
             "kind": "Conformance",
             "name": "ReferenceConvertible",
             "printedName": "Encodable",
             "usr": "s:SE",
             "mangledName": "$sSE"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Comparable",
+            "printedName": "Comparable",
+            "usr": "s:SL",
+            "mangledName": "$sSL"
           }
         ]
       }
   },
   "ConstValues": [
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBResponse.swift",
-      "kind": "IntegerLiteral",
-      "offset": 272,
-      "length": 2,
-      "value": "18"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBResponse.swift",
-      "kind": "IntegerLiteral",
-      "offset": 301,
-      "length": 2,
-      "value": "17"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBResponse.swift",
-      "kind": "IntegerLiteral",
-      "offset": 319,
-      "length": 1,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBResponse.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBResponse.swift",
       "kind": "StringLiteral",
       "offset": 551,
       "length": 14,
       "value": "\"操作成功\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBResponse.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBResponse.swift",
       "kind": "BooleanLiteral",
       "offset": 641,
       "length": 5,
       "value": "false"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBResponse.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBResponse.swift",
       "kind": "Array",
       "offset": 747,
       "length": 2,
       "value": "[]"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBResponse.swift",
-      "kind": "StringLiteral",
-      "offset": 966,
-      "length": 81,
-      "value": "\"IBResponse(code: \""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBResponse.swift",
-      "kind": "StringLiteral",
-      "offset": 1000,
-      "length": 1,
-      "value": "\",isSuccess: \""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBResponse.swift",
-      "kind": "StringLiteral",
-      "offset": 1024,
-      "length": 1,
-      "value": "\", massage:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBResponse.swift",
-      "kind": "StringLiteral",
-      "offset": 1044,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPush.swift",
+      "kind": "IntegerLiteral",
+      "offset": 247,
       "length": 1,
-      "value": "\", \""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBResponse.swift",
-      "kind": "StringLiteral",
-      "offset": 1099,
-      "length": 16,
-      "value": "\"value:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBResponse.swift",
-      "kind": "StringLiteral",
-      "offset": 1111,
-      "length": 3,
-      "value": "\")\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBResponse.swift",
-      "kind": "StringLiteral",
-      "offset": 1164,
-      "length": 19,
-      "value": "\"items:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBResponse.swift",
-      "kind": "StringLiteral",
-      "offset": 1179,
-      "length": 3,
-      "value": "\")\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryStand.swift",
-      "kind": "Array",
-      "offset": 203,
-      "length": 2,
-      "value": "[]"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryStand.swift",
-      "kind": "Array",
-      "offset": 287,
-      "length": 2,
-      "value": "[]"
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryStand.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPush.swift",
       "kind": "IntegerLiteral",
-      "offset": 320,
+      "offset": 833,
       "length": 1,
       "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryStand.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPush.swift",
       "kind": "IntegerLiteral",
-      "offset": 343,
+      "offset": 850,
       "length": 1,
-      "value": "4"
+      "value": "1"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryStand.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPush.swift",
       "kind": "IntegerLiteral",
-      "offset": 379,
+      "offset": 869,
       "length": 1,
-      "value": "3"
+      "value": "2"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryStand.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPush.swift",
       "kind": "IntegerLiteral",
-      "offset": 472,
+      "offset": 889,
       "length": 1,
       "value": "3"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryStand.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPush.swift",
       "kind": "IntegerLiteral",
-      "offset": 683,
+      "offset": 905,
       "length": 1,
-      "value": "0"
+      "value": "4"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBVibrateSound.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPush.swift",
       "kind": "IntegerLiteral",
-      "offset": 277,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBVibrateSound.swift",
-      "kind": "StringLiteral",
-      "offset": 753,
-      "length": 142,
-      "value": "\"IBVibrateConfig(type: \""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBVibrateSound.swift",
-      "kind": "StringLiteral",
-      "offset": 783,
-      "length": 1,
-      "value": "\",systemValue: \""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBVibrateSound.swift",
-      "kind": "StringLiteral",
-      "offset": 811,
-      "length": 1,
-      "value": "\", ringsValue:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBVibrateSound.swift",
-      "kind": "StringLiteral",
-      "offset": 837,
-      "length": 1,
-      "value": "\", ringsState:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBVibrateSound.swift",
-      "kind": "StringLiteral",
-      "offset": 863,
-      "length": 1,
-      "value": "\", vibrateState:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBVibrateSound.swift",
-      "kind": "StringLiteral",
-      "offset": 893,
+      "offset": 927,
       "length": 1,
-      "value": "\")\""
+      "value": "5"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBVibrateSound.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPush.swift",
       "kind": "IntegerLiteral",
-      "offset": 1024,
+      "offset": 948,
       "length": 1,
-      "value": "0"
+      "value": "6"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBVibrateSound.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPush.swift",
       "kind": "IntegerLiteral",
-      "offset": 1096,
+      "offset": 970,
       "length": 1,
-      "value": "0"
+      "value": "7"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBVibrateSound.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPush.swift",
       "kind": "IntegerLiteral",
-      "offset": 1168,
+      "offset": 992,
       "length": 1,
-      "value": "0"
+      "value": "8"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBVibrateSound.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPush.swift",
       "kind": "IntegerLiteral",
-      "offset": 1247,
+      "offset": 1015,
       "length": 1,
-      "value": "0"
+      "value": "9"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBVibrateSound.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPush.swift",
       "kind": "IntegerLiteral",
-      "offset": 1355,
-      "length": 1,
-      "value": "0"
+      "offset": 1038,
+      "length": 2,
+      "value": "10"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBVibrateSound.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPush.swift",
       "kind": "IntegerLiteral",
-      "offset": 1441,
-      "length": 1,
-      "value": "0"
+      "offset": 1061,
+      "length": 2,
+      "value": "11"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBVibrateSound.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPush.swift",
       "kind": "IntegerLiteral",
-      "offset": 1474,
-      "length": 1,
-      "value": "1"
+      "offset": 1080,
+      "length": 2,
+      "value": "12"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBVibrateSound.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPush.swift",
       "kind": "IntegerLiteral",
-      "offset": 1507,
-      "length": 1,
-      "value": "2"
+      "offset": 1099,
+      "length": 2,
+      "value": "13"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBVibrateSound.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPush.swift",
       "kind": "IntegerLiteral",
-      "offset": 1540,
-      "length": 1,
-      "value": "3"
+      "offset": 1119,
+      "length": 2,
+      "value": "14"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBVibrateSound.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPush.swift",
       "kind": "IntegerLiteral",
-      "offset": 1575,
-      "length": 1,
-      "value": "4"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBVibrateSound.swift",
-      "kind": "StringLiteral",
-      "offset": 1639,
-      "length": 153,
-      "value": "\"IBVibrateSound(systemValue: \""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBVibrateSound.swift",
-      "kind": "StringLiteral",
-      "offset": 1682,
-      "length": 1,
-      "value": "\", ringsValue:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBVibrateSound.swift",
-      "kind": "StringLiteral",
-      "offset": 1708,
-      "length": 1,
-      "value": "\", mediaValue:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBVibrateSound.swift",
-      "kind": "StringLiteral",
-      "offset": 1734,
-      "length": 1,
-      "value": "\", ringsState:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBVibrateSound.swift",
-      "kind": "StringLiteral",
-      "offset": 1760,
-      "length": 1,
-      "value": "\", vibrateState:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBVibrateSound.swift",
-      "kind": "StringLiteral",
-      "offset": 1790,
-      "length": 1,
-      "value": "\")\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender+Dial.swift",
-      "kind": "StringLiteral",
-      "offset": 2195,
-      "length": 17,
-      "value": "\"已取消发送\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender+Dial.swift",
-      "kind": "StringLiteral",
-      "offset": 2775,
-      "length": 23,
-      "value": "\"\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender+Dial.swift",
-      "kind": "StringLiteral",
-      "offset": 2784,
-      "length": 1,
-      "value": "\" : \""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender+Dial.swift",
-      "kind": "StringLiteral",
-      "offset": 2797,
+      "offset": 1139,
       "length": 2,
-      "value": "\"\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender+Dial.swift",
-      "kind": "StringLiteral",
-      "offset": 3007,
-      "length": 38,
-      "value": "\"发送文件超时,发送失败!\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender+Dial.swift",
-      "kind": "StringLiteral",
-      "offset": 3248,
-      "length": 29,
-      "value": "\"文件内容发送结束...\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender+Dial.swift",
-      "kind": "StringLiteral",
-      "offset": 3791,
-      "length": 29,
-      "value": "\"发送文件校验码失败\""
+      "value": "15"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender+Dial.swift",
-      "kind": "Array",
-      "offset": 4612,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPush.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1162,
       "length": 2,
-      "value": "[]"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender+Dial.swift",
-      "kind": "StringLiteral",
-      "offset": 4992,
-      "length": 20,
-      "value": "\"读取文件失败\""
+      "value": "16"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAddressBook.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPush.swift",
       "kind": "IntegerLiteral",
-      "offset": 237,
-      "length": 1,
-      "value": "0"
+      "offset": 1182,
+      "length": 2,
+      "value": "17"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAddressBook.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryStand.swift",
       "kind": "Array",
-      "offset": 462,
+      "offset": 203,
       "length": 2,
       "value": "[]"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAddressBook.swift",
-      "kind": "StringLiteral",
-      "offset": 1203,
-      "length": 4,
-      "value": "\"[ \""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAddressBook.swift",
-      "kind": "StringLiteral",
-      "offset": 1316,
-      "length": 4,
-      "value": "\" ]\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAddressBook.swift",
-      "kind": "StringLiteral",
-      "offset": 1336,
-      "length": 80,
-      "value": "\"IBAddressBook(gender: \""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAddressBook.swift",
-      "kind": "StringLiteral",
-      "offset": 1368,
-      "length": 1,
-      "value": "\", name:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAddressBook.swift",
-      "kind": "StringLiteral",
-      "offset": 1385,
-      "length": 2,
-      "value": "\"\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAddressBook.swift",
-      "kind": "StringLiteral",
-      "offset": 1388,
-      "length": 1,
-      "value": "\", phoneNumbers:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAddressBook.swift",
-      "kind": "StringLiteral",
-      "offset": 1414,
-      "length": 1,
-      "value": "\")\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAddressBook.swift",
-      "kind": "StringLiteral",
-      "offset": 1545,
-      "length": 2,
-      "value": "\"\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAddressBook.swift",
-      "kind": "StringLiteral",
-      "offset": 1862,
-      "length": 94,
-      "value": "\"IBPhoneNumber(number: \""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAddressBook.swift",
-      "kind": "StringLiteral",
-      "offset": 1894,
-      "length": 1,
-      "value": "\", location:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAddressBook.swift",
-      "kind": "StringLiteral",
-      "offset": 1919,
-      "length": 2,
-      "value": "\"\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAddressBook.swift",
-      "kind": "StringLiteral",
-      "offset": 1922,
-      "length": 1,
-      "value": "\", `operator`:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAddressBook.swift",
-      "kind": "StringLiteral",
-      "offset": 1951,
-      "length": 2,
-      "value": "\"\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAddressBook.swift",
-      "kind": "StringLiteral",
-      "offset": 1954,
-      "length": 1,
-      "value": "\")\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 146,
-      "length": 8,
-      "value": "\"dialID\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 173,
-      "length": 8,
-      "value": "\"action\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 204,
-      "length": 12,
-      "value": "\"motionMode\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 237,
-      "length": 10,
-      "value": "\"language\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 265,
-      "length": 7,
-      "value": "\"value\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 289,
-      "length": 6,
-      "value": "\"file\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 318,
-      "length": 12,
-      "value": "\"targetStep\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 348,
-      "length": 7,
-      "value": "\"sleep\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 373,
-      "length": 7,
-      "value": "\"water\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 398,
-      "length": 7,
-      "value": "\"clock\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 427,
-      "length": 11,
-      "value": "\"heartRate\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 462,
-      "length": 13,
-      "value": "\"bloodOxygen\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 494,
-      "length": 8,
-      "value": "\"screen\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 527,
-      "length": 14,
-      "value": "\"vibrateSound\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 565,
-      "length": 13,
-      "value": "\"otherTarget\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 602,
-      "length": 13,
-      "value": "\"trainTarget\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 637,
-      "length": 11,
-      "value": "\"sendPhone\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 669,
-      "length": 10,
-      "value": "\"sendTime\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 701,
-      "length": 11,
-      "value": "\"auxiliary\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 733,
-      "length": 10,
-      "value": "\"userInfo\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 763,
-      "length": 9,
-      "value": "\"weather\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 796,
-      "length": 13,
-      "value": "\"addressBook\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 825,
-      "length": 5,
-      "value": "\"epo\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 846,
-      "length": 5,
-      "value": "\"ota\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 867,
-      "length": 5,
-      "value": "\"mp3\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 889,
-      "length": 6,
-      "value": "\"dial\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 916,
-      "length": 10,
-      "value": "\"dialFile\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 949,
-      "length": 12,
-      "value": "\"deleteFile\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 983,
-      "length": 11,
-      "value": "\"fetchFils\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 1014,
-      "length": 9,
-      "value": "\"aiValid\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 1046,
-      "length": 12,
-      "value": "\"aiResponse\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 146,
-      "length": 8,
-      "value": "\"dialID\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 173,
-      "length": 8,
-      "value": "\"action\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 204,
-      "length": 12,
-      "value": "\"motionMode\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 237,
-      "length": 10,
-      "value": "\"language\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 265,
-      "length": 7,
-      "value": "\"value\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 289,
-      "length": 6,
-      "value": "\"file\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 318,
-      "length": 12,
-      "value": "\"targetStep\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 348,
-      "length": 7,
-      "value": "\"sleep\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 373,
-      "length": 7,
-      "value": "\"water\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 398,
-      "length": 7,
-      "value": "\"clock\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 427,
-      "length": 11,
-      "value": "\"heartRate\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 462,
-      "length": 13,
-      "value": "\"bloodOxygen\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 494,
-      "length": 8,
-      "value": "\"screen\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 527,
-      "length": 14,
-      "value": "\"vibrateSound\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 565,
-      "length": 13,
-      "value": "\"otherTarget\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 602,
-      "length": 13,
-      "value": "\"trainTarget\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 637,
-      "length": 11,
-      "value": "\"sendPhone\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 669,
-      "length": 10,
-      "value": "\"sendTime\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 701,
-      "length": 11,
-      "value": "\"auxiliary\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 733,
-      "length": 10,
-      "value": "\"userInfo\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 763,
-      "length": 9,
-      "value": "\"weather\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 796,
-      "length": 13,
-      "value": "\"addressBook\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 825,
-      "length": 5,
-      "value": "\"epo\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 846,
-      "length": 5,
-      "value": "\"ota\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 867,
-      "length": 5,
-      "value": "\"mp3\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 889,
-      "length": 6,
-      "value": "\"dial\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 916,
-      "length": 10,
-      "value": "\"dialFile\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 949,
-      "length": 12,
-      "value": "\"deleteFile\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 983,
-      "length": 11,
-      "value": "\"fetchFils\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 1014,
-      "length": 9,
-      "value": "\"aiValid\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "StringLiteral",
-      "offset": 1046,
-      "length": 12,
-      "value": "\"aiResponse\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4290,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4316,
-      "length": 7,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4348,
-      "length": 4,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4290,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4316,
-      "length": 7,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4348,
-      "length": 4,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4290,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4316,
-      "length": 7,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4348,
-      "length": 4,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4425,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4455,
-      "length": 3,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4489,
-      "length": 4,
-      "value": "3"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4519,
-      "length": 6,
-      "value": "4"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4546,
-      "length": 3,
-      "value": "5"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4425,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4455,
-      "length": 3,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4489,
-      "length": 4,
-      "value": "3"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4519,
-      "length": 6,
-      "value": "4"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4546,
-      "length": 3,
-      "value": "5"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4425,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4455,
-      "length": 3,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4489,
-      "length": 4,
-      "value": "3"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4519,
-      "length": 6,
-      "value": "4"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4546,
-      "length": 3,
-      "value": "5"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4847,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4873,
-      "length": 5,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4909,
-      "length": 11,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4945,
-      "length": 5,
-      "value": "3"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4981,
-      "length": 11,
-      "value": "4"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5020,
-      "length": 7,
-      "value": "5"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5052,
-      "length": 7,
-      "value": "6"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5084,
-      "length": 5,
-      "value": "7"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5114,
-      "length": 6,
-      "value": "8"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5145,
-      "length": 6,
-      "value": "9"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5176,
-      "length": 11,
-      "value": "10"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5215,
-      "length": 5,
-      "value": "11"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5245,
-      "length": 5,
-      "value": "12"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5275,
-      "length": 9,
-      "value": "13"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5309,
-      "length": 5,
-      "value": "14"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5339,
-      "length": 7,
-      "value": "15"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4847,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4873,
-      "length": 5,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4909,
-      "length": 11,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4945,
-      "length": 5,
-      "value": "3"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4981,
-      "length": 11,
-      "value": "4"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5020,
-      "length": 7,
-      "value": "5"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5052,
-      "length": 7,
-      "value": "6"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5084,
-      "length": 5,
-      "value": "7"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5114,
-      "length": 6,
-      "value": "8"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5145,
-      "length": 6,
-      "value": "9"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5176,
-      "length": 11,
-      "value": "10"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5215,
-      "length": 5,
-      "value": "11"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5245,
-      "length": 5,
-      "value": "12"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5275,
-      "length": 9,
-      "value": "13"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5309,
-      "length": 5,
-      "value": "14"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5339,
-      "length": 7,
-      "value": "15"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4847,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4873,
-      "length": 5,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4909,
-      "length": 11,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4945,
-      "length": 5,
-      "value": "3"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4981,
-      "length": 11,
-      "value": "4"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5020,
-      "length": 7,
-      "value": "5"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5052,
-      "length": 7,
-      "value": "6"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5084,
-      "length": 5,
-      "value": "7"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5114,
-      "length": 6,
-      "value": "8"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5145,
-      "length": 6,
-      "value": "9"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5176,
-      "length": 11,
-      "value": "10"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5215,
-      "length": 5,
-      "value": "11"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5245,
-      "length": 5,
-      "value": "12"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5275,
-      "length": 9,
-      "value": "13"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5309,
-      "length": 5,
-      "value": "14"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5339,
-      "length": 7,
-      "value": "15"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOtherTarget.swift",
-      "kind": "IntegerLiteral",
-      "offset": 228,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOtherTarget.swift",
-      "kind": "IntegerLiteral",
-      "offset": 296,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOtherTarget.swift",
-      "kind": "IntegerLiteral",
-      "offset": 365,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOtherTarget.swift",
-      "kind": "IntegerLiteral",
-      "offset": 439,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOtherTarget.swift",
-      "kind": "IntegerLiteral",
-      "offset": 517,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOtherTarget.swift",
-      "kind": "IntegerLiteral",
-      "offset": 597,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOtherTarget.swift",
-      "kind": "IntegerLiteral",
-      "offset": 676,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOtherTarget.swift",
-      "kind": "IntegerLiteral",
-      "offset": 758,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOtherTarget.swift",
-      "kind": "IntegerLiteral",
-      "offset": 762,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOtherTarget.swift",
-      "kind": "IntegerLiteral",
-      "offset": 792,
-      "length": 1,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOtherTarget.swift",
-      "kind": "IntegerLiteral",
-      "offset": 820,
-      "length": 1,
-      "value": "3"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOtherTarget.swift",
-      "kind": "IntegerLiteral",
-      "offset": 850,
-      "length": 1,
-      "value": "4"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOtherTarget.swift",
-      "kind": "IntegerLiteral",
-      "offset": 883,
-      "length": 1,
-      "value": "5"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOtherTarget.swift",
-      "kind": "IntegerLiteral",
-      "offset": 918,
-      "length": 1,
-      "value": "6"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOtherTarget.swift",
-      "kind": "IntegerLiteral",
-      "offset": 952,
-      "length": 1,
-      "value": "7"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOtherTarget.swift",
-      "kind": "StringLiteral",
-      "offset": 1013,
-      "length": 176,
-      "value": "\"IBOtherTarget(calorie: \""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOtherTarget.swift",
-      "kind": "StringLiteral",
-      "offset": 1047,
-      "length": 1,
-      "value": "\", mileage:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOtherTarget.swift",
-      "kind": "StringLiteral",
-      "offset": 1067,
-      "length": 1,
-      "value": "\", stand:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOtherTarget.swift",
-      "kind": "StringLiteral",
-      "offset": 1083,
-      "length": 1,
-      "value": "\", burning:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOtherTarget.swift",
-      "kind": "StringLiteral",
-      "offset": 1103,
-      "length": 1,
-      "value": "\", ringsState:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOtherTarget.swift",
-      "kind": "StringLiteral",
-      "offset": 1129,
-      "length": 1,
-      "value": "\", vibrateState:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOtherTarget.swift",
-      "kind": "StringLiteral",
-      "offset": 1159,
-      "length": 1,
-      "value": "\", noticeState:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOtherTarget.swift",
-      "kind": "StringLiteral",
-      "offset": 1187,
-      "length": 1,
-      "value": "\")\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAbout.swift",
-      "kind": "IntegerLiteral",
-      "offset": 259,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAbout.swift",
-      "kind": "IntegerLiteral",
-      "offset": 316,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAbout.swift",
-      "kind": "IntegerLiteral",
-      "offset": 372,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAbout.swift",
-      "kind": "IntegerLiteral",
-      "offset": 430,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAbout.swift",
-      "kind": "StringLiteral",
-      "offset": 487,
-      "length": 2,
-      "value": "\"\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryDistance.swift",
-      "kind": "Array",
-      "offset": 221,
-      "length": 2,
-      "value": "[]"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryDistance.swift",
-      "kind": "Array",
-      "offset": 308,
-      "length": 2,
-      "value": "[]"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryDistance.swift",
-      "kind": "IntegerLiteral",
-      "offset": 341,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryDistance.swift",
-      "kind": "IntegerLiteral",
-      "offset": 364,
-      "length": 1,
-      "value": "8"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryDistance.swift",
-      "kind": "IntegerLiteral",
-      "offset": 400,
-      "length": 1,
-      "value": "7"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryDistance.swift",
-      "kind": "IntegerLiteral",
-      "offset": 496,
-      "length": 1,
-      "value": "3"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryDistance.swift",
-      "kind": "IntegerLiteral",
-      "offset": 540,
-      "length": 1,
-      "value": "4"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryDistance.swift",
-      "kind": "IntegerLiteral",
-      "offset": 546,
-      "length": 1,
-      "value": "7"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryDistance.swift",
-      "kind": "IntegerLiteral",
-      "offset": 762,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryDistance.swift",
-      "kind": "IntegerLiteral",
-      "offset": 811,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "Array",
-      "offset": 256,
-      "length": 2,
-      "value": "[]"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "StringLiteral",
-      "offset": 325,
-      "length": 6,
-      "value": "\"recs\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "StringLiteral",
-      "offset": 325,
-      "length": 6,
-      "value": "\"recs\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "IntegerLiteral",
-      "offset": 506,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "IntegerLiteral",
-      "offset": 890,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "IntegerLiteral",
-      "offset": 966,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1042,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1158,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1310,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1382,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1456,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1673,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "StringLiteral",
-      "offset": 2103,
-      "length": 5,
-      "value": "\"src\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "StringLiteral",
-      "offset": 2134,
-      "length": 4,
-      "value": "\"bt\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "StringLiteral",
-      "offset": 2167,
-      "length": 4,
-      "value": "\"ty\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "StringLiteral",
-      "offset": 2192,
-      "length": 4,
-      "value": "\"st\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "StringLiteral",
-      "offset": 2217,
-      "length": 4,
-      "value": "\"sp\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "StringLiteral",
-      "offset": 2248,
-      "length": 5,
-      "value": "\"tgt\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "StringLiteral",
-      "offset": 2276,
-      "length": 4,
-      "value": "\"tg\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "StringLiteral",
-      "offset": 2305,
-      "length": 4,
-      "value": "\"pg\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "StringLiteral",
-      "offset": 2334,
-      "length": 4,
-      "value": "\"du\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "StringLiteral",
-      "offset": 2362,
-      "length": 4,
-      "value": "\"ca\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "StringLiteral",
-      "offset": 2391,
-      "length": 4,
-      "value": "\"dl\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "StringLiteral",
-      "offset": 2421,
-      "length": 4,
-      "value": "\"hr\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "StringLiteral",
-      "offset": 2446,
-      "length": 5,
-      "value": "\"stp\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "StringLiteral",
-      "offset": 2481,
-      "length": 4,
-      "value": "\"tl\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "StringLiteral",
-      "offset": 2508,
-      "length": 5,
-      "value": "\"cir\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "StringLiteral",
-      "offset": 2539,
-      "length": 5,
-      "value": "\"alt\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "StringLiteral",
-      "offset": 2103,
-      "length": 5,
-      "value": "\"src\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "StringLiteral",
-      "offset": 2134,
-      "length": 4,
-      "value": "\"bt\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "StringLiteral",
-      "offset": 2167,
-      "length": 4,
-      "value": "\"ty\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "StringLiteral",
-      "offset": 2192,
-      "length": 4,
-      "value": "\"st\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "StringLiteral",
-      "offset": 2217,
-      "length": 4,
-      "value": "\"sp\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "StringLiteral",
-      "offset": 2248,
-      "length": 5,
-      "value": "\"tgt\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "StringLiteral",
-      "offset": 2276,
-      "length": 4,
-      "value": "\"tg\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "StringLiteral",
-      "offset": 2305,
-      "length": 4,
-      "value": "\"pg\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "StringLiteral",
-      "offset": 2334,
-      "length": 4,
-      "value": "\"du\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "StringLiteral",
-      "offset": 2362,
-      "length": 4,
-      "value": "\"ca\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "StringLiteral",
-      "offset": 2391,
-      "length": 4,
-      "value": "\"dl\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "StringLiteral",
-      "offset": 2421,
-      "length": 4,
-      "value": "\"hr\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "StringLiteral",
-      "offset": 2446,
-      "length": 5,
-      "value": "\"stp\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "StringLiteral",
-      "offset": 2481,
-      "length": 4,
-      "value": "\"tl\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "StringLiteral",
-      "offset": 2508,
-      "length": 5,
-      "value": "\"cir\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
-      "kind": "StringLiteral",
-      "offset": 2539,
-      "length": 5,
-      "value": "\"alt\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainingData.swift",
-      "kind": "StringLiteral",
-      "offset": 849,
-      "length": 4,
-      "value": "\"st\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainingData.swift",
-      "kind": "StringLiteral",
-      "offset": 886,
-      "length": 4,
-      "value": "\"hr\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainingData.swift",
-      "kind": "StringLiteral",
-      "offset": 921,
-      "length": 4,
-      "value": "\"ca\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainingData.swift",
-      "kind": "StringLiteral",
-      "offset": 957,
-      "length": 4,
-      "value": "\"di\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainingData.swift",
-      "kind": "StringLiteral",
-      "offset": 994,
-      "length": 5,
-      "value": "\"stp\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainingData.swift",
-      "kind": "StringLiteral",
-      "offset": 1032,
-      "length": 4,
-      "value": "\"ti\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainingData.swift",
-      "kind": "StringLiteral",
-      "offset": 1103,
-      "length": 155,
-      "value": "\"IBTrainingData(startTime: \""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainingData.swift",
-      "kind": "StringLiteral",
-      "offset": 1142,
-      "length": 1,
-      "value": "\", heartRate:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainingData.swift",
-      "kind": "StringLiteral",
-      "offset": 1166,
-      "length": 1,
-      "value": "\", calorie:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainingData.swift",
-      "kind": "StringLiteral",
-      "offset": 1186,
-      "length": 1,
-      "value": "\", distance:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainingData.swift",
-      "kind": "StringLiteral",
-      "offset": 1208,
-      "length": 1,
-      "value": "\", stepCount:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainingData.swift",
-      "kind": "StringLiteral",
-      "offset": 1232,
-      "length": 1,
-      "value": "\", intensity:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainingData.swift",
-      "kind": "StringLiteral",
-      "offset": 1256,
-      "length": 1,
-      "value": "\")\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 543,
-      "length": 22,
-      "value": "\"缺少参数: dialID\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 812,
-      "length": 22,
-      "value": "\"缺少参数: action\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 1087,
-      "length": 26,
-      "value": "\"缺少参数: motionMode\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 1371,
-      "length": 24,
-      "value": "\"缺少参数: language\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 1657,
-      "length": 25,
-      "value": "\"缺少参数: auxiliary\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 1932,
-      "length": 21,
-      "value": "\"缺少参数: value\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 2203,
-      "length": 21,
-      "value": "\"缺少参数: value\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2280,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2284,
-      "length": 3,
-      "value": "255"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 2496,
-      "length": 21,
-      "value": "\"缺少参数: value\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 2760,
-      "length": 21,
-      "value": "\"缺少参数: value\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 3019,
-      "length": 20,
-      "value": "\"缺少参数: file\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 3283,
-      "length": 19,
-      "value": "\"缺少参数: ota\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 3362,
-      "length": 23,
-      "value": "\"json解析异常: ota\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 3428,
-      "length": 2,
-      "value": "\"\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 3656,
-      "length": 25,
-      "value": "\"缺少参数: aiReponse\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 4130,
-      "length": 23,
-      "value": "\"缺少参数: aiValid\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4241,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4250,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "BooleanLiteral",
-      "offset": 4286,
-      "length": 4,
-      "value": "true"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 4611,
-      "length": 26,
-      "value": "\"缺少参数: targetStep\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 4961,
-      "length": 21,
-      "value": "\"缺少参数: sleep\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5057,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 6087,
-      "length": 21,
-      "value": "\"缺少参数: water\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "IntegerLiteral",
-      "offset": 6190,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "IntegerLiteral",
-      "offset": 6427,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 6769,
-      "length": 25,
-      "value": "\"缺少参数: heartRate\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "IntegerLiteral",
-      "offset": 6929,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 7238,
-      "length": 25,
-      "value": "\"缺少参数: heartRate\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "IntegerLiteral",
-      "offset": 7398,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 7680,
-      "length": 27,
-      "value": "\"缺少参数: otherTarget\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 8181,
-      "length": 31,
-      "value": "\"缺少参数: IBVibrateConfig\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "IntegerLiteral",
-      "offset": 8279,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 8456,
-      "length": 30,
-      "value": "\"参数错误: IBScreenConfig\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "IntegerLiteral",
-      "offset": 8542,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 8715,
-      "length": 30,
-      "value": "\"参数错误: IBScreenConfig\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "IntegerLiteral",
-      "offset": 8801,
-      "length": 1,
-      "value": "3"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 9034,
-      "length": 30,
-      "value": "\"参数错误: IBScreenConfig\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "Array",
-      "offset": 9105,
-      "length": 2,
-      "value": "[]"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 9294,
-      "length": 30,
-      "value": "\"缺少参数: IBScreenConfig\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "IntegerLiteral",
-      "offset": 9391,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 9565,
-      "length": 30,
-      "value": "\"参数错误: IBScreenConfig\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 9848,
-      "length": 30,
-      "value": "\"参数错误: IBScreenConfig\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 10096,
-      "length": 24,
-      "value": "\"缺少参数: userInfo\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 10576,
-      "length": 21,
-      "value": "\"缺少参数: clock\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 10657,
-      "length": 25,
-      "value": "\"json解析异常: clock\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 10725,
-      "length": 2,
-      "value": "\"\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 10965,
-      "length": 27,
-      "value": "\"缺少参数: trainTarget\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 11052,
-      "length": 31,
-      "value": "\"json解析异常: trainTarget\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 11126,
-      "length": 2,
-      "value": "\"\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 11360,
-      "length": 25,
-      "value": "\"缺少参数: sendPhone\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 11445,
-      "length": 29,
-      "value": "\"json解析异常: sendPhone\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 11517,
-      "length": 2,
-      "value": "\"\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 11748,
-      "length": 24,
-      "value": "\"缺少参数: sendTime\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 11832,
-      "length": 28,
-      "value": "\"json解析异常: sendTime\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 11903,
-      "length": 2,
-      "value": "\"\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 12122,
-      "length": 23,
-      "value": "\"缺少参数: weather\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 12205,
-      "length": 27,
-      "value": "\"json解析异常: weather\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 12275,
-      "length": 2,
-      "value": "\"\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 12505,
-      "length": 27,
-      "value": "\"缺少参数: addressBook\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "IntegerLiteral",
-      "offset": 12560,
-      "length": 2,
-      "value": "20"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 12576,
-      "length": 54,
-      "value": "\"参数: addressBook,最多不能超过20个联系人\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 12689,
-      "length": 4,
-      "value": "\"[ \""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "IntegerLiteral",
-      "offset": 13070,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "IntegerLiteral",
-      "offset": 13217,
-      "length": 1,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 13232,
-      "length": 58,
-      "value": "\"参数: addressBook,电话号码书数不能超过两个\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "IntegerLiteral",
-      "offset": 13620,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "IntegerLiteral",
-      "offset": 13914,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "IntegerLiteral",
-      "offset": 14208,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 14273,
-      "length": 4,
-      "value": "\" ]\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 14533,
-      "length": 19,
-      "value": "\"缺少参数: MP3\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 14612,
-      "length": 23,
-      "value": "\"json解析异常: MP3\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 14678,
-      "length": 2,
-      "value": "\"\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 14884,
-      "length": 19,
-      "value": "\"缺少参数: epo\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 14962,
-      "length": 4,
-      "value": "\"[ \""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 15293,
-      "length": 4,
-      "value": "\" ]\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 16092,
-      "length": 20,
-      "value": "\"缺少参数: dial\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "IntegerLiteral",
-      "offset": 16368,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "IntegerLiteral",
-      "offset": 16504,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 16734,
-      "length": 24,
-      "value": "\"缺少参数: dialFile\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "IntegerLiteral",
-      "offset": 17061,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBChecker.swift",
-      "kind": "StringLiteral",
-      "offset": 17331,
-      "length": 26,
-      "value": "\"缺少参数: deleteFile\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBDeleteFile.swift",
-      "kind": "Array",
-      "offset": 332,
-      "length": 2,
-      "value": "[]"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBDeleteFile.swift",
-      "kind": "StringLiteral",
-      "offset": 416,
-      "length": 51,
-      "value": "\"IBDeleteFile(fileType: \""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBDeleteFile.swift",
-      "kind": "StringLiteral",
-      "offset": 451,
-      "length": 1,
-      "value": "\", uids:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBDeleteFile.swift",
-      "kind": "StringLiteral",
-      "offset": 465,
-      "length": 1,
-      "value": "\")\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTarinState.swift",
-      "kind": "IntegerLiteral",
-      "offset": 250,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTarinState.swift",
-      "kind": "IntegerLiteral",
-      "offset": 316,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTarinState.swift",
-      "kind": "IntegerLiteral",
-      "offset": 396,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTarinState.swift",
-      "kind": "IntegerLiteral",
-      "offset": 427,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTarinState.swift",
-      "kind": "IntegerLiteral",
-      "offset": 431,
-      "length": 1,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTarinState.swift",
-      "kind": "StringLiteral",
-      "offset": 498,
-      "length": 53,
-      "value": "\"IBTarinState(state: \""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTarinState.swift",
-      "kind": "StringLiteral",
-      "offset": 527,
-      "length": 1,
-      "value": "\", duration:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTarinState.swift",
-      "kind": "StringLiteral",
-      "offset": 549,
-      "length": 1,
-      "value": "\")\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAiValid.swift",
-      "kind": "BooleanLiteral",
-      "offset": 233,
-      "length": 4,
-      "value": "true"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAiValid.swift",
-      "kind": "StringLiteral",
-      "offset": 405,
-      "length": 50,
-      "value": "\"IBAiValid(isValid: \""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAiValid.swift",
-      "kind": "StringLiteral",
-      "offset": 435,
-      "length": 1,
-      "value": "\", key:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAiValid.swift",
-      "kind": "StringLiteral",
-      "offset": 450,
-      "length": 2,
-      "value": "\"\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAiValid.swift",
-      "kind": "StringLiteral",
-      "offset": 453,
-      "length": 1,
-      "value": "\")\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParser.swift",
-      "kind": "IntegerLiteral",
-      "offset": 333,
-      "length": 1,
-      "value": "7"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParser.swift",
-      "kind": "IntegerLiteral",
-      "offset": 337,
-      "length": 2,
-      "value": "10"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParser.swift",
-      "kind": "IntegerLiteral",
-      "offset": 378,
-      "length": 2,
-      "value": "17"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParser.swift",
-      "kind": "Array",
-      "offset": 841,
-      "length": 76,
-      "value": "[\"指令校验失败\", \"切换成功\", \"无该表盘资源\", \"切换失败\"]"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParser.swift",
-      "kind": "IntegerLiteral",
-      "offset": 956,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParser.swift",
-      "kind": "Array",
-      "offset": 1687,
-      "length": 48,
-      "value": "[\"指令校验失败\", \"已安装\", \"未安装\"]"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParser.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1774,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParser.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2126,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParser.swift",
-      "kind": "Array",
-      "offset": 2305,
-      "length": 69,
-      "value": "[\"指令校验失败\", \"操作成功\", \"进行手势拍照\", \"退出\"]"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParser.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2413,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParser.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2726,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParser.swift",
-      "kind": "StringLiteral",
-      "offset": 2730,
-      "length": 8,
-      "value": "\"关闭\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParser.swift",
-      "kind": "StringLiteral",
-      "offset": 2739,
-      "length": 8,
-      "value": "\"开启\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParser.swift",
-      "kind": "Array",
-      "offset": 2965,
-      "length": 72,
-      "value": "[\"指令校验失败\", \"操作成功\", \"手表已找到,停止查找\"]"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParser.swift",
-      "kind": "IntegerLiteral",
-      "offset": 3076,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParser.swift",
-      "kind": "Array",
-      "offset": 3287,
-      "length": 120,
-      "value": "[\"指令校验失败\", \"手表未与任何手机绑定\", \"手表已与该手机绑定\", \"手表已与其他手机绑定\"]"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParser.swift",
-      "kind": "IntegerLiteral",
-      "offset": 3446,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParser.swift",
-      "kind": "Dictionary",
-      "offset": 3713,
-      "length": 64,
-      "value": "[(0, \"空闲状态\"), (9, \"USB存储状态\"), (10, \"运动训练状态\")]"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParser.swift",
-      "kind": "StringLiteral",
-      "offset": 3852,
-      "length": 2,
-      "value": "\"\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParser.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4022,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParser.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4048,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParser.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4081,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParser.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4127,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParser.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4456,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParser.swift",
-      "kind": "StringLiteral",
-      "offset": 8707,
-      "length": 2,
-      "value": "\"\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParser.swift",
-      "kind": "StringLiteral",
-      "offset": 9059,
-      "length": 2,
-      "value": "\"\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParser.swift",
-      "kind": "StringLiteral",
-      "offset": 9409,
-      "length": 2,
-      "value": "\"\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParser.swift",
-      "kind": "IntegerLiteral",
-      "offset": 9731,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParser.swift",
-      "kind": "IntegerLiteral",
-      "offset": 9924,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParser.swift",
-      "kind": "Array",
-      "offset": 9965,
-      "length": 2,
-      "value": "[]"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParser.swift",
-      "kind": "IntegerLiteral",
-      "offset": 9985,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParser.swift",
-      "kind": "IntegerLiteral",
-      "offset": 10035,
-      "length": 1,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParser.swift",
-      "kind": "IntegerLiteral",
-      "offset": 10041,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParser.swift",
-      "kind": "IntegerLiteral",
-      "offset": 10045,
-      "length": 1,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParser.swift",
-      "kind": "IntegerLiteral",
-      "offset": 10051,
-      "length": 1,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBUserInfo.swift",
-      "kind": "IntegerLiteral",
-      "offset": 191,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBUserInfo.swift",
-      "kind": "IntegerLiteral",
-      "offset": 259,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBUserInfo.swift",
-      "kind": "IntegerLiteral",
-      "offset": 317,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBUserInfo.swift",
-      "kind": "IntegerLiteral",
-      "offset": 375,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBUserInfo.swift",
-      "kind": "IntegerLiteral",
-      "offset": 425,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBUserInfo.swift",
-      "kind": "IntegerLiteral",
-      "offset": 499,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBUserInfo.swift",
-      "kind": "IntegerLiteral",
-      "offset": 556,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBUserInfo.swift",
-      "kind": "IntegerLiteral",
-      "offset": 635,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBUserInfo.swift",
-      "kind": "IntegerLiteral",
-      "offset": 714,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBUserInfo.swift",
-      "kind": "IntegerLiteral",
-      "offset": 743,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBUserInfo.swift",
-      "kind": "IntegerLiteral",
-      "offset": 772,
-      "length": 1,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBUserInfo.swift",
-      "kind": "IntegerLiteral",
-      "offset": 801,
-      "length": 1,
-      "value": "3"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBUserInfo.swift",
-      "kind": "IntegerLiteral",
-      "offset": 805,
-      "length": 1,
-      "value": "4"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBUserInfo.swift",
-      "kind": "IntegerLiteral",
-      "offset": 832,
-      "length": 1,
-      "value": "5"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBUserInfo.swift",
-      "kind": "IntegerLiteral",
-      "offset": 836,
-      "length": 1,
-      "value": "8"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBUserInfo.swift",
-      "kind": "IntegerLiteral",
-      "offset": 866,
-      "length": 1,
-      "value": "9"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBUserInfo.swift",
-      "kind": "IntegerLiteral",
-      "offset": 870,
-      "length": 2,
-      "value": "10"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBUserInfo.swift",
-      "kind": "IntegerLiteral",
-      "offset": 899,
-      "length": 2,
-      "value": "11"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBUserInfo.swift",
-      "kind": "IntegerLiteral",
-      "offset": 933,
-      "length": 2,
-      "value": "12"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBUserInfo.swift",
-      "kind": "StringLiteral",
-      "offset": 1001,
-      "length": 155,
-      "value": "\"IBUserInfo(age: \""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBUserInfo.swift",
-      "kind": "StringLiteral",
-      "offset": 1024,
-      "length": 1,
-      "value": "\", gender:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBUserInfo.swift",
-      "kind": "StringLiteral",
-      "offset": 1042,
-      "length": 1,
-      "value": "\", height:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBUserInfo.swift",
-      "kind": "StringLiteral",
-      "offset": 1060,
-      "length": 1,
-      "value": "\", weight:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBUserInfo.swift",
-      "kind": "StringLiteral",
-      "offset": 1078,
-      "length": 1,
-      "value": "\", step:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBUserInfo.swift",
-      "kind": "StringLiteral",
-      "offset": 1092,
-      "length": 1,
-      "value": "\", burning:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBUserInfo.swift",
-      "kind": "StringLiteral",
-      "offset": 1112,
-      "length": 1,
-      "value": "\", stand:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBUserInfo.swift",
-      "kind": "StringLiteral",
-      "offset": 1128,
-      "length": 1,
-      "value": "\", hourSystem:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBUserInfo.swift",
-      "kind": "StringLiteral",
-      "offset": 1154,
-      "length": 1,
-      "value": "\")\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryHeartRate.swift",
-      "kind": "Array",
-      "offset": 215,
-      "length": 2,
-      "value": "[]"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryHeartRate.swift",
-      "kind": "Array",
-      "offset": 303,
-      "length": 2,
-      "value": "[]"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryHeartRate.swift",
-      "kind": "IntegerLiteral",
-      "offset": 336,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryHeartRate.swift",
-      "kind": "IntegerLiteral",
-      "offset": 359,
-      "length": 1,
-      "value": "5"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryHeartRate.swift",
-      "kind": "IntegerLiteral",
-      "offset": 395,
-      "length": 1,
-      "value": "4"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryHeartRate.swift",
-      "kind": "IntegerLiteral",
-      "offset": 492,
-      "length": 1,
-      "value": "3"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryHeartRate.swift",
-      "kind": "IntegerLiteral",
-      "offset": 536,
-      "length": 1,
-      "value": "4"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryHeartRate.swift",
-      "kind": "IntegerLiteral",
-      "offset": 751,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryHeartRate.swift",
-      "kind": "IntegerLiteral",
-      "offset": 796,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBloodOxygen.swift",
-      "kind": "Array",
-      "offset": 220,
-      "length": 2,
-      "value": "[]"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBloodOxygen.swift",
-      "kind": "Array",
-      "offset": 310,
-      "length": 2,
-      "value": "[]"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBloodOxygen.swift",
-      "kind": "IntegerLiteral",
-      "offset": 343,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBloodOxygen.swift",
-      "kind": "IntegerLiteral",
-      "offset": 366,
-      "length": 1,
-      "value": "5"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBloodOxygen.swift",
-      "kind": "IntegerLiteral",
-      "offset": 402,
-      "length": 1,
-      "value": "4"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBloodOxygen.swift",
-      "kind": "IntegerLiteral",
-      "offset": 501,
-      "length": 1,
-      "value": "3"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBloodOxygen.swift",
-      "kind": "IntegerLiteral",
-      "offset": 545,
-      "length": 1,
-      "value": "4"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBloodOxygen.swift",
-      "kind": "IntegerLiteral",
-      "offset": 762,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBloodOxygen.swift",
-      "kind": "IntegerLiteral",
-      "offset": 817,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "Array",
-      "offset": 397,
-      "length": 2,
-      "value": "[]"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "StringLiteral",
-      "offset": 218,
-      "length": 6,
-      "value": "\"IOTBluetooth.Weakly\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "Array",
-      "offset": 589,
-      "length": 2,
-      "value": "[]"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "StringLiteral",
-      "offset": 2400,
-      "length": 34,
-      "value": "\"observer or name must be not nil\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "Dictionary",
-      "offset": 3015,
-      "length": 3,
-      "value": "[]"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "Dictionary",
-      "offset": 3620,
-      "length": 3,
-      "value": "[]"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "StringLiteral",
-      "offset": 4640,
-      "length": 36,
-      "value": "\"IOTBluetooth.ConnectStateDidChange\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "StringLiteral",
-      "offset": 4810,
-      "length": 24,
-      "value": "\"IOTBluetooth.TakePhoto\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "StringLiteral",
-      "offset": 4913,
-      "length": 22,
-      "value": "\"IOTBluetooth.weather\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "StringLiteral",
-      "offset": 5008,
-      "length": 25,
-      "value": "\"IOTBluetooth.FindDevice\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "StringLiteral",
-      "offset": 5162,
-      "length": 32,
-      "value": "\"IOTBluetooth.TrainStateChanged\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "StringLiteral",
-      "offset": 5338,
-      "length": 27,
-      "value": "\"IOTBluetooth.TrainingData\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "StringLiteral",
-      "offset": 5473,
-      "length": 32,
-      "value": "\"IOTBluetooth.TileReceiveFinish\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5773,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5803,
-      "length": 1,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5816,
-      "length": 1,
-      "value": "3"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "BooleanLiteral",
-      "offset": 5899,
-      "length": 4,
-      "value": "true"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "IntegerLiteral",
-      "offset": 6108,
-      "length": 1,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "BooleanLiteral",
-      "offset": 6182,
-      "length": 4,
-      "value": "true"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "IntegerLiteral",
-      "offset": 6242,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "IntegerLiteral",
-      "offset": 6248,
-      "length": 4,
-      "value": "0x05"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "IntegerLiteral",
-      "offset": 6267,
-      "length": 1,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "IntegerLiteral",
-      "offset": 6273,
-      "length": 4,
-      "value": "0x03"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "BooleanLiteral",
-      "offset": 6326,
-      "length": 4,
-      "value": "true"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "IntegerLiteral",
-      "offset": 6392,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "IntegerLiteral",
-      "offset": 6398,
-      "length": 4,
-      "value": "0x05"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "IntegerLiteral",
-      "offset": 6417,
-      "length": 1,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "IntegerLiteral",
-      "offset": 6423,
-      "length": 4,
-      "value": "0x04"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "Array",
-      "offset": 6545,
-      "length": 31,
-      "value": "[\"安装失败\", \"安装成功\"]"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "StringLiteral",
-      "offset": 6600,
-      "length": 23,
-      "value": "\"表盘安装状态:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "BooleanLiteral",
-      "offset": 6655,
-      "length": 4,
-      "value": "true"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "IntegerLiteral",
-      "offset": 6739,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "IntegerLiteral",
-      "offset": 6745,
-      "length": 4,
-      "value": "0x05"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "IntegerLiteral",
-      "offset": 6764,
-      "length": 1,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "IntegerLiteral",
-      "offset": 6770,
-      "length": 4,
-      "value": "0x06"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "BooleanLiteral",
-      "offset": 6841,
-      "length": 4,
-      "value": "true"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "IntegerLiteral",
-      "offset": 6909,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "IntegerLiteral",
-      "offset": 6915,
-      "length": 4,
-      "value": "0x05"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "IntegerLiteral",
-      "offset": 6934,
-      "length": 1,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "IntegerLiteral",
-      "offset": 6940,
-      "length": 4,
-      "value": "0x05"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "BooleanLiteral",
-      "offset": 7013,
-      "length": 4,
-      "value": "true"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "IntegerLiteral",
-      "offset": 7082,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "IntegerLiteral",
-      "offset": 7088,
-      "length": 4,
-      "value": "0x05"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "IntegerLiteral",
-      "offset": 7107,
-      "length": 1,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "IntegerLiteral",
-      "offset": 7113,
-      "length": 4,
-      "value": "0x20"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "IntegerLiteral",
-      "offset": 7243,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "IntegerLiteral",
-      "offset": 7253,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "BooleanLiteral",
-      "offset": 7275,
-      "length": 4,
-      "value": "true"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "IntegerLiteral",
-      "offset": 7341,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "IntegerLiteral",
-      "offset": 7347,
-      "length": 4,
-      "value": "0x05"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "IntegerLiteral",
-      "offset": 7366,
-      "length": 1,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "IntegerLiteral",
-      "offset": 7372,
-      "length": 4,
-      "value": "0x50"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "BooleanLiteral",
-      "offset": 7561,
-      "length": 4,
-      "value": "true"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "BooleanLiteral",
-      "offset": 7868,
-      "length": 4,
-      "value": "true"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "BooleanLiteral",
-      "offset": 7960,
-      "length": 4,
-      "value": "true"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
-      "kind": "BooleanLiteral",
-      "offset": 7990,
-      "length": 5,
-      "value": "false"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Any.swift",
-      "kind": "BooleanLiteral",
-      "offset": 199,
-      "length": 4,
-      "value": "true"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Any.swift",
-      "kind": "BooleanLiteral",
-      "offset": 227,
-      "length": 5,
-      "value": "false"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Any.swift",
-      "kind": "BooleanLiteral",
-      "offset": 338,
-      "length": 5,
-      "value": "false"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Any.swift",
-      "kind": "IntegerLiteral",
-      "offset": 444,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Any.swift",
-      "kind": "BooleanLiteral",
-      "offset": 535,
-      "length": 5,
-      "value": "false"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Any.swift",
-      "kind": "IntegerLiteral",
-      "offset": 659,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Any.swift",
-      "kind": "BooleanLiteral",
-      "offset": 768,
-      "length": 5,
-      "value": "false"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Any.swift",
-      "kind": "IntegerLiteral",
-      "offset": 876,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Any.swift",
-      "kind": "BooleanLiteral",
-      "offset": 969,
-      "length": 5,
-      "value": "false"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Any.swift",
-      "kind": "FloatLiteral",
-      "offset": 1114,
-      "length": 3,
-      "value": "8.0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Any.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1154,
-      "length": 1,
-      "value": "8"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Any.swift",
-      "kind": "StringLiteral",
-      "offset": 1202,
-      "length": 3,
-      "value": "\"0\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Any.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1396,
-      "length": 10,
-      "value": "0b11111111"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Any.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1646,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Any.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1696,
-      "length": 1,
-      "value": "8"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Any.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1728,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Any.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1848,
-      "length": 1,
-      "value": "8"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Any.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1879,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Any.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2204,
-      "length": 1,
-      "value": "8"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Any.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2420,
-      "length": 1,
-      "value": "8"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Any.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2468,
-      "length": 2,
-      "value": "16"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Any.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2685,
-      "length": 1,
-      "value": "8"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Any.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2733,
-      "length": 2,
-      "value": "16"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Any.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2782,
-      "length": 2,
-      "value": "24"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Any.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2949,
-      "length": 1,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Any.swift",
-      "kind": "IntegerLiteral",
-      "offset": 3139,
-      "length": 1,
-      "value": "8"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Any.swift",
-      "kind": "IntegerLiteral",
-      "offset": 3164,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Any.swift",
-      "kind": "StringLiteral",
-      "offset": 3394,
-      "length": 6,
-      "value": "\"%02x\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Any.swift",
-      "kind": "StringLiteral",
-      "offset": 3424,
-      "length": 2,
-      "value": "\"\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Any.swift",
-      "kind": "StringLiteral",
-      "offset": 3595,
-      "length": 6,
-      "value": "\"%02x\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Any.swift",
-      "kind": "StringLiteral",
-      "offset": 3625,
-      "length": 2,
-      "value": "\"\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Any.swift",
-      "kind": "IntegerLiteral",
-      "offset": 3897,
-      "length": 1,
-      "value": "8"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Any.swift",
-      "kind": "IntegerLiteral",
-      "offset": 3922,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Any.swift",
-      "kind": "FloatLiteral",
-      "offset": 4196,
-      "length": 3,
-      "value": "0.0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Any.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4291,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBCode.swift",
-      "kind": "StringLiteral",
-      "offset": 213,
-      "length": 51,
-      "value": "\"IBError(rawValue:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBCode.swift",
-      "kind": "StringLiteral",
-      "offset": 242,
-      "length": 1,
-      "value": "\", message:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBCode.swift",
-      "kind": "StringLiteral",
-      "offset": 262,
-      "length": 1,
-      "value": "\")\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBCode.swift",
-      "kind": "IntegerLiteral",
-      "offset": 311,
-      "length": 4,
-      "value": "1000"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBCode.swift",
-      "kind": "IntegerLiteral",
-      "offset": 356,
-      "length": 4,
-      "value": "1001"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBCode.swift",
-      "kind": "IntegerLiteral",
-      "offset": 406,
-      "length": 4,
-      "value": "1002"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBCode.swift",
-      "kind": "IntegerLiteral",
-      "offset": 454,
-      "length": 4,
-      "value": "1003"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBCode.swift",
-      "kind": "IntegerLiteral",
-      "offset": 499,
-      "length": 4,
-      "value": "1004"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBCode.swift",
-      "kind": "IntegerLiteral",
-      "offset": 543,
-      "length": 4,
-      "value": "1005"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBCode.swift",
-      "kind": "StringLiteral",
-      "offset": 641,
-      "length": 14,
-      "value": "\"操作失败\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBCode.swift",
-      "kind": "StringLiteral",
-      "offset": 698,
-      "length": 14,
-      "value": "\"操作成功\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBCode.swift",
-      "kind": "StringLiteral",
-      "offset": 760,
-      "length": 14,
-      "value": "\"参数错误\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBCode.swift",
-      "kind": "StringLiteral",
-      "offset": 820,
-      "length": 14,
-      "value": "\"解析错误\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBCode.swift",
-      "kind": "StringLiteral",
-      "offset": 877,
-      "length": 14,
-      "value": "\"请求超时\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBCode.swift",
-      "kind": "StringLiteral",
-      "offset": 928,
-      "length": 14,
-      "value": "\"未知错误\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBCode.swift",
-      "kind": "IntegerLiteral",
-      "offset": 311,
-      "length": 4,
-      "value": "1000"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBCode.swift",
-      "kind": "IntegerLiteral",
-      "offset": 356,
-      "length": 4,
-      "value": "1001"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBCode.swift",
-      "kind": "IntegerLiteral",
-      "offset": 406,
-      "length": 4,
-      "value": "1002"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBCode.swift",
-      "kind": "IntegerLiteral",
-      "offset": 454,
-      "length": 4,
-      "value": "1003"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBCode.swift",
-      "kind": "IntegerLiteral",
-      "offset": 499,
-      "length": 4,
-      "value": "1004"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBCode.swift",
-      "kind": "IntegerLiteral",
-      "offset": 543,
-      "length": 4,
-      "value": "1005"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBCode.swift",
-      "kind": "IntegerLiteral",
-      "offset": 311,
-      "length": 4,
-      "value": "1000"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBCode.swift",
-      "kind": "IntegerLiteral",
-      "offset": 356,
-      "length": 4,
-      "value": "1001"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBCode.swift",
-      "kind": "IntegerLiteral",
-      "offset": 406,
-      "length": 4,
-      "value": "1002"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBCode.swift",
-      "kind": "IntegerLiteral",
-      "offset": 454,
-      "length": 4,
-      "value": "1003"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBCode.swift",
-      "kind": "IntegerLiteral",
-      "offset": 499,
-      "length": 4,
-      "value": "1004"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBCode.swift",
-      "kind": "IntegerLiteral",
-      "offset": 543,
-      "length": 4,
-      "value": "1005"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBFetchFile.swift",
-      "kind": "StringLiteral",
-      "offset": 481,
-      "length": 6,
-      "value": "\"type\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBFetchFile.swift",
-      "kind": "StringLiteral",
-      "offset": 625,
-      "length": 6,
-      "value": "\"list\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBFetchFile.swift",
-      "kind": "StringLiteral",
-      "offset": 861,
-      "length": 5,
-      "value": "\"uid\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBFetchFile.swift",
-      "kind": "IntegerLiteral",
-      "offset": 879,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBFetchFile.swift",
-      "kind": "StringLiteral",
-      "offset": 919,
-      "length": 6,
-      "value": "\"name\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBFetchFile.swift",
-      "kind": "StringLiteral",
-      "offset": 941,
-      "length": 2,
-      "value": "\"\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBFetchFile.swift",
-      "kind": "StringLiteral",
-      "offset": 982,
-      "length": 6,
-      "value": "\"size\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBFetchFile.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1001,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBFetchFile.swift",
-      "kind": "StringLiteral",
-      "offset": 1043,
-      "length": 8,
-      "value": "\"artist\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBFetchFile.swift",
-      "kind": "StringLiteral",
-      "offset": 1067,
-      "length": 2,
-      "value": "\"\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBFetchFile.swift",
-      "kind": "StringLiteral",
-      "offset": 1112,
-      "length": 10,
-      "value": "\"duration\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBFetchFile.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1135,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBFetchFile.swift",
-      "kind": "StringLiteral",
-      "offset": 1452,
-      "length": 5,
-      "value": "\"uid\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBFetchFile.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1470,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBFetchFile.swift",
-      "kind": "StringLiteral",
-      "offset": 1510,
-      "length": 6,
-      "value": "\"name\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBFetchFile.swift",
-      "kind": "StringLiteral",
-      "offset": 1532,
-      "length": 2,
-      "value": "\"\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBFetchFile.swift",
-      "kind": "StringLiteral",
-      "offset": 1573,
-      "length": 6,
-      "value": "\"size\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBFetchFile.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1592,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBFetchFile.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1880,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBFetchFile.swift",
-      "kind": "StringLiteral",
-      "offset": 1925,
-      "length": 2,
-      "value": "\"\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBFetchFile.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1981,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBFetchFile.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2146,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBFetchFile.swift",
-      "kind": "StringLiteral",
-      "offset": 2191,
-      "length": 2,
-      "value": "\"\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBFetchFile.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2247,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBFetchFile.swift",
-      "kind": "StringLiteral",
-      "offset": 2288,
-      "length": 2,
-      "value": "\"\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBFetchFile.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2350,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBManufacturer.swift",
-      "kind": "IntegerLiteral",
-      "offset": 214,
-      "length": 2,
-      "value": "14"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBManufacturer.swift",
-      "kind": "IntegerLiteral",
-      "offset": 266,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBManufacturer.swift",
-      "kind": "IntegerLiteral",
-      "offset": 270,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBManufacturer.swift",
-      "kind": "StringLiteral",
-      "offset": 283,
-      "length": 2,
-      "value": "\"\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBManufacturer.swift",
-      "kind": "StringLiteral",
-      "offset": 308,
-      "length": 4,
-      "value": "\"JH\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBManufacturer.swift",
-      "kind": "IntegerLiteral",
-      "offset": 363,
-      "length": 1,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBManufacturer.swift",
-      "kind": "IntegerLiteral",
-      "offset": 396,
-      "length": 1,
-      "value": "3"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBManufacturer.swift",
-      "kind": "IntegerLiteral",
-      "offset": 400,
-      "length": 1,
-      "value": "8"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBManufacturer.swift",
-      "kind": "StringLiteral",
-      "offset": 418,
-      "length": 3,
-      "value": "\":\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBManufacturer.swift",
-      "kind": "IntegerLiteral",
-      "offset": 449,
-      "length": 1,
-      "value": "9"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBManufacturer.swift",
-      "kind": "IntegerLiteral",
-      "offset": 481,
-      "length": 2,
-      "value": "10"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBManufacturer.swift",
-      "kind": "IntegerLiteral",
-      "offset": 520,
-      "length": 2,
-      "value": "11"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBManufacturer.swift",
-      "kind": "IntegerLiteral",
-      "offset": 525,
-      "length": 2,
-      "value": "14"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBManufacturer.swift",
-      "kind": "StringLiteral",
-      "offset": 544,
-      "length": 4,
-      "value": "\"%d\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBManufacturer.swift",
-      "kind": "StringLiteral",
-      "offset": 550,
-      "length": 3,
-      "value": "\".\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainTarget.swift",
-      "kind": "StringLiteral",
-      "offset": 605,
-      "length": 4,
-      "value": "\"ty\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainTarget.swift",
-      "kind": "StringLiteral",
-      "offset": 634,
-      "length": 4,
-      "value": "\"di\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainTarget.swift",
-      "kind": "StringLiteral",
-      "offset": 662,
-      "length": 4,
-      "value": "\"ca\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainTarget.swift",
-      "kind": "StringLiteral",
-      "offset": 687,
-      "length": 4,
-      "value": "\"tm\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainTarget.swift",
-      "kind": "StringLiteral",
-      "offset": 712,
-      "length": 4,
-      "value": "\"st\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainTarget.swift",
-      "kind": "StringLiteral",
-      "offset": 605,
-      "length": 4,
-      "value": "\"ty\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainTarget.swift",
-      "kind": "StringLiteral",
-      "offset": 634,
-      "length": 4,
-      "value": "\"di\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainTarget.swift",
-      "kind": "StringLiteral",
-      "offset": 662,
-      "length": 4,
-      "value": "\"ca\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainTarget.swift",
-      "kind": "StringLiteral",
-      "offset": 687,
-      "length": 4,
-      "value": "\"tm\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainTarget.swift",
-      "kind": "StringLiteral",
-      "offset": 712,
-      "length": 4,
-      "value": "\"st\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainTarget.swift",
-      "kind": "StringLiteral",
-      "offset": 769,
-      "length": 120,
-      "value": "\"IBTrainTarget(type: \""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainTarget.swift",
-      "kind": "StringLiteral",
-      "offset": 797,
-      "length": 1,
-      "value": "\", distance:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainTarget.swift",
-      "kind": "IntegerLiteral",
-      "offset": 822,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainTarget.swift",
-      "kind": "StringLiteral",
-      "offset": 824,
-      "length": 1,
-      "value": "\", calorie:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainTarget.swift",
-      "kind": "IntegerLiteral",
-      "offset": 847,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainTarget.swift",
-      "kind": "StringLiteral",
-      "offset": 849,
-      "length": 1,
-      "value": "\", time:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainTarget.swift",
-      "kind": "IntegerLiteral",
-      "offset": 866,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainTarget.swift",
-      "kind": "StringLiteral",
-      "offset": 868,
-      "length": 1,
-      "value": "\", step:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainTarget.swift",
-      "kind": "IntegerLiteral",
-      "offset": 885,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainTarget.swift",
-      "kind": "StringLiteral",
-      "offset": 887,
-      "length": 1,
-      "value": "\")\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainTarget.swift",
-      "kind": "IntegerLiteral",
-      "offset": 996,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainTarget.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1035,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainTarget.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1068,
-      "length": 1,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainTarget.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1101,
-      "length": 1,
-      "value": "4"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainTarget.swift",
-      "kind": "IntegerLiteral",
-      "offset": 996,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainTarget.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1035,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainTarget.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1068,
-      "length": 1,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainTarget.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1101,
-      "length": 1,
-      "value": "4"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainTarget.swift",
-      "kind": "IntegerLiteral",
-      "offset": 996,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainTarget.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1035,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainTarget.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1068,
-      "length": 1,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainTarget.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1101,
-      "length": 1,
-      "value": "4"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender+Mp3.swift",
-      "kind": "StringLiteral",
-      "offset": 992,
-      "length": 20,
-      "value": "\"读取文件失败\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender+Mp3.swift",
-      "kind": "StringLiteral",
-      "offset": 1139,
-      "length": 17,
-      "value": "\"已取消发送\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender+Mp3.swift",
-      "kind": "StringLiteral",
-      "offset": 1719,
-      "length": 23,
-      "value": "\"\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender+Mp3.swift",
-      "kind": "StringLiteral",
-      "offset": 1728,
-      "length": 1,
-      "value": "\" : \""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender+Mp3.swift",
-      "kind": "StringLiteral",
-      "offset": 1741,
-      "length": 2,
-      "value": "\"\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender+Mp3.swift",
-      "kind": "StringLiteral",
-      "offset": 1950,
-      "length": 38,
-      "value": "\"发送文件超时,发送失败!\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender+Mp3.swift",
-      "kind": "StringLiteral",
-      "offset": 2191,
-      "length": 29,
-      "value": "\"文件内容发送结束...\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender+Mp3.swift",
-      "kind": "StringLiteral",
-      "offset": 2709,
-      "length": 29,
-      "value": "\"发送文件校验码失败\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBSender.swift",
-      "kind": "Array",
-      "offset": 351,
-      "length": 2,
-      "value": "[]"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBSender.swift",
-      "kind": "Array",
-      "offset": 465,
-      "length": 2,
-      "value": "[]"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBSender.swift",
-      "kind": "IntegerLiteral",
-      "offset": 639,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBSender.swift",
-      "kind": "IntegerLiteral",
-      "offset": 899,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBSender.swift",
-      "kind": "IntegerLiteral",
-      "offset": 964,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBSender.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1013,
-      "length": 4,
-      "value": "0x73"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBSender.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1191,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBSender.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1219,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBSender.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1315,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBSender.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1332,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBSender.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1457,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBSender.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1677,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBSender.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1726,
-      "length": 4,
-      "value": "0x73"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBSender.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1916,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBSender.swift",
-      "kind": "Array",
-      "offset": 2077,
-      "length": 6,
-      "value": "[0x00]"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBSender.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2302,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBSender.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2322,
-      "length": 3,
-      "value": "492"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBSender.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2464,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBSender.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2633,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBSender.swift",
-      "kind": "Array",
-      "offset": 3623,
-      "length": 2,
-      "value": "[]"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryGps.swift",
-      "kind": "Array",
-      "offset": 222,
-      "length": 2,
-      "value": "[]"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryGps.swift",
-      "kind": "Array",
-      "offset": 304,
-      "length": 2,
-      "value": "[]"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryGps.swift",
-      "kind": "IntegerLiteral",
-      "offset": 337,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryGps.swift",
-      "kind": "IntegerLiteral",
-      "offset": 360,
-      "length": 2,
-      "value": "12"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryGps.swift",
-      "kind": "IntegerLiteral",
-      "offset": 397,
-      "length": 2,
-      "value": "11"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryGps.swift",
-      "kind": "IntegerLiteral",
-      "offset": 489,
-      "length": 1,
-      "value": "3"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryGps.swift",
-      "kind": "IntegerLiteral",
-      "offset": 531,
-      "length": 1,
-      "value": "4"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryGps.swift",
-      "kind": "IntegerLiteral",
-      "offset": 537,
-      "length": 1,
-      "value": "7"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryGps.swift",
-      "kind": "IntegerLiteral",
-      "offset": 579,
-      "length": 1,
-      "value": "8"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryGps.swift",
-      "kind": "IntegerLiteral",
-      "offset": 585,
-      "length": 2,
-      "value": "11"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryGps.swift",
-      "kind": "IntegerLiteral",
-      "offset": 816,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryGps.swift",
-      "kind": "IntegerLiteral",
-      "offset": 903,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryGps.swift",
-      "kind": "IntegerLiteral",
-      "offset": 990,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBurning.swift",
-      "kind": "Array",
-      "offset": 209,
-      "length": 2,
-      "value": "[]"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBurning.swift",
-      "kind": "Array",
-      "offset": 295,
-      "length": 2,
-      "value": "[]"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBurning.swift",
-      "kind": "IntegerLiteral",
-      "offset": 328,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBurning.swift",
-      "kind": "IntegerLiteral",
-      "offset": 351,
-      "length": 1,
-      "value": "6"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBurning.swift",
-      "kind": "IntegerLiteral",
-      "offset": 387,
-      "length": 1,
-      "value": "5"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBurning.swift",
-      "kind": "IntegerLiteral",
-      "offset": 482,
-      "length": 1,
-      "value": "3"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBurning.swift",
-      "kind": "IntegerLiteral",
-      "offset": 526,
-      "length": 1,
-      "value": "4"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBurning.swift",
-      "kind": "IntegerLiteral",
-      "offset": 532,
-      "length": 1,
-      "value": "5"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBurning.swift",
-      "kind": "IntegerLiteral",
-      "offset": 745,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBurning.swift",
-      "kind": "IntegerLiteral",
-      "offset": 796,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/CRC16.swift",
-      "kind": "Array",
-      "offset": 306,
-      "length": 6,
-      "value": "[0, 0]"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/CRC16.swift",
-      "kind": "IntegerLiteral",
-      "offset": 335,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/CRC16.swift",
-      "kind": "IntegerLiteral",
-      "offset": 339,
-      "length": 1,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/CRC16.swift",
-      "kind": "IntegerLiteral",
-      "offset": 402,
-      "length": 3,
-      "value": "256"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/CRC16.swift",
-      "kind": "IntegerLiteral",
-      "offset": 432,
-      "length": 1,
-      "value": "8"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/CRC16.swift",
-      "kind": "IntegerLiteral",
-      "offset": 562,
-      "length": 6,
-      "value": "0xffff"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/CRC16.swift",
-      "kind": "IntegerLiteral",
-      "offset": 599,
-      "length": 6,
-      "value": "0xa001"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/CRC16.swift",
-      "kind": "IntegerLiteral",
-      "offset": 669,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/CRC16.swift",
-      "kind": "IntegerLiteral",
-      "offset": 743,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/CRC16.swift",
-      "kind": "IntegerLiteral",
-      "offset": 747,
-      "length": 1,
-      "value": "8"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/CRC16.swift",
-      "kind": "IntegerLiteral",
-      "offset": 780,
-      "length": 6,
-      "value": "0x0001"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/CRC16.swift",
-      "kind": "IntegerLiteral",
-      "offset": 791,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/CRC16.swift",
-      "kind": "IntegerLiteral",
-      "offset": 827,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/CRC16.swift",
-      "kind": "IntegerLiteral",
-      "offset": 924,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWater.swift",
-      "kind": "IntegerLiteral",
-      "offset": 258,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWater.swift",
-      "kind": "IntegerLiteral",
-      "offset": 352,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWater.swift",
-      "kind": "IntegerLiteral",
-      "offset": 422,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWater.swift",
-      "kind": "IntegerLiteral",
-      "offset": 503,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWater.swift",
-      "kind": "IntegerLiteral",
-      "offset": 514,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWater.swift",
-      "kind": "IntegerLiteral",
-      "offset": 639,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWater.swift",
-      "kind": "IntegerLiteral",
-      "offset": 650,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWater.swift",
-      "kind": "StringLiteral",
-      "offset": 852,
-      "length": 177,
-      "value": "\"IBWater(alertState: \""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWater.swift",
-      "kind": "StringLiteral",
-      "offset": 886,
-      "length": 1,
-      "value": "\", alertType:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWater.swift",
-      "kind": "StringLiteral",
-      "offset": 910,
-      "length": 1,
-      "value": "\", drinkingValue:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWater.swift",
-      "kind": "StringLiteral",
-      "offset": 942,
-      "length": 1,
-      "value": "\", start:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWater.swift",
-      "kind": "StringLiteral",
-      "offset": 970,
-      "length": 1,
-      "value": "\", end:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWater.swift",
-      "kind": "StringLiteral",
-      "offset": 994,
-      "length": 1,
-      "value": "\", frequency:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWater.swift",
-      "kind": "StringLiteral",
-      "offset": 1027,
-      "length": 1,
-      "value": "\")\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWater.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1122,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWater.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1149,
-      "length": 5,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWater.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1180,
-      "length": 5,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWater.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1211,
-      "length": 5,
-      "value": "3"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWater.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1247,
-      "length": 4,
-      "value": "4"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWater.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1122,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWater.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1149,
-      "length": 5,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWater.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1180,
-      "length": 5,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWater.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1211,
-      "length": 5,
-      "value": "3"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWater.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1247,
-      "length": 4,
-      "value": "4"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWater.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1122,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWater.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1149,
-      "length": 5,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWater.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1180,
-      "length": 5,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWater.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1211,
-      "length": 5,
-      "value": "3"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWater.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1247,
-      "length": 4,
-      "value": "4"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 249,
-      "length": 3,
-      "value": "0x0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "StringLiteral",
-      "offset": 1649,
-      "length": 81,
-      "value": "\"[\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "StringLiteral",
-      "offset": 1668,
-      "length": 16,
-      "value": "\"0x%02X, 0x%02X\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "StringLiteral",
-      "offset": 1705,
-      "length": 1,
-      "value": "\"] \""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "StringLiteral",
-      "offset": 1729,
-      "length": 3,
-      "value": "\"\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1821,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1858,
-      "length": 1,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2035,
-      "length": 4,
-      "value": "0x01"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2082,
-      "length": 4,
-      "value": "0x02"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2182,
-      "length": 4,
-      "value": "0x04"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2226,
-      "length": 4,
-      "value": "0x05"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2035,
-      "length": 4,
-      "value": "0x01"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2082,
-      "length": 4,
-      "value": "0x02"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2182,
-      "length": 4,
-      "value": "0x04"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2226,
-      "length": 4,
-      "value": "0x05"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2035,
-      "length": 4,
-      "value": "0x01"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2082,
-      "length": 4,
-      "value": "0x02"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2182,
-      "length": 4,
-      "value": "0x04"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2226,
-      "length": 4,
-      "value": "0x05"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2389,
-      "length": 4,
-      "value": "0x01"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2530,
-      "length": 4,
-      "value": "0x03"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2684,
-      "length": 4,
-      "value": "0x02"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2884,
-      "length": 4,
-      "value": "0x1B"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 3108,
-      "length": 4,
-      "value": "0x17"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 3306,
-      "length": 4,
-      "value": "0x04"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 3537,
-      "length": 4,
-      "value": "0x08"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 3740,
-      "length": 4,
-      "value": "0x0A"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 3881,
-      "length": 4,
-      "value": "0x0B"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4071,
-      "length": 4,
-      "value": "0x14"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4305,
-      "length": 4,
-      "value": "0x16"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4490,
-      "length": 4,
-      "value": "0x0E"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4724,
-      "length": 4,
-      "value": "0x1E"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4895,
-      "length": 4,
-      "value": "0x12"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5134,
-      "length": 4,
-      "value": "0x1F"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5311,
-      "length": 4,
-      "value": "0x13"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5567,
-      "length": 4,
-      "value": "0x0F"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5807,
-      "length": 4,
-      "value": "0x11"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 6123,
-      "length": 4,
-      "value": "0x15"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 6363,
-      "length": 4,
-      "value": "0x23"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 6506,
-      "length": 4,
-      "value": "0x25"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 6610,
-      "length": 4,
-      "value": "0x26"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 6710,
-      "length": 4,
-      "value": "0x27"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 6900,
-      "length": 4,
-      "value": "0x07"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 7093,
-      "length": 4,
-      "value": "0x01"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 7245,
-      "length": 4,
-      "value": "0x21"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 7459,
-      "length": 4,
-      "value": "0x2A"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 7747,
-      "length": 4,
-      "value": "0x0D"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 8079,
-      "length": 4,
-      "value": "0x19"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 8278,
-      "length": 4,
-      "value": "0x1A"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 8435,
-      "length": 4,
-      "value": "0x0E"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 8682,
-      "length": 4,
-      "value": "0x1C"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 8877,
-      "length": 4,
-      "value": "0x0F"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 9093,
-      "length": 4,
-      "value": "0x11"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 9330,
-      "length": 4,
-      "value": "0x1D"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 9541,
-      "length": 4,
-      "value": "0x2B"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 9711,
-      "length": 4,
-      "value": "0x16"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 9951,
-      "length": 4,
-      "value": "0x2C"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 10124,
-      "length": 4,
-      "value": "0x17"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 10347,
-      "length": 4,
-      "value": "0x29"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 10490,
-      "length": 4,
-      "value": "0x15"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 10767,
-      "length": 4,
-      "value": "0x24"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 10916,
-      "length": 4,
-      "value": "0x14"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 11147,
-      "length": 4,
-      "value": "0x28"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 11346,
-      "length": 4,
-      "value": "0x04"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 11794,
-      "length": 4,
-      "value": "0x40"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 12218,
-      "length": 4,
-      "value": "0x41"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 12629,
-      "length": 4,
-      "value": "0x43"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 13049,
-      "length": 4,
-      "value": "0x44"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 13459,
-      "length": 4,
-      "value": "0x45"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 13874,
-      "length": 4,
-      "value": "0x46"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 14290,
-      "length": 4,
-      "value": "0x47"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 14714,
-      "length": 4,
-      "value": "0x49"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 15122,
-      "length": 4,
-      "value": "0x4B"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 15406,
-      "length": 4,
-      "value": "0x4F"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 15564,
-      "length": 4,
-      "value": "0x2E"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 15742,
-      "length": 4,
-      "value": "0x05"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 16096,
-      "length": 4,
-      "value": "0x10"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 16291,
-      "length": 4,
-      "value": "0x02"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 16439,
-      "length": 4,
-      "value": "0x10"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 16565,
-      "length": 4,
-      "value": "0x2D"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 16726,
-      "length": 4,
-      "value": "0x20"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 16951,
-      "length": 4,
-      "value": "0x0B"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 17165,
-      "length": 4,
-      "value": "0x21"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 17579,
-      "length": 4,
-      "value": "0x22"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 17788,
-      "length": 4,
-      "value": "0x24"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 17978,
-      "length": 4,
-      "value": "0x23"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 18173,
-      "length": 4,
-      "value": "0x22"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 18407,
-      "length": 4,
-      "value": "0x22"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 18587,
-      "length": 4,
-      "value": "0x20"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 18774,
-      "length": 4,
-      "value": "0x28"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 18966,
-      "length": 4,
-      "value": "0x20"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 19267,
-      "length": 4,
-      "value": "0x21"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 19518,
-      "length": 4,
-      "value": "0x06"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 19753,
-      "length": 4,
-      "value": "0x05"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 20014,
-      "length": 4,
-      "value": "0x34"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
-      "kind": "IntegerLiteral",
-      "offset": 20196,
-      "length": 4,
-      "value": "0x1f"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
-      "kind": "IntegerLiteral",
-      "offset": 249,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
-      "kind": "StringLiteral",
-      "offset": 607,
-      "length": 31,
-      "value": "\"IBScreenConfig(type: \""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
-      "kind": "StringLiteral",
-      "offset": 636,
-      "length": 1,
-      "value": "\",\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
-      "kind": "StringLiteral",
-      "offset": 698,
-      "length": 29,
-      "value": "\"brightness: \""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
-      "kind": "StringLiteral",
-      "offset": 725,
-      "length": 1,
-      "value": "\")\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
-      "kind": "StringLiteral",
-      "offset": 794,
-      "length": 24,
-      "value": "\"duration: \""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
-      "kind": "StringLiteral",
-      "offset": 817,
-      "length": 1,
-      "value": "\"\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
-      "kind": "StringLiteral",
-      "offset": 879,
-      "length": 19,
-      "value": "\"wrist: \""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
-      "kind": "StringLiteral",
-      "offset": 896,
-      "length": 1,
-      "value": "\")\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1035,
-      "length": 2,
-      "value": "10"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1188,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1273,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1325,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1366,
-      "length": 1,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
-      "kind": "StringLiteral",
-      "offset": 1425,
-      "length": 75,
-      "value": "\"IBScreen(brightness: \""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
-      "kind": "StringLiteral",
-      "offset": 1460,
-      "length": 1,
-      "value": "\", duration:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
-      "kind": "StringLiteral",
-      "offset": 1482,
-      "length": 1,
-      "value": "\", wrist:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
-      "kind": "StringLiteral",
-      "offset": 1498,
-      "length": 1,
-      "value": "\")\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1573,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1599,
-      "length": 8,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1632,
-      "length": 8,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1665,
-      "length": 8,
-      "value": "3"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1700,
-      "length": 6,
-      "value": "4"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1733,
-      "length": 7,
-      "value": "5"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1573,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1599,
-      "length": 8,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1632,
-      "length": 8,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1665,
-      "length": 8,
-      "value": "3"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1700,
-      "length": 6,
-      "value": "4"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1733,
-      "length": 7,
-      "value": "5"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1573,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1599,
-      "length": 8,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1632,
-      "length": 8,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1665,
-      "length": 8,
-      "value": "3"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1700,
-      "length": 6,
-      "value": "4"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1733,
-      "length": 7,
-      "value": "5"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBSendTime.swift",
-      "kind": "IntegerLiteral",
-      "offset": 207,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBSendTime.swift",
-      "kind": "IntegerLiteral",
-      "offset": 264,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBSendTime.swift",
-      "kind": "IntegerLiteral",
-      "offset": 326,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBSendTime.swift",
-      "kind": "IntegerLiteral",
-      "offset": 369,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBSendTime.swift",
-      "kind": "IntegerLiteral",
-      "offset": 410,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBSendTime.swift",
-      "kind": "IntegerLiteral",
-      "offset": 452,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBSendTime.swift",
-      "kind": "IntegerLiteral",
-      "offset": 496,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBSendTime.swift",
-      "kind": "IntegerLiteral",
-      "offset": 540,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/IBTools.swift",
-      "kind": "StringLiteral",
-      "offset": 210,
-      "length": 10,
-      "value": "\"temp.pcm\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTargetStep.swift",
-      "kind": "IntegerLiteral",
-      "offset": 206,
-      "length": 4,
-      "value": "5000"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTargetStep.swift",
-      "kind": "IntegerLiteral",
-      "offset": 285,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTargetStep.swift",
-      "kind": "IntegerLiteral",
-      "offset": 364,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTargetStep.swift",
-      "kind": "IntegerLiteral",
-      "offset": 442,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTargetStep.swift",
-      "kind": "IntegerLiteral",
-      "offset": 503,
-      "length": 1,
-      "value": "7"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTargetStep.swift",
-      "kind": "IntegerLiteral",
-      "offset": 546,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTargetStep.swift",
-      "kind": "IntegerLiteral",
-      "offset": 550,
-      "length": 1,
-      "value": "3"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTargetStep.swift",
-      "kind": "IntegerLiteral",
-      "offset": 577,
-      "length": 1,
-      "value": "4"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTargetStep.swift",
-      "kind": "IntegerLiteral",
-      "offset": 607,
-      "length": 1,
-      "value": "5"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTargetStep.swift",
-      "kind": "IntegerLiteral",
-      "offset": 636,
-      "length": 1,
-      "value": "6"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTargetStep.swift",
-      "kind": "StringLiteral",
-      "offset": 700,
-      "length": 84,
-      "value": "\"IBTargetStep(value: \""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTargetStep.swift",
-      "kind": "StringLiteral",
-      "offset": 729,
-      "length": 1,
-      "value": "\", ring:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTargetStep.swift",
-      "kind": "StringLiteral",
-      "offset": 743,
-      "length": 1,
-      "value": "\", vibrate: \""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTargetStep.swift",
-      "kind": "StringLiteral",
-      "offset": 764,
-      "length": 1,
-      "value": "\", notice:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTargetStep.swift",
-      "kind": "StringLiteral",
-      "offset": 782,
-      "length": 1,
-      "value": "\")\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender.swift",
-      "kind": "Array",
-      "offset": 459,
-      "length": 2,
-      "value": "[]"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender.swift",
-      "kind": "IntegerLiteral",
-      "offset": 476,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender.swift",
-      "kind": "IntegerLiteral",
-      "offset": 547,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender.swift",
-      "kind": "Array",
-      "offset": 981,
-      "length": 2,
-      "value": "[]"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1004,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1028,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender.swift",
-      "kind": "BooleanLiteral",
-      "offset": 1061,
-      "length": 5,
-      "value": "false"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender.swift",
-      "kind": "StringLiteral",
-      "offset": 1204,
-      "length": 21,
-      "value": "\"deinit IBFileSender\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender.swift",
-      "kind": "StringLiteral",
-      "offset": 1342,
-      "length": 26,
-      "value": "\"手表接收文件成功\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender.swift",
-      "kind": "StringLiteral",
-      "offset": 1479,
-      "length": 26,
-      "value": "\"手表接收文件失败\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2708,
-      "length": 3,
-      "value": "495"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2778,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2899,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2999,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4292,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4316,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4333,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5116,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender.swift",
-      "kind": "StringLiteral",
-      "offset": 5172,
-      "length": 35,
-      "value": "\"当前有文件正在传输中...\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender.swift",
-      "kind": "BooleanLiteral",
-      "offset": 5528,
-      "length": 4,
-      "value": "true"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender.swift",
-      "kind": "Array",
-      "offset": 5829,
-      "length": 2,
-      "value": "[]"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender.swift",
-      "kind": "FloatLiteral",
-      "offset": 6073,
-      "length": 4,
-      "value": "10.0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender.swift",
-      "kind": "BooleanLiteral",
-      "offset": 6088,
-      "length": 5,
-      "value": "false"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender.swift",
-      "kind": "StringLiteral",
-      "offset": 6211,
-      "length": 20,
-      "value": "\"发送文件失败\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender.swift",
-      "kind": "StringLiteral",
-      "offset": 6290,
-      "length": 29,
-      "value": "\"IBFileSender创建定时器\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender.swift",
-      "kind": "StringLiteral",
-      "offset": 6492,
-      "length": 29,
-      "value": "\"IBFileSender销毁定时器\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWatchInfo.swift",
-      "kind": "IntegerLiteral",
-      "offset": 198,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWatchInfo.swift",
-      "kind": "IntegerLiteral",
-      "offset": 227,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWatchInfo.swift",
-      "kind": "IntegerLiteral",
-      "offset": 231,
-      "length": 1,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWatchInfo.swift",
-      "kind": "IntegerLiteral",
-      "offset": 269,
-      "length": 1,
-      "value": "3"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWatchInfo.swift",
-      "kind": "IntegerLiteral",
-      "offset": 273,
-      "length": 1,
-      "value": "5"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWatchInfo.swift",
-      "kind": "StringLiteral",
-      "offset": 291,
-      "length": 4,
-      "value": "\"%d\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWatchInfo.swift",
-      "kind": "StringLiteral",
-      "offset": 297,
-      "length": 3,
-      "value": "\".\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWatchInfo.swift",
-      "kind": "IntegerLiteral",
-      "offset": 328,
-      "length": 1,
-      "value": "6"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWatchInfo.swift",
-      "kind": "IntegerLiteral",
-      "offset": 332,
-      "length": 2,
-      "value": "11"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWatchInfo.swift",
-      "kind": "StringLiteral",
-      "offset": 343,
-      "length": 3,
-      "value": "\":\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWatchInfo.swift",
-      "kind": "IntegerLiteral",
-      "offset": 375,
-      "length": 2,
-      "value": "12"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWatchInfo.swift",
-      "kind": "IntegerLiteral",
-      "offset": 404,
-      "length": 2,
-      "value": "13"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWatchInfo.swift",
-      "kind": "IntegerLiteral",
-      "offset": 438,
-      "length": 2,
-      "value": "14"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWatchInfo.swift",
-      "kind": "IntegerLiteral",
-      "offset": 471,
-      "length": 2,
-      "value": "15"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWatchInfo.swift",
-      "kind": "IntegerLiteral",
-      "offset": 510,
-      "length": 2,
-      "value": "16"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWatchInfo.swift",
-      "kind": "IntegerLiteral",
-      "offset": 515,
-      "length": 2,
-      "value": "17"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWatchInfo.swift",
-      "kind": "StringLiteral",
-      "offset": 534,
-      "length": 4,
-      "value": "\"%d\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWatchInfo.swift",
-      "kind": "StringLiteral",
-      "offset": 540,
-      "length": 3,
-      "value": "\".\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWatchInfo.swift",
-      "kind": "IntegerLiteral",
-      "offset": 577,
-      "length": 2,
-      "value": "18"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWatchInfo.swift",
-      "kind": "IntegerLiteral",
-      "offset": 582,
-      "length": 2,
-      "value": "19"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWatchInfo.swift",
-      "kind": "StringLiteral",
-      "offset": 601,
-      "length": 4,
-      "value": "\"%d\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWatchInfo.swift",
-      "kind": "StringLiteral",
-      "offset": 607,
-      "length": 3,
-      "value": "\".\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/IBPeripheralUUID.swift",
-      "kind": "BooleanLiteral",
-      "offset": 413,
-      "length": 5,
-      "value": "false"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryCalorie.swift",
-      "kind": "Array",
-      "offset": 212,
-      "length": 2,
-      "value": "[]"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryCalorie.swift",
-      "kind": "Array",
-      "offset": 298,
-      "length": 2,
-      "value": "[]"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryCalorie.swift",
-      "kind": "IntegerLiteral",
-      "offset": 331,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryCalorie.swift",
-      "kind": "IntegerLiteral",
-      "offset": 354,
-      "length": 1,
-      "value": "8"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryCalorie.swift",
-      "kind": "IntegerLiteral",
-      "offset": 390,
-      "length": 1,
-      "value": "7"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryCalorie.swift",
-      "kind": "IntegerLiteral",
-      "offset": 485,
-      "length": 1,
-      "value": "3"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryCalorie.swift",
-      "kind": "IntegerLiteral",
-      "offset": 529,
-      "length": 1,
-      "value": "4"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryCalorie.swift",
-      "kind": "IntegerLiteral",
-      "offset": 535,
-      "length": 1,
-      "value": "7"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryCalorie.swift",
-      "kind": "IntegerLiteral",
-      "offset": 753,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryCalorie.swift",
-      "kind": "IntegerLiteral",
-      "offset": 804,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBMp3.swift",
-      "kind": "StringLiteral",
-      "offset": 210,
-      "length": 2,
-      "value": "\"\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBMp3.swift",
-      "kind": "StringLiteral",
-      "offset": 264,
-      "length": 2,
-      "value": "\"\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBMp3.swift",
-      "kind": "IntegerLiteral",
-      "offset": 330,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBMp3.swift",
-      "kind": "StringLiteral",
-      "offset": 461,
-      "length": 2,
-      "value": "\"\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBMp3.swift",
-      "kind": "IntegerLiteral",
-      "offset": 515,
-      "length": 1,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBMp3.swift",
-      "kind": "IntegerLiteral",
-      "offset": 571,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryStand.swift",
+      "kind": "IntegerLiteral",
+      "offset": 683,
       "length": 1,
       "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBManager.swift",
-      "kind": "StringLiteral",
-      "offset": 897,
-      "length": 8,
-      "value": "\"1.0.23\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBManager.swift",
-      "kind": "BooleanLiteral",
-      "offset": 961,
-      "length": 5,
-      "value": "false"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
-      "kind": "StringLiteral",
-      "offset": 221,
-      "length": 2,
-      "value": "\"\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
-      "kind": "BooleanLiteral",
-      "offset": 273,
-      "length": 4,
-      "value": "true"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
-      "kind": "Array",
-      "offset": 451,
-      "length": 43,
-      "value": "[\"文心一言\", \"ChatGPT\", \"KIMI\", \":豆包\"]"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
-      "kind": "StringLiteral",
-      "offset": 514,
-      "length": 29,
-      "value": "\"询问模型是否可用:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
-      "kind": "BooleanLiteral",
-      "offset": 612,
-      "length": 4,
-      "value": "true"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
-      "kind": "IntegerLiteral",
-      "offset": 636,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
-      "kind": "StringLiteral",
-      "offset": 664,
-      "length": 58,
-      "value": "\"sk-proj-04ogvrZQqyaiv1OWw8OZT3BlbkFJG9Gyr8oFvRdmr3oXQNbX\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
-      "kind": "Array",
-      "offset": 1043,
-      "length": 43,
-      "value": "[\"文心一言\", \"ChatGPT\", \"KIMI\", \":豆包\"]"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
-      "kind": "StringLiteral",
-      "offset": 1106,
-      "length": 17,
-      "value": "\"使用模型:\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1227,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
-      "kind": "StringLiteral",
-      "offset": 1398,
-      "length": 2,
-      "value": "\"\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBVibrateSound.swift",
       "kind": "IntegerLiteral",
-      "offset": 1420,
+      "offset": 277,
       "length": 1,
       "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBVibrateSound.swift",
       "kind": "IntegerLiteral",
-      "offset": 1488,
+      "offset": 1024,
       "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
-      "kind": "StringLiteral",
-      "offset": 1542,
-      "length": 58,
-      "value": "\"sk-proj-04ogvrZQqyaiv1OWw8OZT3BlbkFJG9Gyr8oFvRdmr3oXQNbX\""
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBVibrateSound.swift",
       "kind": "IntegerLiteral",
-      "offset": 1743,
+      "offset": 1096,
       "length": 1,
-      "value": "2"
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBVibrateSound.swift",
       "kind": "IntegerLiteral",
-      "offset": 1810,
+      "offset": 1168,
       "length": 1,
-      "value": "3"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
-      "kind": "Array",
-      "offset": 2028,
-      "length": 2,
-      "value": "[]"
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBVibrateSound.swift",
       "kind": "IntegerLiteral",
-      "offset": 2407,
+      "offset": 1247,
       "length": 1,
       "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBVibrateSound.swift",
       "kind": "IntegerLiteral",
-      "offset": 2648,
+      "offset": 1355,
       "length": 1,
       "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
-      "kind": "StringLiteral",
-      "offset": 2674,
-      "length": 15,
-      "value": "\"sbc2pcm失败\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAddressBook.swift",
       "kind": "IntegerLiteral",
-      "offset": 2755,
+      "offset": 237,
       "length": 1,
       "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
-      "kind": "StringLiteral",
-      "offset": 2967,
-      "length": 5,
-      "value": "\"pcm\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAddressBook.swift",
+      "kind": "Array",
+      "offset": 462,
+      "length": 2,
+      "value": "[]"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAddressBook.swift",
       "kind": "StringLiteral",
-      "offset": 2985,
-      "length": 7,
-      "value": "\"16000\""
+      "offset": 1545,
+      "length": 2,
+      "value": "\"\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
       "kind": "StringLiteral",
-      "offset": 2999,
-      "length": 7,
-      "value": "\"zh-cn\""
+      "offset": 146,
+      "length": 8,
+      "value": "\"dialID\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
-      "kind": "IntegerLiteral",
-      "offset": 3128,
-      "length": 1,
-      "value": "0"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
+      "kind": "StringLiteral",
+      "offset": 173,
+      "length": 8,
+      "value": "\"action\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
-      "kind": "IntegerLiteral",
-      "offset": 3236,
-      "length": 1,
-      "value": "1"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
+      "kind": "StringLiteral",
+      "offset": 204,
+      "length": 12,
+      "value": "\"motionMode\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
       "kind": "StringLiteral",
-      "offset": 3453,
-      "length": 2,
-      "value": "\"\""
+      "offset": 237,
+      "length": 10,
+      "value": "\"language\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
-      "kind": "IntegerLiteral",
-      "offset": 3529,
-      "length": 1,
-      "value": "0"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
+      "kind": "StringLiteral",
+      "offset": 265,
+      "length": 7,
+      "value": "\"value\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
       "kind": "StringLiteral",
-      "offset": 3787,
-      "length": 40,
-      "value": "\"\""
+      "offset": 289,
+      "length": 6,
+      "value": "\"file\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
       "kind": "StringLiteral",
-      "offset": 3801,
-      "length": 1,
-      "value": "\" : \""
+      "offset": 318,
+      "length": 12,
+      "value": "\"targetStep\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
       "kind": "StringLiteral",
-      "offset": 3823,
-      "length": 2,
-      "value": "\"\""
+      "offset": 348,
+      "length": 7,
+      "value": "\"sleep\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
       "kind": "StringLiteral",
-      "offset": 3826,
-      "length": 2,
-      "value": "\"\""
+      "offset": 373,
+      "length": 7,
+      "value": "\"water\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
       "kind": "StringLiteral",
-      "offset": 3871,
+      "offset": 398,
       "length": 7,
-      "value": "\"start\""
+      "value": "\"clock\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
       "kind": "StringLiteral",
-      "offset": 3905,
-      "length": 2,
-      "value": "\"\""
+      "offset": 427,
+      "length": 11,
+      "value": "\"heartRate\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
       "kind": "StringLiteral",
-      "offset": 3956,
-      "length": 5,
-      "value": "\"end\""
+      "offset": 462,
+      "length": 13,
+      "value": "\"bloodOxygen\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
       "kind": "StringLiteral",
-      "offset": 4170,
+      "offset": 494,
       "length": 8,
-      "value": "\"middle\""
+      "value": "\"screen\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4297,
-      "length": 1,
-      "value": "2"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
+      "kind": "StringLiteral",
+      "offset": 527,
+      "length": 14,
+      "value": "\"vibrateSound\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
       "kind": "StringLiteral",
-      "offset": 4345,
-      "length": 2,
-      "value": "\"\""
+      "offset": 565,
+      "length": 13,
+      "value": "\"otherTarget\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
-      "kind": "BooleanLiteral",
-      "offset": 4742,
-      "length": 4,
-      "value": "true"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
+      "kind": "StringLiteral",
+      "offset": 602,
+      "length": 13,
+      "value": "\"trainTarget\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
       "kind": "StringLiteral",
-      "offset": 4765,
-      "length": 32,
-      "value": "\"aWGKrBWaijsKD5eEsVVU5rjWPI1sVy\""
+      "offset": 637,
+      "length": 11,
+      "value": "\"sendPhone\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
-      "kind": "BooleanLiteral",
-      "offset": 4936,
-      "length": 4,
-      "value": "true"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
+      "kind": "StringLiteral",
+      "offset": 669,
+      "length": 10,
+      "value": "\"sendTime\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
       "kind": "StringLiteral",
-      "offset": 4964,
-      "length": 14,
-      "value": "\"281106AFB0F7\""
+      "offset": 701,
+      "length": 11,
+      "value": "\"auxiliary\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
       "kind": "StringLiteral",
-      "offset": 5004,
-      "length": 34,
-      "value": "\"HHosiYUNdG42t1cTgKOzIUPOvAVMI2QT\""
+      "offset": 733,
+      "length": 10,
+      "value": "\"userInfo\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
-      "kind": "IntegerLiteral",
-      "offset": 5277,
-      "length": 5,
-      "value": "50021"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
+      "kind": "StringLiteral",
+      "offset": 763,
+      "length": 9,
+      "value": "\"weather\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
       "kind": "StringLiteral",
-      "offset": 5564,
-      "length": 2,
-      "value": "\"\""
+      "offset": 796,
+      "length": 13,
+      "value": "\"addressBook\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
       "kind": "StringLiteral",
-      "offset": 5655,
-      "length": 14,
-      "value": "\"281106AFB0F7\""
+      "offset": 825,
+      "length": 5,
+      "value": "\"epo\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
       "kind": "StringLiteral",
-      "offset": 5694,
-      "length": 22,
-      "value": "\"pafOCKLiUbeVHbdZlddH\""
+      "offset": 846,
+      "length": 5,
+      "value": "\"ota\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAiManager.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
       "kind": "StringLiteral",
-      "offset": 5742,
-      "length": 34,
-      "value": "\"HHosiYUNdG42t1cTgKOzIUPOvAVMI2QT\""
+      "offset": 867,
+      "length": 5,
+      "value": "\"mp3\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
+      "kind": "StringLiteral",
+      "offset": 889,
+      "length": 6,
+      "value": "\"dial\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender+Ota.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
       "kind": "StringLiteral",
-      "offset": 987,
-      "length": 20,
-      "value": "\"读取文件失败\""
+      "offset": 916,
+      "length": 10,
+      "value": "\"dialFile\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender+Ota.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
       "kind": "StringLiteral",
-      "offset": 1134,
-      "length": 17,
-      "value": "\"已取消发送\""
+      "offset": 949,
+      "length": 12,
+      "value": "\"deleteFile\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender+Ota.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
       "kind": "StringLiteral",
-      "offset": 1714,
-      "length": 23,
-      "value": "\"\""
+      "offset": 983,
+      "length": 11,
+      "value": "\"fetchFils\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender+Ota.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
       "kind": "StringLiteral",
-      "offset": 1723,
-      "length": 1,
-      "value": "\" : \""
+      "offset": 1014,
+      "length": 9,
+      "value": "\"aiValid\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender+Ota.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
       "kind": "StringLiteral",
-      "offset": 1736,
-      "length": 2,
-      "value": "\"\""
+      "offset": 1046,
+      "length": 12,
+      "value": "\"aiResponse\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender+Ota.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
       "kind": "StringLiteral",
-      "offset": 1945,
-      "length": 38,
-      "value": "\"发送文件超时,发送失败!\""
+      "offset": 1087,
+      "length": 13,
+      "value": "\"setPassword\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender+Ota.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
       "kind": "StringLiteral",
-      "offset": 2186,
-      "length": 29,
-      "value": "\"文件内容发送结束...\""
+      "offset": 1120,
+      "length": 15,
+      "value": "\"setPushConfig\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender+Ota.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
       "kind": "StringLiteral",
-      "offset": 2704,
-      "length": 29,
-      "value": "\"发送文件校验码失败\""
+      "offset": 1161,
+      "length": 15,
+      "value": "\"setSosContact\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPhoneInfo.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
       "kind": "StringLiteral",
-      "offset": 212,
-      "length": 8,
-      "value": "\"iphone\""
+      "offset": 1201,
+      "length": 14,
+      "value": "\"sendSchedule\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPhoneInfo.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
       "kind": "IntegerLiteral",
-      "offset": 291,
+      "offset": 4889,
       "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
+      "kind": "IntegerLiteral",
+      "offset": 4915,
+      "length": 7,
       "value": "1"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPhoneInfo.swift",
-      "kind": "StringLiteral",
-      "offset": 479,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
+      "kind": "IntegerLiteral",
+      "offset": 4947,
       "length": 4,
-      "value": "\"pn\""
+      "value": "2"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPhoneInfo.swift",
-      "kind": "StringLiteral",
-      "offset": 504,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
+      "kind": "IntegerLiteral",
+      "offset": 5024,
+      "length": 1,
+      "value": "1"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
+      "kind": "IntegerLiteral",
+      "offset": 5054,
+      "length": 3,
+      "value": "2"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
+      "kind": "IntegerLiteral",
+      "offset": 5088,
       "length": 4,
-      "value": "\"tp\""
+      "value": "3"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPhoneInfo.swift",
-      "kind": "StringLiteral",
-      "offset": 528,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
+      "kind": "IntegerLiteral",
+      "offset": 5118,
+      "length": 6,
+      "value": "4"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
+      "kind": "IntegerLiteral",
+      "offset": 5145,
+      "length": 3,
+      "value": "5"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
+      "kind": "IntegerLiteral",
+      "offset": 5446,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
+      "kind": "IntegerLiteral",
+      "offset": 5472,
       "length": 5,
-      "value": "\"mac\""
+      "value": "1"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPhoneInfo.swift",
-      "kind": "StringLiteral",
-      "offset": 479,
-      "length": 4,
-      "value": "\"pn\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
+      "kind": "IntegerLiteral",
+      "offset": 5508,
+      "length": 11,
+      "value": "2"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPhoneInfo.swift",
-      "kind": "StringLiteral",
-      "offset": 504,
-      "length": 4,
-      "value": "\"tp\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
+      "kind": "IntegerLiteral",
+      "offset": 5544,
+      "length": 5,
+      "value": "3"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPhoneInfo.swift",
-      "kind": "StringLiteral",
-      "offset": 528,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
+      "kind": "IntegerLiteral",
+      "offset": 5580,
+      "length": 11,
+      "value": "4"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
+      "kind": "IntegerLiteral",
+      "offset": 5619,
+      "length": 7,
+      "value": "5"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
+      "kind": "IntegerLiteral",
+      "offset": 5651,
+      "length": 7,
+      "value": "6"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
+      "kind": "IntegerLiteral",
+      "offset": 5683,
       "length": 5,
-      "value": "\"mac\""
+      "value": "7"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
+      "kind": "IntegerLiteral",
+      "offset": 5713,
+      "length": 6,
+      "value": "8"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
+      "kind": "IntegerLiteral",
+      "offset": 5744,
+      "length": 6,
+      "value": "9"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
+      "kind": "IntegerLiteral",
+      "offset": 5775,
+      "length": 11,
+      "value": "10"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
+      "kind": "IntegerLiteral",
+      "offset": 5814,
+      "length": 5,
+      "value": "11"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
+      "kind": "IntegerLiteral",
+      "offset": 5844,
+      "length": 5,
+      "value": "12"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
+      "kind": "IntegerLiteral",
+      "offset": 5874,
+      "length": 9,
+      "value": "13"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
+      "kind": "IntegerLiteral",
+      "offset": 5908,
+      "length": 5,
+      "value": "14"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBParameter.swift",
+      "kind": "IntegerLiteral",
+      "offset": 5938,
+      "length": 7,
+      "value": "15"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBPairling.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOtherTarget.swift",
       "kind": "IntegerLiteral",
-      "offset": 190,
+      "offset": 228,
       "length": 1,
-      "value": "1"
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBPairling.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOtherTarget.swift",
       "kind": "IntegerLiteral",
-      "offset": 196,
-      "length": 4,
-      "value": "0x05"
+      "offset": 296,
+      "length": 1,
+      "value": "1"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBPairling.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOtherTarget.swift",
       "kind": "IntegerLiteral",
-      "offset": 215,
+      "offset": 365,
       "length": 1,
-      "value": "2"
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBPairling.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOtherTarget.swift",
       "kind": "IntegerLiteral",
-      "offset": 221,
-      "length": 4,
-      "value": "0x11"
+      "offset": 439,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBPairling.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOtherTarget.swift",
       "kind": "IntegerLiteral",
-      "offset": 316,
+      "offset": 517,
       "length": 1,
       "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBPairling.swift",
-      "kind": "Array",
-      "offset": 346,
-      "length": 67,
-      "value": "[\"拒绝配对\", \"确认配对\", \"确认解绑其他手机\", \"其他\"]"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOtherTarget.swift",
+      "kind": "IntegerLiteral",
+      "offset": 597,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBPairling.swift",
-      "kind": "StringLiteral",
-      "offset": 437,
-      "length": 29,
-      "value": "\"收到确认配对消息:\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOtherTarget.swift",
+      "kind": "IntegerLiteral",
+      "offset": 676,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBPairling.swift",
-      "kind": "BooleanLiteral",
-      "offset": 498,
-      "length": 4,
-      "value": "true"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAbout.swift",
+      "kind": "IntegerLiteral",
+      "offset": 259,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBPairling.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAbout.swift",
       "kind": "IntegerLiteral",
-      "offset": 535,
+      "offset": 316,
       "length": 1,
       "value": "1"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBPairling.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAbout.swift",
       "kind": "IntegerLiteral",
-      "offset": 541,
-      "length": 4,
-      "value": "0x05"
+      "offset": 372,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBPairling.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAbout.swift",
       "kind": "IntegerLiteral",
-      "offset": 560,
+      "offset": 430,
       "length": 1,
-      "value": "2"
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAbout.swift",
+      "kind": "StringLiteral",
+      "offset": 487,
+      "length": 2,
+      "value": "\"\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryDistance.swift",
+      "kind": "Array",
+      "offset": 221,
+      "length": 2,
+      "value": "[]"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBPairling.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryDistance.swift",
       "kind": "IntegerLiteral",
-      "offset": 566,
-      "length": 3,
-      "value": "0x1"
+      "offset": 762,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBPairling.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryDistance.swift",
       "kind": "IntegerLiteral",
-      "offset": 681,
+      "offset": 811,
       "length": 1,
       "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBPairling.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
       "kind": "Array",
-      "offset": 711,
-      "length": 31,
-      "value": "[\"拒绝解绑\", \"确认解绑\"]"
+      "offset": 256,
+      "length": 2,
+      "value": "[]"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBPairling.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
       "kind": "StringLiteral",
-      "offset": 766,
-      "length": 27,
-      "value": "\"收到确认解绑消息 \""
+      "offset": 325,
+      "length": 6,
+      "value": "\"recs\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBPairling.swift",
-      "kind": "BooleanLiteral",
-      "offset": 825,
-      "length": 4,
-      "value": "true"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
+      "kind": "IntegerLiteral",
+      "offset": 506,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBPairling.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
       "kind": "IntegerLiteral",
-      "offset": 862,
+      "offset": 890,
       "length": 1,
-      "value": "1"
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBPairling.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
       "kind": "IntegerLiteral",
-      "offset": 868,
-      "length": 4,
-      "value": "0x05"
+      "offset": 966,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBPairling.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
       "kind": "IntegerLiteral",
-      "offset": 887,
+      "offset": 1042,
       "length": 1,
-      "value": "2"
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBPairling.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
       "kind": "IntegerLiteral",
-      "offset": 893,
-      "length": 4,
-      "value": "0x10"
+      "offset": 1158,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBPairling.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
       "kind": "IntegerLiteral",
-      "offset": 1015,
+      "offset": 1310,
       "length": 1,
       "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBPairling.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
       "kind": "IntegerLiteral",
-      "offset": 1045,
+      "offset": 1382,
       "length": 1,
-      "value": "1"
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1456,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1673,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBPairling.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
       "kind": "StringLiteral",
-      "offset": 1148,
-      "length": 17,
-      "value": "\"IOTBletooth.mac\""
+      "offset": 2103,
+      "length": 5,
+      "value": "\"src\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBPairling.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
       "kind": "StringLiteral",
-      "offset": 1263,
-      "length": 26,
-      "value": "\"收到配对成功消息\""
+      "offset": 2134,
+      "length": 4,
+      "value": "\"bt\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBPairling.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
       "kind": "StringLiteral",
-      "offset": 1425,
-      "length": 26,
-      "value": "\"收到配对失败消息\""
+      "offset": 2167,
+      "length": 4,
+      "value": "\"ty\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBPairling.swift",
-      "kind": "BooleanLiteral",
-      "offset": 1496,
-      "length": 5,
-      "value": "false"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
+      "kind": "StringLiteral",
+      "offset": 2192,
+      "length": 4,
+      "value": "\"st\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBPairling.swift",
-      "kind": "BooleanLiteral",
-      "offset": 1597,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
+      "kind": "StringLiteral",
+      "offset": 2217,
       "length": 4,
-      "value": "true"
+      "value": "\"sp\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBPairling.swift",
-      "kind": "BooleanLiteral",
-      "offset": 1627,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
+      "kind": "StringLiteral",
+      "offset": 2248,
       "length": 5,
-      "value": "false"
+      "value": "\"tgt\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBPairling.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1830,
-      "length": 1,
-      "value": "1"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
+      "kind": "StringLiteral",
+      "offset": 2276,
+      "length": 4,
+      "value": "\"tg\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBPairling.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1865,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
+      "kind": "StringLiteral",
+      "offset": 2305,
       "length": 4,
-      "value": "2000"
+      "value": "\"pg\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBPairling.swift",
-      "kind": "BooleanLiteral",
-      "offset": 2258,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
+      "kind": "StringLiteral",
+      "offset": 2334,
       "length": 4,
-      "value": "true"
+      "value": "\"du\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
+      "kind": "StringLiteral",
+      "offset": 2362,
+      "length": 4,
+      "value": "\"ca\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
+      "kind": "StringLiteral",
+      "offset": 2391,
+      "length": 4,
+      "value": "\"dl\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
+      "kind": "StringLiteral",
+      "offset": 2421,
+      "length": 4,
+      "value": "\"hr\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
+      "kind": "StringLiteral",
+      "offset": 2446,
+      "length": 5,
+      "value": "\"stp\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
+      "kind": "StringLiteral",
+      "offset": 2481,
+      "length": 4,
+      "value": "\"tl\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
+      "kind": "StringLiteral",
+      "offset": 2508,
+      "length": 5,
+      "value": "\"cir\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBaseTraining.swift",
+      "kind": "StringLiteral",
+      "offset": 2539,
+      "length": 5,
+      "value": "\"alt\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBDeleteFile.swift",
       "kind": "Array",
-      "offset": 203,
+      "offset": 332,
       "length": 2,
       "value": "[]"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTarinState.swift",
+      "kind": "IntegerLiteral",
+      "offset": 250,
+      "length": 1,
+      "value": "1"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTarinState.swift",
       "kind": "IntegerLiteral",
-      "offset": 265,
+      "offset": 316,
       "length": 1,
       "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
-      "kind": "Array",
-      "offset": 345,
-      "length": 2,
-      "value": "[]"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAiValid.swift",
+      "kind": "BooleanLiteral",
+      "offset": 233,
+      "length": 4,
+      "value": "true"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBUserInfo.swift",
       "kind": "IntegerLiteral",
-      "offset": 373,
+      "offset": 191,
       "length": 1,
       "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBUserInfo.swift",
       "kind": "IntegerLiteral",
-      "offset": 429,
+      "offset": 259,
       "length": 1,
-      "value": "1"
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBUserInfo.swift",
       "kind": "IntegerLiteral",
-      "offset": 469,
+      "offset": 317,
       "length": 1,
       "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBUserInfo.swift",
       "kind": "IntegerLiteral",
-      "offset": 488,
+      "offset": 375,
       "length": 1,
       "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBUserInfo.swift",
       "kind": "IntegerLiteral",
-      "offset": 543,
+      "offset": 425,
       "length": 1,
-      "value": "1"
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBUserInfo.swift",
       "kind": "IntegerLiteral",
-      "offset": 599,
+      "offset": 499,
       "length": 1,
-      "value": "1"
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBUserInfo.swift",
       "kind": "IntegerLiteral",
-      "offset": 712,
+      "offset": 556,
       "length": 1,
-      "value": "2"
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBUserInfo.swift",
       "kind": "IntegerLiteral",
-      "offset": 724,
+      "offset": 635,
       "length": 1,
-      "value": "1"
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
-      "kind": "IntegerLiteral",
-      "offset": 844,
-      "length": 1,
-      "value": "0"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryHeartRate.swift",
+      "kind": "Array",
+      "offset": 215,
+      "length": 2,
+      "value": "[]"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryHeartRate.swift",
       "kind": "IntegerLiteral",
-      "offset": 892,
+      "offset": 751,
       "length": 1,
-      "value": "1"
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryHeartRate.swift",
       "kind": "IntegerLiteral",
-      "offset": 945,
+      "offset": 796,
       "length": 1,
-      "value": "2"
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
-      "kind": "IntegerLiteral",
-      "offset": 949,
-      "length": 1,
-      "value": "5"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBloodOxygen.swift",
+      "kind": "Array",
+      "offset": 220,
+      "length": 2,
+      "value": "[]"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBloodOxygen.swift",
       "kind": "IntegerLiteral",
-      "offset": 1000,
+      "offset": 762,
       "length": 1,
-      "value": "6"
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBloodOxygen.swift",
       "kind": "IntegerLiteral",
-      "offset": 1004,
+      "offset": 817,
       "length": 1,
-      "value": "9"
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1076,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
+      "kind": "Array",
+      "offset": 397,
       "length": 2,
-      "value": "10"
+      "value": "[]"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1102,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
+      "kind": "Array",
+      "offset": 589,
       "length": 2,
-      "value": "11"
+      "value": "[]"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1147,
-      "length": 1,
-      "value": "1"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
+      "kind": "Dictionary",
+      "offset": 3015,
+      "length": 3,
+      "value": "[]"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1219,
-      "length": 2,
-      "value": "12"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
+      "kind": "StringLiteral",
+      "offset": 4640,
+      "length": 36,
+      "value": "\"IOTBluetooth.ConnectStateDidChange\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1245,
-      "length": 2,
-      "value": "13"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
+      "kind": "StringLiteral",
+      "offset": 4810,
+      "length": 24,
+      "value": "\"IOTBluetooth.TakePhoto\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1323,
-      "length": 2,
-      "value": "14"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
+      "kind": "StringLiteral",
+      "offset": 4913,
+      "length": 22,
+      "value": "\"IOTBluetooth.weather\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1349,
-      "length": 2,
-      "value": "15"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
+      "kind": "StringLiteral",
+      "offset": 5008,
+      "length": 25,
+      "value": "\"IOTBluetooth.FindDevice\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1425,
-      "length": 2,
-      "value": "16"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
+      "kind": "StringLiteral",
+      "offset": 5162,
+      "length": 32,
+      "value": "\"IOTBluetooth.TrainStateChanged\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1451,
-      "length": 2,
-      "value": "17"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
+      "kind": "StringLiteral",
+      "offset": 5338,
+      "length": 27,
+      "value": "\"IOTBluetooth.TrainingData\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1524,
-      "length": 2,
-      "value": "18"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBNotify.swift",
+      "kind": "StringLiteral",
+      "offset": 5473,
+      "length": 32,
+      "value": "\"IOTBluetooth.TileReceiveFinish\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPassword.swift",
       "kind": "IntegerLiteral",
-      "offset": 1550,
+      "offset": 211,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPassword.swift",
+      "kind": "StringLiteral",
+      "offset": 263,
       "length": 2,
-      "value": "19"
+      "value": "\"\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Any.swift",
       "kind": "IntegerLiteral",
-      "offset": 1623,
-      "length": 2,
-      "value": "20"
+      "offset": 1396,
+      "length": 10,
+      "value": "0b11111111"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
-      "kind": "Array",
-      "offset": 1676,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Any.swift",
+      "kind": "StringLiteral",
+      "offset": 3394,
+      "length": 6,
+      "value": "\"%02x\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Any.swift",
+      "kind": "StringLiteral",
+      "offset": 3424,
       "length": 2,
-      "value": "[]"
+      "value": "\"\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1738,
-      "length": 1,
-      "value": "5"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Any.swift",
+      "kind": "StringLiteral",
+      "offset": 3595,
+      "length": 6,
+      "value": "\"%02x\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1829,
-      "length": 1,
-      "value": "3"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Any.swift",
+      "kind": "StringLiteral",
+      "offset": 3625,
+      "length": 2,
+      "value": "\"\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBCode.swift",
       "kind": "IntegerLiteral",
-      "offset": 1862,
-      "length": 1,
-      "value": "4"
+      "offset": 311,
+      "length": 4,
+      "value": "1000"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBCode.swift",
       "kind": "IntegerLiteral",
-      "offset": 1967,
-      "length": 1,
-      "value": "5"
+      "offset": 356,
+      "length": 4,
+      "value": "1001"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBCode.swift",
       "kind": "IntegerLiteral",
-      "offset": 2148,
-      "length": 1,
-      "value": "2"
+      "offset": 406,
+      "length": 4,
+      "value": "1002"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBCode.swift",
       "kind": "IntegerLiteral",
-      "offset": 2352,
-      "length": 1,
-      "value": "0"
+      "offset": 454,
+      "length": 4,
+      "value": "1003"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBCode.swift",
       "kind": "IntegerLiteral",
-      "offset": 2464,
-      "length": 1,
-      "value": "0"
+      "offset": 499,
+      "length": 4,
+      "value": "1004"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBCode.swift",
       "kind": "IntegerLiteral",
-      "offset": 2538,
-      "length": 1,
-      "value": "0"
+      "offset": 543,
+      "length": 4,
+      "value": "1005"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBFetchFile.swift",
       "kind": "IntegerLiteral",
-      "offset": 2610,
+      "offset": 1880,
       "length": 1,
       "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2689,
-      "length": 1,
-      "value": "0"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBFetchFile.swift",
+      "kind": "StringLiteral",
+      "offset": 1925,
+      "length": 2,
+      "value": "\"\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBFetchFile.swift",
       "kind": "IntegerLiteral",
-      "offset": 2700,
+      "offset": 1981,
       "length": 1,
       "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
-      "kind": "StringLiteral",
-      "offset": 3309,
-      "length": 45,
-      "value": "\"IBSleepTime(hour: \""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
-      "kind": "StringLiteral",
-      "offset": 3335,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBFetchFile.swift",
+      "kind": "IntegerLiteral",
+      "offset": 2146,
       "length": 1,
-      "value": "\", minute:\""
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBFetchFile.swift",
       "kind": "StringLiteral",
-      "offset": 3353,
-      "length": 1,
+      "offset": 2191,
+      "length": 2,
       "value": "\"\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBFetchFile.swift",
       "kind": "IntegerLiteral",
-      "offset": 3460,
+      "offset": 2247,
       "length": 1,
       "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
-      "kind": "IntegerLiteral",
-      "offset": 3843,
-      "length": 1,
-      "value": "0"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBFetchFile.swift",
+      "kind": "StringLiteral",
+      "offset": 2288,
+      "length": 2,
+      "value": "\"\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAiResponse.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBFetchFile.swift",
       "kind": "IntegerLiteral",
-      "offset": 318,
+      "offset": 2350,
       "length": 1,
       "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAiResponse.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainTarget.swift",
       "kind": "StringLiteral",
-      "offset": 367,
-      "length": 2,
-      "value": "\"\""
+      "offset": 605,
+      "length": 4,
+      "value": "\"ty\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAiResponse.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainTarget.swift",
       "kind": "StringLiteral",
-      "offset": 455,
-      "length": 45,
-      "value": "\"IBAiResponse(type: \""
+      "offset": 634,
+      "length": 4,
+      "value": "\"di\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAiResponse.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainTarget.swift",
       "kind": "StringLiteral",
-      "offset": 482,
-      "length": 1,
-      "value": "\", value:\""
+      "offset": 662,
+      "length": 4,
+      "value": "\"ca\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAiResponse.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainTarget.swift",
       "kind": "StringLiteral",
-      "offset": 498,
-      "length": 1,
-      "value": "\")\""
+      "offset": 687,
+      "length": 4,
+      "value": "\"tm\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBClock.swift",
-      "kind": "Array",
-      "offset": 212,
-      "length": 2,
-      "value": "[]"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainTarget.swift",
+      "kind": "StringLiteral",
+      "offset": 712,
+      "length": 4,
+      "value": "\"st\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBClock.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainTarget.swift",
       "kind": "IntegerLiteral",
-      "offset": 685,
+      "offset": 996,
       "length": 1,
       "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBClock.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainTarget.swift",
       "kind": "IntegerLiteral",
-      "offset": 729,
+      "offset": 1035,
       "length": 1,
-      "value": "0"
+      "value": "1"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBClock.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainTarget.swift",
       "kind": "IntegerLiteral",
-      "offset": 775,
+      "offset": 1068,
       "length": 1,
-      "value": "0"
+      "value": "2"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBClock.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTrainTarget.swift",
       "kind": "IntegerLiteral",
-      "offset": 844,
+      "offset": 1101,
       "length": 1,
-      "value": "0"
+      "value": "4"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBClock.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBSender.swift",
       "kind": "Array",
-      "offset": 1022,
-      "length": 3,
-      "value": "[0]"
+      "offset": 351,
+      "length": 2,
+      "value": "[]"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/JSON.swift",
-      "kind": "StringLiteral",
-      "offset": 321,
-      "length": 22,
-      "value": "\"无效的 JSONObject\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBSender.swift",
+      "kind": "Array",
+      "offset": 3623,
+      "length": 2,
+      "value": "[]"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/JSON.swift",
-      "kind": "StringLiteral",
-      "offset": 735,
-      "length": 22,
-      "value": "\"无效的 JSONObject\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryGps.swift",
+      "kind": "Array",
+      "offset": 222,
+      "length": 2,
+      "value": "[]"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHeartRate.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryGps.swift",
       "kind": "IntegerLiteral",
-      "offset": 338,
+      "offset": 816,
       "length": 1,
-      "value": "1"
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHeartRate.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryGps.swift",
       "kind": "IntegerLiteral",
-      "offset": 441,
+      "offset": 903,
       "length": 1,
       "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHeartRate.swift",
-      "kind": "IntegerLiteral",
-      "offset": 505,
-      "length": 3,
-      "value": "100"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHeartRate.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryGps.swift",
       "kind": "IntegerLiteral",
-      "offset": 616,
+      "offset": 990,
       "length": 1,
       "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHeartRate.swift",
-      "kind": "IntegerLiteral",
-      "offset": 654,
-      "length": 1,
-      "value": "1"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBurning.swift",
+      "kind": "Array",
+      "offset": 209,
+      "length": 2,
+      "value": "[]"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHeartRate.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBurning.swift",
       "kind": "IntegerLiteral",
-      "offset": 690,
+      "offset": 745,
       "length": 1,
-      "value": "2"
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHeartRate.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryBurning.swift",
       "kind": "IntegerLiteral",
-      "offset": 718,
-      "length": 1,
-      "value": "3"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHeartRate.swift",
-      "kind": "StringLiteral",
-      "offset": 779,
-      "length": 92,
-      "value": "\"IBHeartRate(rate: \""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHeartRate.swift",
-      "kind": "StringLiteral",
-      "offset": 805,
+      "offset": 796,
       "length": 1,
-      "value": "\", state:\""
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHeartRate.swift",
-      "kind": "StringLiteral",
-      "offset": 821,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWater.swift",
+      "kind": "IntegerLiteral",
+      "offset": 258,
       "length": 1,
-      "value": "\", higherOrLower:\""
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHeartRate.swift",
-      "kind": "StringLiteral",
-      "offset": 853,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWater.swift",
+      "kind": "IntegerLiteral",
+      "offset": 352,
       "length": 1,
-      "value": "\", value:\""
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHeartRate.swift",
-      "kind": "StringLiteral",
-      "offset": 869,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWater.swift",
+      "kind": "IntegerLiteral",
+      "offset": 422,
       "length": 1,
-      "value": "\")\""
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHeartRate.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWater.swift",
       "kind": "IntegerLiteral",
-      "offset": 968,
+      "offset": 503,
       "length": 1,
       "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHeartRate.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWater.swift",
       "kind": "IntegerLiteral",
-      "offset": 995,
-      "length": 4,
-      "value": "1"
+      "offset": 514,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHeartRate.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWater.swift",
       "kind": "IntegerLiteral",
-      "offset": 1025,
-      "length": 4,
-      "value": "2"
+      "offset": 639,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHeartRate.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWater.swift",
       "kind": "IntegerLiteral",
-      "offset": 1056,
-      "length": 5,
-      "value": "3"
+      "offset": 650,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHeartRate.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWater.swift",
       "kind": "IntegerLiteral",
-      "offset": 968,
+      "offset": 1122,
       "length": 1,
       "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHeartRate.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWater.swift",
       "kind": "IntegerLiteral",
-      "offset": 995,
-      "length": 4,
+      "offset": 1149,
+      "length": 5,
       "value": "1"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHeartRate.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWater.swift",
       "kind": "IntegerLiteral",
-      "offset": 1025,
-      "length": 4,
+      "offset": 1180,
+      "length": 5,
       "value": "2"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHeartRate.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWater.swift",
       "kind": "IntegerLiteral",
-      "offset": 1056,
+      "offset": 1211,
       "length": 5,
       "value": "3"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHeartRate.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWater.swift",
       "kind": "IntegerLiteral",
-      "offset": 968,
-      "length": 1,
-      "value": "0"
+      "offset": 1247,
+      "length": 4,
+      "value": "4"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHeartRate.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
       "kind": "IntegerLiteral",
-      "offset": 995,
-      "length": 4,
-      "value": "1"
+      "offset": 249,
+      "length": 3,
+      "value": "0x0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHeartRate.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
       "kind": "IntegerLiteral",
-      "offset": 1025,
+      "offset": 2035,
       "length": 4,
-      "value": "2"
+      "value": "0x01"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHeartRate.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
       "kind": "IntegerLiteral",
-      "offset": 1056,
-      "length": 5,
-      "value": "3"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWeather.swift",
-      "kind": "Array",
-      "offset": 369,
-      "length": 2,
-      "value": "[]"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWeather.swift",
-      "kind": "StringLiteral",
-      "offset": 495,
-      "length": 2,
-      "value": "\"\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWeather.swift",
-      "kind": "StringLiteral",
-      "offset": 547,
-      "length": 2,
-      "value": "\"\""
+      "offset": 2082,
+      "length": 4,
+      "value": "0x02"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWeather.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
       "kind": "IntegerLiteral",
-      "offset": 617,
-      "length": 1,
-      "value": "0"
+      "offset": 2182,
+      "length": 4,
+      "value": "0x06"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWeather.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
       "kind": "IntegerLiteral",
-      "offset": 704,
-      "length": 1,
-      "value": "0"
+      "offset": 2226,
+      "length": 4,
+      "value": "0x05"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWeather.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
       "kind": "IntegerLiteral",
-      "offset": 759,
-      "length": 1,
-      "value": "0"
+      "offset": 2415,
+      "length": 4,
+      "value": "0x2f"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWeather.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
       "kind": "IntegerLiteral",
-      "offset": 909,
-      "length": 10,
-      "value": "1654012800"
+      "offset": 2581,
+      "length": 4,
+      "value": "0x1c"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWeather.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
       "kind": "IntegerLiteral",
-      "offset": 998,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWeather.swift",
-      "kind": "StringLiteral",
-      "offset": 1123,
-      "length": 2,
-      "value": "\"\""
+      "offset": 2814,
+      "length": 4,
+      "value": "0x33"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWeather.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
       "kind": "IntegerLiteral",
-      "offset": 1189,
-      "length": 1,
-      "value": "0"
+      "offset": 2976,
+      "length": 4,
+      "value": "0x1e"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWeather.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
       "kind": "IntegerLiteral",
-      "offset": 1254,
-      "length": 1,
-      "value": "0"
+      "offset": 3205,
+      "length": 4,
+      "value": "0x36"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWeather.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
       "kind": "IntegerLiteral",
-      "offset": 1394,
-      "length": 1,
-      "value": "0"
+      "offset": 3381,
+      "length": 4,
+      "value": "0x25"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWeather.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
       "kind": "IntegerLiteral",
-      "offset": 1459,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWeather.swift",
-      "kind": "StringLiteral",
-      "offset": 1523,
-      "length": 2,
-      "value": "\"\""
+      "offset": 3590,
+      "length": 4,
+      "value": "0x24"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWeather.swift",
-      "kind": "StringLiteral",
-      "offset": 1576,
-      "length": 2,
-      "value": "\"\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 3791,
+      "length": 4,
+      "value": "0x01"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWeather.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
       "kind": "IntegerLiteral",
-      "offset": 1626,
-      "length": 1,
-      "value": "0"
+      "offset": 3932,
+      "length": 4,
+      "value": "0x03"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWeather.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
       "kind": "IntegerLiteral",
-      "offset": 1688,
-      "length": 1,
-      "value": "0"
+      "offset": 4086,
+      "length": 4,
+      "value": "0x02"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOta.swift",
-      "kind": "StringLiteral",
-      "offset": 210,
-      "length": 2,
-      "value": "\"\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 4286,
+      "length": 4,
+      "value": "0x1B"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOta.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
       "kind": "IntegerLiteral",
-      "offset": 276,
-      "length": 1,
-      "value": "0"
+      "offset": 4510,
+      "length": 4,
+      "value": "0x17"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOta.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
       "kind": "IntegerLiteral",
-      "offset": 451,
-      "length": 1,
-      "value": "0"
+      "offset": 4708,
+      "length": 4,
+      "value": "0x04"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOta.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
       "kind": "IntegerLiteral",
-      "offset": 509,
-      "length": 1,
-      "value": "0"
+      "offset": 4939,
+      "length": 4,
+      "value": "0x08"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOta.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
       "kind": "IntegerLiteral",
-      "offset": 568,
-      "length": 1,
-      "value": "0"
+      "offset": 5142,
+      "length": 4,
+      "value": "0x0A"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOta.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
       "kind": "IntegerLiteral",
-      "offset": 657,
-      "length": 1,
-      "value": "0"
+      "offset": 5283,
+      "length": 4,
+      "value": "0x0B"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOta.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
       "kind": "IntegerLiteral",
-      "offset": 799,
-      "length": 1,
-      "value": "1"
+      "offset": 5473,
+      "length": 4,
+      "value": "0x14"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOta.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
       "kind": "IntegerLiteral",
-      "offset": 864,
-      "length": 1,
-      "value": "0"
+      "offset": 5707,
+      "length": 4,
+      "value": "0x16"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOta.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
       "kind": "IntegerLiteral",
-      "offset": 1041,
-      "length": 1,
-      "value": "0"
+      "offset": 5892,
+      "length": 4,
+      "value": "0x0E"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOta.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
       "kind": "IntegerLiteral",
-      "offset": 1101,
-      "length": 1,
-      "value": "0"
+      "offset": 6126,
+      "length": 4,
+      "value": "0x1E"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOta.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
       "kind": "IntegerLiteral",
-      "offset": 1162,
-      "length": 1,
-      "value": "0"
+      "offset": 6297,
+      "length": 4,
+      "value": "0x12"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOta.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
       "kind": "IntegerLiteral",
-      "offset": 1253,
-      "length": 1,
-      "value": "0"
+      "offset": 6536,
+      "length": 4,
+      "value": "0x1F"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBSleep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
       "kind": "IntegerLiteral",
-      "offset": 253,
-      "length": 1,
-      "value": "0"
+      "offset": 6713,
+      "length": 4,
+      "value": "0x13"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBSleep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
       "kind": "IntegerLiteral",
-      "offset": 465,
-      "length": 1,
-      "value": "0"
+      "offset": 6969,
+      "length": 4,
+      "value": "0x0F"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBSleep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
       "kind": "IntegerLiteral",
-      "offset": 525,
-      "length": 1,
-      "value": "0"
+      "offset": 7209,
+      "length": 4,
+      "value": "0x11"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBSleep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
       "kind": "IntegerLiteral",
-      "offset": 559,
-      "length": 1,
-      "value": "1"
+      "offset": 7525,
+      "length": 4,
+      "value": "0x15"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBSleep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
       "kind": "IntegerLiteral",
-      "offset": 608,
-      "length": 1,
-      "value": "1"
+      "offset": 7765,
+      "length": 4,
+      "value": "0x23"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBSleep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
       "kind": "IntegerLiteral",
-      "offset": 629,
-      "length": 1,
-      "value": "2"
+      "offset": 7908,
+      "length": 4,
+      "value": "0x25"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBSleep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
       "kind": "IntegerLiteral",
-      "offset": 683,
-      "length": 1,
-      "value": "3"
+      "offset": 8012,
+      "length": 4,
+      "value": "0x26"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBSleep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
       "kind": "IntegerLiteral",
-      "offset": 704,
-      "length": 1,
-      "value": "4"
+      "offset": 8112,
+      "length": 4,
+      "value": "0x27"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBSleep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
       "kind": "IntegerLiteral",
-      "offset": 748,
-      "length": 1,
-      "value": "5"
+      "offset": 8302,
+      "length": 4,
+      "value": "0x07"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBSleep.swift",
-      "kind": "StringLiteral",
-      "offset": 1015,
-      "length": 164,
-      "value": "\"IBSleep(sleepTimeSet: \""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 8495,
+      "length": 4,
+      "value": "0x01"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBSleep.swift",
-      "kind": "StringLiteral",
-      "offset": 1053,
-      "length": 1,
-      "value": "\", sleepTime:\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 8647,
+      "length": 4,
+      "value": "0x21"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBSleep.swift",
-      "kind": "StringLiteral",
-      "offset": 1093,
-      "length": 2,
-      "value": "\"\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 8861,
+      "length": 4,
+      "value": "0x2A"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBSleep.swift",
-      "kind": "StringLiteral",
-      "offset": 1096,
-      "length": 1,
-      "value": "\", getUpTime:\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 9149,
+      "length": 4,
+      "value": "0x0D"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBSleep.swift",
-      "kind": "StringLiteral",
-      "offset": 1136,
-      "length": 2,
-      "value": "\"\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 9481,
+      "length": 4,
+      "value": "0x19"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBSleep.swift",
-      "kind": "StringLiteral",
-      "offset": 1139,
-      "length": 1,
-      "value": "\", alertBeforeMin20:\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 9680,
+      "length": 4,
+      "value": "0x1A"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBSleep.swift",
-      "kind": "StringLiteral",
-      "offset": 1177,
-      "length": 1,
-      "value": "\")\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 9837,
+      "length": 4,
+      "value": "0x0E"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBSleep.swift",
-      "kind": "StringLiteral",
-      "offset": 1468,
-      "length": 44,
-      "value": "\"IBTimeItem(hour: \""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 10084,
+      "length": 4,
+      "value": "0x1C"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBSleep.swift",
-      "kind": "StringLiteral",
-      "offset": 1493,
-      "length": 1,
-      "value": "\", minute:\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 10279,
+      "length": 4,
+      "value": "0x0F"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBSleep.swift",
-      "kind": "StringLiteral",
-      "offset": 1511,
-      "length": 1,
-      "value": "\"\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 10495,
+      "length": 4,
+      "value": "0x11"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
       "kind": "IntegerLiteral",
-      "offset": 166,
-      "length": 3,
-      "value": "450"
+      "offset": 10732,
+      "length": 4,
+      "value": "0x1D"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
-      "kind": "Dictionary",
-      "offset": 232,
-      "length": 3,
-      "value": "[]"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 10943,
+      "length": 4,
+      "value": "0x2B"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
-      "kind": "StringLiteral",
-      "offset": 934,
-      "length": 6,
-      "value": "\"18E0\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 11113,
+      "length": 4,
+      "value": "0x16"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
-      "kind": "StringLiteral",
-      "offset": 1001,
-      "length": 6,
-      "value": "\"2AE5\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 11353,
+      "length": 4,
+      "value": "0x2C"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
-      "kind": "StringLiteral",
-      "offset": 1064,
-      "length": 6,
-      "value": "\"2AE2\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 11526,
+      "length": 4,
+      "value": "0x17"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
-      "kind": "StringLiteral",
-      "offset": 1151,
-      "length": 6,
-      "value": "\"2AE3\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 11749,
+      "length": 4,
+      "value": "0x29"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
-      "kind": "StringLiteral",
-      "offset": 1239,
-      "length": 6,
-      "value": "\"2AE4\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 11892,
+      "length": 4,
+      "value": "0x15"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
-      "kind": "StringLiteral",
-      "offset": 1334,
-      "length": 6,
-      "value": "\"2AE0\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 12169,
+      "length": 4,
+      "value": "0x24"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
-      "kind": "Array",
-      "offset": 2211,
-      "length": 2,
-      "value": "[]"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 12318,
+      "length": 4,
+      "value": "0x14"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
-      "kind": "StringLiteral",
-      "offset": 3092,
-      "length": 29,
-      "value": "\"开始扫描蓝牙设备...\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 12549,
+      "length": 4,
+      "value": "0x28"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
-      "kind": "StringLiteral",
-      "offset": 3607,
-      "length": 29,
-      "value": "\"停止扫描蓝牙设备...\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 12748,
+      "length": 4,
+      "value": "0x04"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
-      "kind": "StringLiteral",
-      "offset": 4474,
-      "length": 29,
-      "value": "\"有命令正在执行中...\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 13196,
+      "length": 4,
+      "value": "0x40"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
-      "kind": "StringLiteral",
-      "offset": 4557,
-      "length": 29,
-      "value": "\"有命令正在执行中...\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 13620,
+      "length": 4,
+      "value": "0x41"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
-      "kind": "FloatLiteral",
-      "offset": 4848,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 14031,
       "length": 4,
-      "value": "0.02"
+      "value": "0x43"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
-      "kind": "StringLiteral",
-      "offset": 4890,
-      "length": 46,
-      "value": "\"\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 14451,
+      "length": 4,
+      "value": "0x44"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
-      "kind": "StringLiteral",
-      "offset": 4928,
-      "length": 5,
-      "value": "\" Write:\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 14861,
+      "length": 4,
+      "value": "0x45"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
-      "kind": "StringLiteral",
-      "offset": 4961,
-      "length": 3,
-      "value": "\" \""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 15276,
+      "length": 4,
+      "value": "0x46"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
-      "kind": "StringLiteral",
-      "offset": 4967,
-      "length": 28,
-      "value": "\"Bytes(\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 15692,
+      "length": 4,
+      "value": "0x47"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
-      "kind": "StringLiteral",
-      "offset": 4993,
-      "length": 1,
-      "value": "\")\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 16116,
+      "length": 4,
+      "value": "0x49"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
-      "kind": "StringLiteral",
-      "offset": 5942,
-      "length": 39,
-      "value": "\"\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 16524,
+      "length": 4,
+      "value": "0x4B"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
-      "kind": "StringLiteral",
-      "offset": 5973,
-      "length": 5,
-      "value": "\" Write:\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 16808,
+      "length": 4,
+      "value": "0x4F"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
-      "kind": "StringLiteral",
-      "offset": 6298,
-      "length": 9,
-      "value": "\"unknown\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 16966,
+      "length": 4,
+      "value": "0x2E"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
-      "kind": "StringLiteral",
-      "offset": 6357,
-      "length": 11,
-      "value": "\"resetting\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 17144,
+      "length": 4,
+      "value": "0x05"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
-      "kind": "StringLiteral",
-      "offset": 6420,
-      "length": 13,
-      "value": "\"unsupported\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 17498,
+      "length": 4,
+      "value": "0x10"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
-      "kind": "StringLiteral",
-      "offset": 6486,
-      "length": 14,
-      "value": "\"unauthorized\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 17693,
+      "length": 4,
+      "value": "0x02"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
-      "kind": "StringLiteral",
-      "offset": 6551,
-      "length": 12,
-      "value": "\"poweredOff\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 17841,
+      "length": 4,
+      "value": "0x10"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
-      "kind": "StringLiteral",
-      "offset": 6637,
-      "length": 11,
-      "value": "\"poweredOn\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 17967,
+      "length": 4,
+      "value": "0x2D"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
-      "kind": "StringLiteral",
-      "offset": 6924,
-      "length": 28,
-      "value": "\"kCBAdvDataManufacturerData\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 18128,
+      "length": 4,
+      "value": "0x20"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
-      "kind": "StringLiteral",
-      "offset": 7920,
-      "length": 11,
-      "value": "\"已连接\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 18353,
+      "length": 4,
+      "value": "0x0B"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
       "kind": "IntegerLiteral",
-      "offset": 8010,
-      "length": 1,
-      "value": "1"
+      "offset": 18567,
+      "length": 4,
+      "value": "0x07"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
-      "kind": "StringLiteral",
-      "offset": 8156,
-      "length": 14,
-      "value": "\"连接失败\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 18981,
+      "length": 4,
+      "value": "0x05"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
-      "kind": "StringLiteral",
-      "offset": 8202,
-      "length": 2,
-      "value": "\"\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 19190,
+      "length": 4,
+      "value": "0x06"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
-      "kind": "BooleanLiteral",
-      "offset": 8273,
-      "length": 5,
-      "value": "false"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 19380,
+      "length": 4,
+      "value": "0x08"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
-      "kind": "StringLiteral",
-      "offset": 8470,
-      "length": 14,
-      "value": "\"断开连接\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 19575,
+      "length": 4,
+      "value": "0x22"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
-      "kind": "StringLiteral",
-      "offset": 8771,
-      "length": 26,
-      "value": "\"蓝牙设备断开连接\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 19809,
+      "length": 4,
+      "value": "0x22"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
-      "kind": "BooleanLiteral",
-      "offset": 8844,
-      "length": 5,
-      "value": "false"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 19989,
+      "length": 4,
+      "value": "0x01"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
       "kind": "IntegerLiteral",
-      "offset": 8944,
-      "length": 1,
-      "value": "0"
+      "offset": 20176,
+      "length": 4,
+      "value": "0x28"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
-      "kind": "BooleanLiteral",
-      "offset": 9688,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 20367,
       "length": 4,
-      "value": "true"
+      "value": "0x0B"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
-      "kind": "BooleanLiteral",
-      "offset": 9921,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 20668,
       "length": 4,
-      "value": "true"
+      "value": "0x21"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
-      "kind": "StringLiteral",
-      "offset": 11292,
-      "length": 15,
-      "value": "\"write success\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 20919,
+      "length": 4,
+      "value": "0x06"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
-      "kind": "BooleanLiteral",
-      "offset": 11897,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 21154,
       "length": 4,
-      "value": "true"
+      "value": "0x05"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
-      "kind": "FloatLiteral",
-      "offset": 12400,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 21415,
       "length": 4,
-      "value": "10.0"
+      "value": "0x34"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
-      "kind": "BooleanLiteral",
-      "offset": 12415,
-      "length": 5,
-      "value": "false"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBAbility.swift",
+      "kind": "IntegerLiteral",
+      "offset": 21597,
+      "length": 4,
+      "value": "0x1f"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Logger.swift",
-      "kind": "BooleanLiteral",
-      "offset": 148,
-      "length": 5,
-      "value": "false"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
+      "kind": "IntegerLiteral",
+      "offset": 249,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Logger.swift",
-      "kind": "Array",
-      "offset": 502,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1035,
       "length": 2,
-      "value": "[]"
+      "value": "10"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Logger.swift",
-      "kind": "StringLiteral",
-      "offset": 696,
-      "length": 26,
-      "value": "\"\/Documents\/IOTBluetooth\/\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1188,
+      "length": 1,
+      "value": "1"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Logger.swift",
-      "kind": "BooleanLiteral",
-      "offset": 944,
-      "length": 4,
-      "value": "true"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1573,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Logger.swift",
-      "kind": "StringLiteral",
-      "offset": 1012,
-      "length": 2,
-      "value": "\"\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1599,
+      "length": 8,
+      "value": "1"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Logger.swift",
-      "kind": "StringLiteral",
-      "offset": 1069,
-      "length": 30,
-      "value": "\"\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1632,
+      "length": 8,
+      "value": "2"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Logger.swift",
-      "kind": "StringLiteral",
-      "offset": 1094,
-      "length": 1,
-      "value": "\".log\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1665,
+      "length": 8,
+      "value": "3"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Logger.swift",
-      "kind": "StringLiteral",
-      "offset": 1381,
-      "length": 3,
-      "value": "\" \""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1700,
+      "length": 6,
+      "value": "4"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Logger.swift",
-      "kind": "StringLiteral",
-      "offset": 1407,
-      "length": 4,
-      "value": "\"\n\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBScreen.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1733,
+      "length": 7,
+      "value": "5"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Logger.swift",
-      "kind": "StringLiteral",
-      "offset": 1505,
-      "length": 51,
-      "value": "\" [IOTBluetooth-\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBSendTime.swift",
+      "kind": "IntegerLiteral",
+      "offset": 207,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Logger.swift",
-      "kind": "StringLiteral",
-      "offset": 1538,
-      "length": 6,
-      "value": "\"%03d\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBSendTime.swift",
+      "kind": "IntegerLiteral",
+      "offset": 264,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Logger.swift",
-      "kind": "StringLiteral",
-      "offset": 1552,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBSendTime.swift",
+      "kind": "IntegerLiteral",
+      "offset": 326,
       "length": 1,
-      "value": "\"]: \""
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Logger.swift",
-      "kind": "StringLiteral",
-      "offset": 1570,
-      "length": 7,
-      "value": "\"\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBSendTime.swift",
+      "kind": "IntegerLiteral",
+      "offset": 369,
+      "length": 1,
+      "value": "1"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Logger.swift",
-      "kind": "StringLiteral",
-      "offset": 1576,
-      "length": 46,
-      "value": "\"\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBSendTime.swift",
+      "kind": "IntegerLiteral",
+      "offset": 410,
+      "length": 1,
+      "value": "1"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Logger.swift",
-      "kind": "StringLiteral",
-      "offset": 1707,
-      "length": 51,
-      "value": "\" [IOTBluetooth-\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBSendTime.swift",
+      "kind": "IntegerLiteral",
+      "offset": 452,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Logger.swift",
-      "kind": "StringLiteral",
-      "offset": 1740,
-      "length": 6,
-      "value": "\"%03d\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBSendTime.swift",
+      "kind": "IntegerLiteral",
+      "offset": 496,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Logger.swift",
-      "kind": "StringLiteral",
-      "offset": 1754,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBSendTime.swift",
+      "kind": "IntegerLiteral",
+      "offset": 540,
       "length": 1,
-      "value": "\"]: \""
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryStep.swift",
-      "kind": "Array",
-      "offset": 200,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBContact.swift",
+      "kind": "IntegerLiteral",
+      "offset": 208,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBContact.swift",
+      "kind": "StringLiteral",
+      "offset": 254,
       "length": 2,
-      "value": "[]"
+      "value": "\"\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryStep.swift",
-      "kind": "Array",
-      "offset": 283,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBContact.swift",
+      "kind": "StringLiteral",
+      "offset": 300,
       "length": 2,
-      "value": "[]"
+      "value": "\"\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryStep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTargetStep.swift",
       "kind": "IntegerLiteral",
-      "offset": 316,
-      "length": 1,
-      "value": "0"
+      "offset": 206,
+      "length": 4,
+      "value": "5000"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryStep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTargetStep.swift",
       "kind": "IntegerLiteral",
-      "offset": 339,
+      "offset": 285,
       "length": 1,
-      "value": "8"
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryStep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTargetStep.swift",
       "kind": "IntegerLiteral",
-      "offset": 375,
+      "offset": 364,
       "length": 1,
-      "value": "7"
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryStep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBTargetStep.swift",
       "kind": "IntegerLiteral",
-      "offset": 467,
+      "offset": 442,
       "length": 1,
-      "value": "3"
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender.swift",
+      "kind": "Array",
+      "offset": 458,
+      "length": 2,
+      "value": "[]"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryStep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender.swift",
       "kind": "IntegerLiteral",
-      "offset": 511,
+      "offset": 513,
       "length": 1,
-      "value": "4"
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryStep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender.swift",
       "kind": "IntegerLiteral",
-      "offset": 517,
+      "offset": 564,
       "length": 1,
-      "value": "7"
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryStep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender.swift",
       "kind": "IntegerLiteral",
-      "offset": 727,
+      "offset": 609,
       "length": 1,
       "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryStep.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender.swift",
+      "kind": "Array",
+      "offset": 1494,
+      "length": 2,
+      "value": "[]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender.swift",
       "kind": "IntegerLiteral",
-      "offset": 775,
+      "offset": 1517,
       "length": 1,
       "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/LRC.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender.swift",
       "kind": "IntegerLiteral",
-      "offset": 237,
+      "offset": 1541,
       "length": 1,
       "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/LRC.swift",
-      "kind": "IntegerLiteral",
-      "offset": 343,
-      "length": 3,
-      "value": "256"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender.swift",
+      "kind": "BooleanLiteral",
+      "offset": 1574,
+      "length": 5,
+      "value": "false"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/LRC.swift",
-      "kind": "IntegerLiteral",
-      "offset": 375,
-      "length": 1,
-      "value": "0"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBFileSender.swift",
+      "kind": "Array",
+      "offset": 8386,
+      "length": 2,
+      "value": "[]"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/LRC.swift",
-      "kind": "IntegerLiteral",
-      "offset": 379,
-      "length": 1,
-      "value": "0"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryCalorie.swift",
+      "kind": "Array",
+      "offset": 212,
+      "length": 2,
+      "value": "[]"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/LRC.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryCalorie.swift",
       "kind": "IntegerLiteral",
-      "offset": 383,
-      "length": 3,
-      "value": "256"
+      "offset": 753,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/LRC.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryCalorie.swift",
       "kind": "IntegerLiteral",
-      "offset": 521,
+      "offset": 804,
       "length": 1,
       "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
-      "kind": "StringLiteral",
-      "offset": 402,
-      "length": 10,
-      "value": "\"HH:mm:ss\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
-      "kind": "StringLiteral",
-      "offset": 491,
-      "length": 7,
-      "value": "\"HH:mm\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBMp3.swift",
       "kind": "StringLiteral",
-      "offset": 572,
-      "length": 7,
-      "value": "\"MM-dd\""
+      "offset": 210,
+      "length": 2,
+      "value": "\"\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBMp3.swift",
       "kind": "StringLiteral",
-      "offset": 659,
-      "length": 12,
-      "value": "\"MM月dd日\""
+      "offset": 264,
+      "length": 2,
+      "value": "\"\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
-      "kind": "StringLiteral",
-      "offset": 751,
-      "length": 12,
-      "value": "\"yyyy-MM-dd\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBMp3.swift",
+      "kind": "IntegerLiteral",
+      "offset": 330,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBMp3.swift",
       "kind": "StringLiteral",
-      "offset": 851,
-      "length": 18,
-      "value": "\"yyy年MM月dd日\""
+      "offset": 461,
+      "length": 2,
+      "value": "\"\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
-      "kind": "StringLiteral",
-      "offset": 956,
-      "length": 18,
-      "value": "\"yyyy-MM-dd HH:mm\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBMp3.swift",
+      "kind": "IntegerLiteral",
+      "offset": 515,
+      "length": 1,
+      "value": "2"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
-      "kind": "StringLiteral",
-      "offset": 1069,
-      "length": 24,
-      "value": "\"yyy年MM月dd日 HH:mm\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBMp3.swift",
+      "kind": "IntegerLiteral",
+      "offset": 571,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBManager.swift",
       "kind": "StringLiteral",
-      "offset": 1181,
-      "length": 21,
-      "value": "\"yyyy-MM-dd HH:mm:ss\""
+      "offset": 897,
+      "length": 8,
+      "value": "\"1.0.23\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
-      "kind": "StringLiteral",
-      "offset": 1298,
-      "length": 28,
-      "value": "\"yyyy年MM月dd日 HH:mm:ss\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBManager.swift",
+      "kind": "BooleanLiteral",
+      "offset": 961,
+      "length": 5,
+      "value": "false"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPhoneInfo.swift",
       "kind": "StringLiteral",
-      "offset": 1413,
-      "length": 19,
-      "value": "\"yyyy-MM-dd HHmmss\""
+      "offset": 212,
+      "length": 8,
+      "value": "\"iphone\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
-      "kind": "StringLiteral",
-      "offset": 1524,
-      "length": 25,
-      "value": "\"yyyy-MM-dd HH:mm:ss.SSS\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPhoneInfo.swift",
+      "kind": "IntegerLiteral",
+      "offset": 291,
+      "length": 1,
+      "value": "1"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPhoneInfo.swift",
       "kind": "StringLiteral",
-      "offset": 1649,
-      "length": 32,
-      "value": "\"yyyy年MM月dd日 HH:mm:ss.SSS\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
-      "kind": "FloatLiteral",
-      "offset": 2126,
+      "offset": 479,
       "length": 4,
-      "value": "60.0"
+      "value": "\"pn\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
-      "kind": "FloatLiteral",
-      "offset": 2189,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPhoneInfo.swift",
+      "kind": "StringLiteral",
+      "offset": 504,
       "length": 4,
-      "value": "60.0"
+      "value": "\"tp\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
-      "kind": "FloatLiteral",
-      "offset": 2196,
-      "length": 4,
-      "value": "60.0"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPhoneInfo.swift",
+      "kind": "StringLiteral",
+      "offset": 528,
+      "length": 5,
+      "value": "\"mac\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
-      "kind": "FloatLiteral",
-      "offset": 2255,
-      "length": 4,
-      "value": "60.0"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBSchedule.swift",
+      "kind": "IntegerLiteral",
+      "offset": 182,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
-      "kind": "FloatLiteral",
-      "offset": 2262,
-      "length": 4,
-      "value": "60.0"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBSchedule.swift",
+      "kind": "StringLiteral",
+      "offset": 230,
+      "length": 2,
+      "value": "\"\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
-      "kind": "FloatLiteral",
-      "offset": 2269,
-      "length": 4,
-      "value": "24.0"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBSchedule.swift",
+      "kind": "IntegerLiteral",
+      "offset": 284,
+      "length": 10,
+      "value": "1737196185"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBSchedule.swift",
       "kind": "IntegerLiteral",
-      "offset": 2459,
-      "length": 1,
-      "value": "1"
+      "offset": 344,
+      "length": 10,
+      "value": "1737396185"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2496,
-      "length": 3,
-      "value": "2"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
+      "kind": "Array",
+      "offset": 203,
+      "length": 2,
+      "value": "[]"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
       "kind": "IntegerLiteral",
-      "offset": 2535,
-      "length": 3,
-      "value": "3"
+      "offset": 2352,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
       "kind": "IntegerLiteral",
-      "offset": 2574,
-      "length": 3,
-      "value": "4"
+      "offset": 2464,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
       "kind": "IntegerLiteral",
-      "offset": 2613,
-      "length": 4,
-      "value": "5"
+      "offset": 2538,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
       "kind": "IntegerLiteral",
-      "offset": 2653,
-      "length": 3,
-      "value": "6"
+      "offset": 2610,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
       "kind": "IntegerLiteral",
-      "offset": 2692,
-      "length": 3,
-      "value": "7"
+      "offset": 2689,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
       "kind": "IntegerLiteral",
-      "offset": 2459,
+      "offset": 2700,
       "length": 1,
-      "value": "1"
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
       "kind": "IntegerLiteral",
-      "offset": 2496,
-      "length": 3,
-      "value": "2"
+      "offset": 3460,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistorySleep.swift",
       "kind": "IntegerLiteral",
-      "offset": 2535,
-      "length": 3,
-      "value": "3"
+      "offset": 3843,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAiResponse.swift",
       "kind": "IntegerLiteral",
-      "offset": 2574,
-      "length": 3,
-      "value": "4"
+      "offset": 318,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2613,
-      "length": 4,
-      "value": "5"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBAiResponse.swift",
+      "kind": "StringLiteral",
+      "offset": 367,
+      "length": 2,
+      "value": "\"\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2653,
-      "length": 3,
-      "value": "6"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBClock.swift",
+      "kind": "Array",
+      "offset": 212,
+      "length": 2,
+      "value": "[]"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBClock.swift",
       "kind": "IntegerLiteral",
-      "offset": 2692,
-      "length": 3,
-      "value": "7"
+      "offset": 685,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBClock.swift",
       "kind": "IntegerLiteral",
-      "offset": 2459,
+      "offset": 729,
       "length": 1,
-      "value": "1"
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBClock.swift",
       "kind": "IntegerLiteral",
-      "offset": 2496,
-      "length": 3,
-      "value": "2"
+      "offset": 775,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBClock.swift",
       "kind": "IntegerLiteral",
-      "offset": 2535,
-      "length": 3,
-      "value": "3"
+      "offset": 844,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
-      "kind": "IntegerLiteral",
-      "offset": 2574,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBClock.swift",
+      "kind": "Array",
+      "offset": 1022,
       "length": 3,
-      "value": "4"
+      "value": "[0]"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHeartRate.swift",
       "kind": "IntegerLiteral",
-      "offset": 2613,
-      "length": 4,
-      "value": "5"
+      "offset": 338,
+      "length": 1,
+      "value": "1"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHeartRate.swift",
       "kind": "IntegerLiteral",
-      "offset": 2653,
-      "length": 3,
-      "value": "6"
+      "offset": 441,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHeartRate.swift",
       "kind": "IntegerLiteral",
-      "offset": 2692,
+      "offset": 505,
       "length": 3,
-      "value": "7"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBDial.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1577,
-      "length": 1,
-      "value": "5"
+      "value": "100"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBDial.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHeartRate.swift",
       "kind": "IntegerLiteral",
-      "offset": 1750,
+      "offset": 968,
       "length": 1,
       "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBDial.swift",
-      "kind": "StringLiteral",
-      "offset": 2354,
-      "length": 77,
-      "value": "\"IBMarketDail(UID: \""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHeartRate.swift",
+      "kind": "IntegerLiteral",
+      "offset": 995,
+      "length": 4,
+      "value": "1"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBDial.swift",
-      "kind": "StringLiteral",
-      "offset": 2379,
-      "length": 1,
-      "value": "\", themeLength:\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHeartRate.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1025,
+      "length": 4,
+      "value": "2"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBDial.swift",
-      "kind": "StringLiteral",
-      "offset": 2407,
-      "length": 1,
-      "value": "\", theme:\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHeartRate.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1056,
+      "length": 5,
+      "value": "3"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBDial.swift",
-      "kind": "StringLiteral",
-      "offset": 2426,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWeather.swift",
+      "kind": "Array",
+      "offset": 369,
       "length": 2,
-      "value": "\"\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBDial.swift",
-      "kind": "StringLiteral",
-      "offset": 2429,
-      "length": 1,
-      "value": "\")\""
+      "value": "[]"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBDial.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWeather.swift",
       "kind": "StringLiteral",
-      "offset": 2557,
+      "offset": 495,
       "length": 2,
       "value": "\"\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBDial.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWeather.swift",
       "kind": "StringLiteral",
-      "offset": 2615,
+      "offset": 547,
       "length": 2,
       "value": "\"\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBDial.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWeather.swift",
       "kind": "IntegerLiteral",
-      "offset": 2695,
+      "offset": 617,
       "length": 1,
       "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBDial.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWeather.swift",
       "kind": "IntegerLiteral",
-      "offset": 2852,
+      "offset": 704,
       "length": 1,
       "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBDial.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWeather.swift",
       "kind": "IntegerLiteral",
-      "offset": 3139,
+      "offset": 759,
       "length": 1,
-      "value": "1"
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBDial.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWeather.swift",
       "kind": "IntegerLiteral",
-      "offset": 3356,
+      "offset": 909,
+      "length": 10,
+      "value": "1654012800"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWeather.swift",
+      "kind": "IntegerLiteral",
+      "offset": 998,
       "length": 1,
-      "value": "1"
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBDial.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWeather.swift",
       "kind": "StringLiteral",
-      "offset": 3445,
-      "length": 147,
-      "value": "\"IBDialFile(UID: \""
+      "offset": 1123,
+      "length": 2,
+      "value": "\"\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBDial.swift",
-      "kind": "StringLiteral",
-      "offset": 3468,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWeather.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1189,
       "length": 1,
-      "value": "\", index:\""
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBDial.swift",
-      "kind": "StringLiteral",
-      "offset": 3484,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWeather.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1254,
       "length": 1,
-      "value": "\",fileType: \""
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBDial.swift",
-      "kind": "StringLiteral",
-      "offset": 3506,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWeather.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1394,
       "length": 1,
-      "value": "\", nameLength:\""
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBDial.swift",
-      "kind": "StringLiteral",
-      "offset": 3532,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWeather.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1459,
       "length": 1,
-      "value": "\", filePath:\""
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBDial.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWeather.swift",
       "kind": "StringLiteral",
-      "offset": 3554,
-      "length": 1,
-      "value": "\", fileName:\""
+      "offset": 1523,
+      "length": 2,
+      "value": "\"\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBDial.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWeather.swift",
       "kind": "StringLiteral",
-      "offset": 3576,
-      "length": 1,
-      "value": "\", size:\""
+      "offset": 1576,
+      "length": 2,
+      "value": "\"\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBDial.swift",
-      "kind": "StringLiteral",
-      "offset": 3590,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWeather.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1626,
       "length": 1,
-      "value": "\")\""
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBBloodOxygen.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBWeather.swift",
       "kind": "IntegerLiteral",
-      "offset": 345,
+      "offset": 1688,
       "length": 1,
-      "value": "1"
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBBloodOxygen.swift",
-      "kind": "IntegerLiteral",
-      "offset": 402,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOta.swift",
+      "kind": "StringLiteral",
+      "offset": 210,
       "length": 2,
-      "value": "95"
+      "value": "\"\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBBloodOxygen.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOta.swift",
       "kind": "IntegerLiteral",
-      "offset": 514,
+      "offset": 276,
       "length": 1,
       "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBBloodOxygen.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOta.swift",
       "kind": "IntegerLiteral",
-      "offset": 552,
+      "offset": 451,
       "length": 1,
-      "value": "1"
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBBloodOxygen.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOta.swift",
       "kind": "IntegerLiteral",
-      "offset": 579,
+      "offset": 509,
       "length": 1,
-      "value": "1"
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBBloodOxygen.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOta.swift",
       "kind": "IntegerLiteral",
-      "offset": 608,
+      "offset": 568,
       "length": 1,
-      "value": "2"
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBBloodOxygen.swift",
-      "kind": "StringLiteral",
-      "offset": 679,
-      "length": 62,
-      "value": "\"IBBloodOxygen(rate: \""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOta.swift",
+      "kind": "IntegerLiteral",
+      "offset": 657,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBBloodOxygen.swift",
-      "kind": "StringLiteral",
-      "offset": 707,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOta.swift",
+      "kind": "IntegerLiteral",
+      "offset": 799,
       "length": 1,
-      "value": "\", state:\""
+      "value": "1"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBBloodOxygen.swift",
-      "kind": "StringLiteral",
-      "offset": 723,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOta.swift",
+      "kind": "IntegerLiteral",
+      "offset": 864,
       "length": 1,
-      "value": "\", value:\""
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBBloodOxygen.swift",
-      "kind": "StringLiteral",
-      "offset": 739,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOta.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1041,
       "length": 1,
-      "value": "\")\""
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBBloodOxygen.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOta.swift",
       "kind": "IntegerLiteral",
-      "offset": 846,
+      "offset": 1101,
       "length": 1,
       "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBBloodOxygen.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOta.swift",
       "kind": "IntegerLiteral",
-      "offset": 874,
-      "length": 5,
-      "value": "1"
+      "offset": 1162,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBBloodOxygen.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBOta.swift",
       "kind": "IntegerLiteral",
-      "offset": 905,
-      "length": 5,
-      "value": "2"
+      "offset": 1253,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBBloodOxygen.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBSleep.swift",
       "kind": "IntegerLiteral",
-      "offset": 936,
-      "length": 5,
-      "value": "3"
+      "offset": 253,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBBloodOxygen.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBSleep.swift",
       "kind": "IntegerLiteral",
-      "offset": 846,
+      "offset": 465,
       "length": 1,
       "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBBloodOxygen.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
       "kind": "IntegerLiteral",
-      "offset": 874,
-      "length": 5,
-      "value": "1"
+      "offset": 166,
+      "length": 3,
+      "value": "450"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBBloodOxygen.swift",
-      "kind": "IntegerLiteral",
-      "offset": 905,
-      "length": 5,
-      "value": "2"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
+      "kind": "Dictionary",
+      "offset": 232,
+      "length": 3,
+      "value": "[]"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBBloodOxygen.swift",
-      "kind": "IntegerLiteral",
-      "offset": 936,
-      "length": 5,
-      "value": "3"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
+      "kind": "StringLiteral",
+      "offset": 934,
+      "length": 6,
+      "value": "\"18E0\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBBloodOxygen.swift",
-      "kind": "IntegerLiteral",
-      "offset": 846,
-      "length": 1,
-      "value": "0"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
+      "kind": "StringLiteral",
+      "offset": 1001,
+      "length": 6,
+      "value": "\"2AE5\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBBloodOxygen.swift",
-      "kind": "IntegerLiteral",
-      "offset": 874,
-      "length": 5,
-      "value": "1"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
+      "kind": "StringLiteral",
+      "offset": 1064,
+      "length": 6,
+      "value": "\"2AE2\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBBloodOxygen.swift",
-      "kind": "IntegerLiteral",
-      "offset": 905,
-      "length": 5,
-      "value": "2"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
+      "kind": "StringLiteral",
+      "offset": 1151,
+      "length": 6,
+      "value": "\"2AE3\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBBloodOxygen.swift",
-      "kind": "IntegerLiteral",
-      "offset": 936,
-      "length": 5,
-      "value": "3"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
+      "kind": "StringLiteral",
+      "offset": 1239,
+      "length": 6,
+      "value": "\"2AE4\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPeripheral.swift",
-      "kind": "IntegerLiteral",
-      "offset": 231,
-      "length": 1,
-      "value": "0"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
+      "kind": "StringLiteral",
+      "offset": 1334,
+      "length": 6,
+      "value": "\"2AE6\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPeripheral.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
       "kind": "StringLiteral",
-      "offset": 562,
-      "length": 2,
-      "value": "\"\""
+      "offset": 1377,
+      "length": 6,
+      "value": "\"2AE7\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPeripheral.swift",
-      "kind": "Dictionary",
-      "offset": 655,
-      "length": 3,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBluetooth.swift",
+      "kind": "Array",
+      "offset": 2256,
+      "length": 2,
       "value": "[]"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPeripheral.swift",
-      "kind": "StringLiteral",
-      "offset": 799,
-      "length": 9,
-      "value": "\"Unknown\""
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Logger.swift",
+      "kind": "BooleanLiteral",
+      "offset": 148,
+      "length": 5,
+      "value": "false"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPeripheral.swift",
-      "kind": "StringLiteral",
-      "offset": 890,
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Logger.swift",
+      "kind": "Array",
+      "offset": 502,
       "length": 2,
-      "value": "\"\""
+      "value": "[]"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPeripheral.swift",
-      "kind": "IntegerLiteral",
-      "offset": 995,
-      "length": 1,
-      "value": "0"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Logger.swift",
+      "kind": "StringLiteral",
+      "offset": 1381,
+      "length": 3,
+      "value": "\" \""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPeripheral.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Logger.swift",
       "kind": "StringLiteral",
-      "offset": 1043,
+      "offset": 1407,
+      "length": 4,
+      "value": "\"\n\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryStep.swift",
+      "kind": "Array",
+      "offset": 200,
       "length": 2,
-      "value": "\"\""
+      "value": "[]"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPeripheral.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryStep.swift",
       "kind": "IntegerLiteral",
-      "offset": 1104,
+      "offset": 727,
       "length": 1,
       "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPeripheral.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBHistoryStep.swift",
       "kind": "IntegerLiteral",
-      "offset": 1155,
+      "offset": 775,
       "length": 1,
       "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPeripheral.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1204,
-      "length": 1,
-      "value": "0"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
+      "kind": "StringLiteral",
+      "offset": 402,
+      "length": 10,
+      "value": "\"HH:mm:ss\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
+      "kind": "StringLiteral",
+      "offset": 491,
+      "length": 7,
+      "value": "\"HH:mm\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBEpo.swift",
-      "kind": "IntegerLiteral",
-      "offset": 193,
-      "length": 1,
-      "value": "5"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
+      "kind": "StringLiteral",
+      "offset": 572,
+      "length": 7,
+      "value": "\"MM-dd\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBEpo.swift",
-      "kind": "IntegerLiteral",
-      "offset": 305,
-      "length": 1,
-      "value": "6"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
+      "kind": "StringLiteral",
+      "offset": 659,
+      "length": 12,
+      "value": "\"MM月dd日\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBEpo.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
       "kind": "StringLiteral",
-      "offset": 421,
-      "length": 2,
-      "value": "\"\""
+      "offset": 751,
+      "length": 12,
+      "value": "\"yyyy-MM-dd\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBEpo.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
       "kind": "StringLiteral",
-      "offset": 479,
-      "length": 2,
-      "value": "\"\""
+      "offset": 851,
+      "length": 18,
+      "value": "\"yyy年MM月dd日\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBEpo.swift",
-      "kind": "IntegerLiteral",
-      "offset": 540,
-      "length": 1,
-      "value": "0"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
+      "kind": "StringLiteral",
+      "offset": 956,
+      "length": 18,
+      "value": "\"yyyy-MM-dd HH:mm\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBEpo.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
       "kind": "StringLiteral",
-      "offset": 627,
-      "length": 112,
-      "value": "\"IBEpo(UID: \""
+      "offset": 1069,
+      "length": 24,
+      "value": "\"yyy年MM月dd日 HH:mm\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBEpo.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
       "kind": "StringLiteral",
-      "offset": 645,
-      "length": 1,
-      "value": "\", nameLength:\""
+      "offset": 1181,
+      "length": 21,
+      "value": "\"yyyy-MM-dd HH:mm:ss\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBEpo.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
       "kind": "StringLiteral",
-      "offset": 671,
-      "length": 1,
-      "value": "\",fileName: \""
+      "offset": 1298,
+      "length": 28,
+      "value": "\"yyyy年MM月dd日 HH:mm:ss\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBEpo.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
       "kind": "StringLiteral",
-      "offset": 693,
-      "length": 1,
-      "value": "\",filePath: \""
+      "offset": 1413,
+      "length": 19,
+      "value": "\"yyyy-MM-dd HHmmss\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBEpo.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
       "kind": "StringLiteral",
-      "offset": 715,
-      "length": 1,
-      "value": "\",fileSize: \""
+      "offset": 1524,
+      "length": 25,
+      "value": "\"yyyy-MM-dd HH:mm:ss.SSS\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBEpo.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
       "kind": "StringLiteral",
-      "offset": 737,
-      "length": 1,
-      "value": "\")\""
+      "offset": 1649,
+      "length": 32,
+      "value": "\"yyyy年MM月dd日 HH:mm:ss.SSS\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
       "kind": "IntegerLiteral",
-      "offset": 208,
+      "offset": 2459,
       "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
-      "kind": "IntegerLiteral",
-      "offset": 234,
-      "length": 7,
       "value": "1"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
       "kind": "IntegerLiteral",
-      "offset": 269,
-      "length": 8,
+      "offset": 2496,
+      "length": 3,
       "value": "2"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
       "kind": "IntegerLiteral",
-      "offset": 302,
-      "length": 6,
+      "offset": 2535,
+      "length": 3,
       "value": "3"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
       "kind": "IntegerLiteral",
-      "offset": 339,
-      "length": 7,
+      "offset": 2574,
+      "length": 3,
       "value": "4"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
       "kind": "IntegerLiteral",
-      "offset": 371,
-      "length": 7,
+      "offset": 2613,
+      "length": 4,
       "value": "5"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
       "kind": "IntegerLiteral",
-      "offset": 412,
-      "length": 8,
+      "offset": 2653,
+      "length": 3,
       "value": "6"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Tools\/Date.swift",
       "kind": "IntegerLiteral",
-      "offset": 445,
-      "length": 6,
+      "offset": 2692,
+      "length": 3,
       "value": "7"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
-      "kind": "IntegerLiteral",
-      "offset": 482,
-      "length": 10,
-      "value": "8"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
-      "kind": "IntegerLiteral",
-      "offset": 517,
-      "length": 6,
-      "value": "9"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
-      "kind": "IntegerLiteral",
-      "offset": 551,
-      "length": 5,
-      "value": "10"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
-      "kind": "IntegerLiteral",
-      "offset": 587,
-      "length": 7,
-      "value": "11"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
-      "kind": "IntegerLiteral",
-      "offset": 622,
-      "length": 5,
-      "value": "12"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBDial.swift",
       "kind": "IntegerLiteral",
-      "offset": 655,
-      "length": 5,
-      "value": "13"
+      "offset": 1577,
+      "length": 1,
+      "value": "5"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBDial.swift",
       "kind": "IntegerLiteral",
-      "offset": 688,
-      "length": 5,
-      "value": "14"
+      "offset": 1750,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
-      "kind": "IntegerLiteral",
-      "offset": 730,
-      "length": 10,
-      "value": "15"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBDial.swift",
+      "kind": "StringLiteral",
+      "offset": 2557,
+      "length": 2,
+      "value": "\"\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
-      "kind": "IntegerLiteral",
-      "offset": 774,
-      "length": 9,
-      "value": "16"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBDial.swift",
+      "kind": "StringLiteral",
+      "offset": 2615,
+      "length": 2,
+      "value": "\"\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBDial.swift",
       "kind": "IntegerLiteral",
-      "offset": 811,
-      "length": 6,
-      "value": "17"
+      "offset": 2695,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBDial.swift",
       "kind": "IntegerLiteral",
-      "offset": 842,
-      "length": 4,
-      "value": "18"
+      "offset": 2852,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBDial.swift",
       "kind": "IntegerLiteral",
-      "offset": 874,
-      "length": 10,
-      "value": "19"
+      "offset": 3139,
+      "length": 1,
+      "value": "1"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBDial.swift",
       "kind": "IntegerLiteral",
-      "offset": 912,
-      "length": 7,
-      "value": "20"
+      "offset": 3356,
+      "length": 1,
+      "value": "1"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBBloodOxygen.swift",
       "kind": "IntegerLiteral",
-      "offset": 953,
-      "length": 8,
-      "value": "21"
+      "offset": 345,
+      "length": 1,
+      "value": "1"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBBloodOxygen.swift",
       "kind": "IntegerLiteral",
-      "offset": 992,
-      "length": 7,
-      "value": "22"
+      "offset": 402,
+      "length": 2,
+      "value": "95"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBBloodOxygen.swift",
       "kind": "IntegerLiteral",
-      "offset": 208,
+      "offset": 846,
       "length": 1,
       "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBBloodOxygen.swift",
       "kind": "IntegerLiteral",
-      "offset": 234,
-      "length": 7,
+      "offset": 874,
+      "length": 5,
       "value": "1"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBBloodOxygen.swift",
       "kind": "IntegerLiteral",
-      "offset": 269,
-      "length": 8,
+      "offset": 905,
+      "length": 5,
       "value": "2"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBBloodOxygen.swift",
       "kind": "IntegerLiteral",
-      "offset": 302,
-      "length": 6,
+      "offset": 936,
+      "length": 5,
       "value": "3"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
-      "kind": "IntegerLiteral",
-      "offset": 339,
-      "length": 7,
-      "value": "4"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
-      "kind": "IntegerLiteral",
-      "offset": 371,
-      "length": 7,
-      "value": "5"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
-      "kind": "IntegerLiteral",
-      "offset": 412,
-      "length": 8,
-      "value": "6"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
-      "kind": "IntegerLiteral",
-      "offset": 445,
-      "length": 6,
-      "value": "7"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPeripheral.swift",
       "kind": "IntegerLiteral",
-      "offset": 482,
-      "length": 10,
-      "value": "8"
+      "offset": 231,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
-      "kind": "IntegerLiteral",
-      "offset": 517,
-      "length": 6,
-      "value": "9"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPeripheral.swift",
+      "kind": "StringLiteral",
+      "offset": 562,
+      "length": 2,
+      "value": "\"\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
-      "kind": "IntegerLiteral",
-      "offset": 551,
-      "length": 5,
-      "value": "10"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPeripheral.swift",
+      "kind": "Dictionary",
+      "offset": 655,
+      "length": 3,
+      "value": "[]"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
-      "kind": "IntegerLiteral",
-      "offset": 587,
-      "length": 7,
-      "value": "11"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPeripheral.swift",
+      "kind": "StringLiteral",
+      "offset": 799,
+      "length": 9,
+      "value": "\"Unknown\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
-      "kind": "IntegerLiteral",
-      "offset": 622,
-      "length": 5,
-      "value": "12"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPeripheral.swift",
+      "kind": "StringLiteral",
+      "offset": 890,
+      "length": 2,
+      "value": "\"\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPeripheral.swift",
       "kind": "IntegerLiteral",
-      "offset": 655,
-      "length": 5,
-      "value": "13"
+      "offset": 995,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
-      "kind": "IntegerLiteral",
-      "offset": 688,
-      "length": 5,
-      "value": "14"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPeripheral.swift",
+      "kind": "StringLiteral",
+      "offset": 1043,
+      "length": 2,
+      "value": "\"\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPeripheral.swift",
       "kind": "IntegerLiteral",
-      "offset": 730,
-      "length": 10,
-      "value": "15"
+      "offset": 1104,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPeripheral.swift",
       "kind": "IntegerLiteral",
-      "offset": 774,
-      "length": 9,
-      "value": "16"
+      "offset": 1155,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBPeripheral.swift",
       "kind": "IntegerLiteral",
-      "offset": 811,
-      "length": 6,
-      "value": "17"
+      "offset": 1204,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBEpo.swift",
       "kind": "IntegerLiteral",
-      "offset": 842,
-      "length": 4,
-      "value": "18"
+      "offset": 193,
+      "length": 1,
+      "value": "5"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBEpo.swift",
       "kind": "IntegerLiteral",
-      "offset": 874,
-      "length": 10,
-      "value": "19"
+      "offset": 305,
+      "length": 1,
+      "value": "6"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
-      "kind": "IntegerLiteral",
-      "offset": 912,
-      "length": 7,
-      "value": "20"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBEpo.swift",
+      "kind": "StringLiteral",
+      "offset": 421,
+      "length": 2,
+      "value": "\"\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
-      "kind": "IntegerLiteral",
-      "offset": 953,
-      "length": 8,
-      "value": "21"
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBEpo.swift",
+      "kind": "StringLiteral",
+      "offset": 479,
+      "length": 2,
+      "value": "\"\""
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBEpo.swift",
       "kind": "IntegerLiteral",
-      "offset": 992,
-      "length": 7,
-      "value": "22"
+      "offset": 540,
+      "length": 1,
+      "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
       "kind": "IntegerLiteral",
       "offset": 208,
       "length": 1,
       "value": "0"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
       "kind": "IntegerLiteral",
       "offset": 234,
       "length": 7,
       "value": "1"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
       "kind": "IntegerLiteral",
       "offset": 269,
       "length": 8,
       "value": "2"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
       "kind": "IntegerLiteral",
       "offset": 302,
       "length": 6,
       "value": "3"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
       "kind": "IntegerLiteral",
       "offset": 339,
       "length": 7,
       "value": "4"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
       "kind": "IntegerLiteral",
       "offset": 371,
       "length": 7,
       "value": "5"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
       "kind": "IntegerLiteral",
       "offset": 412,
       "length": 8,
       "value": "6"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
       "kind": "IntegerLiteral",
       "offset": 445,
       "length": 6,
       "value": "7"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
       "kind": "IntegerLiteral",
       "offset": 482,
       "length": 10,
       "value": "8"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
       "kind": "IntegerLiteral",
       "offset": 517,
       "length": 6,
       "value": "9"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
       "kind": "IntegerLiteral",
       "offset": 551,
       "length": 5,
       "value": "10"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
       "kind": "IntegerLiteral",
       "offset": 587,
       "length": 7,
       "value": "11"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
       "kind": "IntegerLiteral",
       "offset": 622,
       "length": 5,
       "value": "12"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
       "kind": "IntegerLiteral",
       "offset": 655,
       "length": 5,
       "value": "13"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
       "kind": "IntegerLiteral",
       "offset": 688,
       "length": 5,
       "value": "14"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
       "kind": "IntegerLiteral",
       "offset": 730,
       "length": 10,
       "value": "15"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
       "kind": "IntegerLiteral",
       "offset": 774,
       "length": 9,
       "value": "16"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
       "kind": "IntegerLiteral",
       "offset": 811,
       "length": 6,
       "value": "17"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
       "kind": "IntegerLiteral",
       "offset": 842,
       "length": 4,
       "value": "18"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
       "kind": "IntegerLiteral",
       "offset": 874,
       "length": 10,
       "value": "19"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
       "kind": "IntegerLiteral",
       "offset": 912,
       "length": 7,
       "value": "20"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
       "kind": "IntegerLiteral",
       "offset": 953,
       "length": 8,
       "value": "21"
     },
     {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/IOTBluetooth-iOS\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/Models\/IBLanguage.swift",
       "kind": "IntegerLiteral",
       "offset": 992,
       "length": 7,
       "value": "22"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBReceiveManager.swift",
-      "kind": "IntegerLiteral",
-      "offset": 606,
-      "length": 1,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBReceiveManager.swift",
-      "kind": "IntegerLiteral",
-      "offset": 623,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBReceiveManager.swift",
-      "kind": "IntegerLiteral",
-      "offset": 741,
-      "length": 2,
-      "value": "18"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBReceiveManager.swift",
-      "kind": "IntegerLiteral",
-      "offset": 749,
-      "length": 1,
-      "value": "0"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBReceiveManager.swift",
-      "kind": "IntegerLiteral",
-      "offset": 755,
-      "length": 4,
-      "value": "0x72"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBReceiveManager.swift",
-      "kind": "StringLiteral",
-      "offset": 813,
-      "length": 13,
-      "value": "\"Notify Read\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBReceiveManager.swift",
-      "kind": "StringLiteral",
-      "offset": 829,
-      "length": 6,
-      "value": "\"Read\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBReceiveManager.swift",
-      "kind": "IntegerLiteral",
-      "offset": 922,
-      "length": 1,
-      "value": "3"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBReceiveManager.swift",
-      "kind": "IntegerLiteral",
-      "offset": 926,
-      "length": 1,
-      "value": "6"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBReceiveManager.swift",
-      "kind": "IntegerLiteral",
-      "offset": 966,
-      "length": 1,
-      "value": "7"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBReceiveManager.swift",
-      "kind": "IntegerLiteral",
-      "offset": 970,
-      "length": 2,
-      "value": "10"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBReceiveManager.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1010,
-      "length": 2,
-      "value": "11"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBReceiveManager.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1015,
-      "length": 2,
-      "value": "14"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBReceiveManager.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1053,
-      "length": 2,
-      "value": "15"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBReceiveManager.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1058,
-      "length": 2,
-      "value": "16"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBReceiveManager.swift",
-      "kind": "StringLiteral",
-      "offset": 1114,
-      "length": 4,
-      "value": "\"->\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBReceiveManager.swift",
-      "kind": "StringLiteral",
-      "offset": 1120,
-      "length": 91,
-      "value": "\"pkgTotal = \""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBReceiveManager.swift",
-      "kind": "StringLiteral",
-      "offset": 1143,
-      "length": 1,
-      "value": "\",dataTotal = \""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBReceiveManager.swift",
-      "kind": "StringLiteral",
-      "offset": 1168,
-      "length": 1,
-      "value": "\",pkgIndex = \""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBReceiveManager.swift",
-      "kind": "StringLiteral",
-      "offset": 1191,
-      "length": 1,
-      "value": "\",pkgLen = \""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBReceiveManager.swift",
-      "kind": "StringLiteral",
-      "offset": 1210,
-      "length": 15,
-      "value": "\"\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBReceiveManager.swift",
-      "kind": "StringLiteral",
-      "offset": 1224,
-      "length": 3,
-      "value": "\" \""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBReceiveManager.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1353,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBReceiveManager.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1399,
-      "length": 2,
-      "value": "17"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBReceiveManager.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1446,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBReceiveManager.swift",
-      "kind": "IntegerLiteral",
-      "offset": 1622,
-      "length": 2,
-      "value": "17"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBReceiveManager.swift",
-      "kind": "StringLiteral",
-      "offset": 1713,
-      "length": 51,
-      "value": "\"total = \""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBReceiveManager.swift",
-      "kind": "StringLiteral",
-      "offset": 1734,
-      "length": 1,
-      "value": "\",receive = \""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBReceiveManager.swift",
-      "kind": "StringLiteral",
-      "offset": 1763,
-      "length": 2,
-      "value": "\"\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBReceiveManager.swift",
-      "kind": "StringLiteral",
-      "offset": 2123,
-      "length": 3,
-      "value": "\" \""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBReceiveManager.swift",
-      "kind": "StringLiteral",
-      "offset": 3122,
-      "length": 17,
-      "value": "\"IOTBletooth.mac\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBReceiveManager.swift",
-      "kind": "Array",
-      "offset": 3154,
-      "length": 2,
-      "value": "[]"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBReceiveManager.swift",
-      "kind": "BooleanLiteral",
-      "offset": 3522,
-      "length": 5,
-      "value": "false"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBReceiveManager.swift",
-      "kind": "IntegerLiteral",
-      "offset": 3723,
-      "length": 1,
-      "value": "2"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBReceiveManager.swift",
-      "kind": "BooleanLiteral",
-      "offset": 3815,
-      "length": 4,
-      "value": "true"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBReceiveManager.swift",
-      "kind": "IntegerLiteral",
-      "offset": 3924,
-      "length": 1,
-      "value": "1"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBReceiveManager.swift",
-      "kind": "StringLiteral",
-      "offset": 4005,
-      "length": 26,
-      "value": "\"等待手表同意连接\""
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBReceiveManager.swift",
-      "kind": "IntegerLiteral",
-      "offset": 4084,
-      "length": 1,
-      "value": "3"
-    },
-    {
-      "filePath": "\/Users\/apple\/Desktop\/code\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IOTBluetooth\/IBReceiveManager.swift",
-      "kind": "BooleanLiteral",
-      "offset": 4187,
-      "length": 5,
-      "value": "false"
     }
   ]
 }
\ No newline at end of file
index e3ff89f..1d6e87f 100644 (file)
@@ -1,11 +1,10 @@
 // swift-interface-format-version: 1.0
-// swift-compiler-version: Apple Swift version 5.9.2 effective-4.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5)
-// swift-module-flags: -target arm64-apple-ios13.0 -enable-objc-interop -enable-library-evolution -swift-version 4.2 -enforce-exclusivity=checked -O -module-name IOTBluetooth
-// swift-module-flags-ignorable: -enable-bare-slash-regex
+// swift-compiler-version: Apple Swift version 6.0.3 effective-4.2 (swiftlang-6.0.3.1.10 clang-1600.0.30.1)
+// swift-module-flags: -target arm64-apple-ios13.0 -enable-objc-interop -enable-library-evolution -swift-version 4.2 -enforce-exclusivity=checked -O -enable-bare-slash-regex -module-name IOTBluetooth
+// swift-module-flags-ignorable: -no-verify-emitted-module-interface
 import CoreBluetooth
 import Foundation
 @_exported import IOTBluetooth
-import MixSdk
 import Swift
 import _Concurrency
 import _StringProcessing
@@ -34,6 +33,47 @@ import _SwiftConcurrencyShims
   }
   @objc deinit
 }
+public class IBPush {
+  public var type: IOTBluetooth.IBPushType
+  public var state: Swift.Int
+  public init()
+  public init(type: IOTBluetooth.IBPushType, state: Swift.Int)
+  public static var all: [IOTBluetooth.IBPush] {
+    get
+  }
+  @objc deinit
+}
+public enum IBPushType : Swift.Int {
+  case tel
+  case sms
+  case email
+  case wechat
+  case qq
+  case facebook
+  case twitter
+  case whatsapp
+  case linkedIn
+  case instagram
+  case messenger
+  case snapchat
+  case line
+  case talk
+  case viber
+  case skype
+  case telegram
+  case other
+  public var name: Swift.String {
+    get
+  }
+  public var bundleId: Swift.String {
+    get
+  }
+  public init?(rawValue: Swift.Int)
+  public typealias RawValue = Swift.Int
+  public var rawValue: Swift.Int {
+    get
+  }
+}
 public class IBHistoryStandItem {
   public var time: Swift.Int
   public init()
@@ -109,6 +149,10 @@ public enum IBParameter {
   case fetchFils(IOTBluetooth.IBFile)
   case aiValid(IOTBluetooth.IBAiValid)
   case aiResponse(IOTBluetooth.IBAiResponse)
+  case setPassword(IOTBluetooth.IBPassword)
+  case setPush([IOTBluetooth.IBPush])
+  case setSosContact([IOTBluetooth.IBContact])
+  case sendSchedule([IOTBluetooth.IBSchedule])
 }
 public enum IBMotionMode : Swift.Int {
   case walking
@@ -290,6 +334,15 @@ extension IOTBluetooth.IBNotify.Name {
   public static let trainStateDidChanged: IOTBluetooth.IBNotify.Name
   public static let trainingData: IOTBluetooth.IBNotify.Name
 }
+public class IBPassword : Swift.Codable {
+  public var type: Swift.Int
+  public var password: Swift.String
+  public init()
+  public init(type: Swift.Int, password: Swift.String)
+  @objc deinit
+  public func encode(to encoder: any Swift.Encoder) throws
+  required public init(from decoder: any Swift.Decoder) throws
+}
 extension Swift.String {
   public var binary: Swift.String {
     get
@@ -462,6 +515,13 @@ public enum IBFrequency : Swift.Int {
   @objc deinit
 }
 extension IOTBluetooth.IBAbility {
+  public static let getPasssword: IOTBluetooth.IBAbility
+  public static let setPasssword: IOTBluetooth.IBAbility
+  public static let getPushConfig: IOTBluetooth.IBAbility
+  public static let setPushConfig: IOTBluetooth.IBAbility
+  public static let getSosContact: IOTBluetooth.IBAbility
+  public static let setSosContact: IOTBluetooth.IBAbility
+  public static let sendSchedule: IOTBluetooth.IBAbility
   public static let userData: IOTBluetooth.IBAbility
   public static let about: IOTBluetooth.IBAbility
   public static let switchDial: IOTBluetooth.IBAbility
@@ -575,6 +635,13 @@ public class IBSendTime : Swift.Codable {
   public func encode(to encoder: any Swift.Encoder) throws
   required public init(from decoder: any Swift.Decoder) throws
 }
+public class IBContact {
+  public var gender: Swift.Int
+  public var name: Swift.String
+  public var tel: Swift.String
+  public init()
+  @objc deinit
+}
 @_hasMissingDesignatedInitializers public class IBTargetStep {
   public var value: Swift.Int
   public var ring: Swift.Int
@@ -662,6 +729,15 @@ public class IBPhoneInfo : Swift.Codable {
   public func encode(to encoder: any Swift.Encoder) throws
   required public init(from decoder: any Swift.Decoder) throws
 }
+public class IBSchedule {
+  public var id: Swift.Int
+  public var title: Swift.String
+  public var begin: Swift.Int
+  public var end: Swift.Int
+  public var content: Swift.String?
+  public init()
+  @objc deinit
+}
 public class IBHistorySleepItem {
   public var sleepId: Swift.Int
   public var type: Swift.Int
@@ -942,6 +1018,9 @@ public enum IBLanguage : Swift.Int {
     get
   }
 }
+extension IOTBluetooth.IBPushType : Swift.Equatable {}
+extension IOTBluetooth.IBPushType : Swift.Hashable {}
+extension IOTBluetooth.IBPushType : Swift.RawRepresentable {}
 extension IOTBluetooth.IBMotionMode : Swift.Equatable {}
 extension IOTBluetooth.IBMotionMode : Swift.Hashable {}
 extension IOTBluetooth.IBMotionMode : Swift.RawRepresentable {}
index 8cab4f3..bd023a9 100644 (file)
Binary files a/Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.framework/Modules/IOTBluetooth.swiftmodule/arm64-apple-ios.swiftdoc and b/Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.framework/Modules/IOTBluetooth.swiftmodule/arm64-apple-ios.swiftdoc differ
index e3ff89f..1d6e87f 100644 (file)
@@ -1,11 +1,10 @@
 // swift-interface-format-version: 1.0
-// swift-compiler-version: Apple Swift version 5.9.2 effective-4.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5)
-// swift-module-flags: -target arm64-apple-ios13.0 -enable-objc-interop -enable-library-evolution -swift-version 4.2 -enforce-exclusivity=checked -O -module-name IOTBluetooth
-// swift-module-flags-ignorable: -enable-bare-slash-regex
+// swift-compiler-version: Apple Swift version 6.0.3 effective-4.2 (swiftlang-6.0.3.1.10 clang-1600.0.30.1)
+// swift-module-flags: -target arm64-apple-ios13.0 -enable-objc-interop -enable-library-evolution -swift-version 4.2 -enforce-exclusivity=checked -O -enable-bare-slash-regex -module-name IOTBluetooth
+// swift-module-flags-ignorable: -no-verify-emitted-module-interface
 import CoreBluetooth
 import Foundation
 @_exported import IOTBluetooth
-import MixSdk
 import Swift
 import _Concurrency
 import _StringProcessing
@@ -34,6 +33,47 @@ import _SwiftConcurrencyShims
   }
   @objc deinit
 }
+public class IBPush {
+  public var type: IOTBluetooth.IBPushType
+  public var state: Swift.Int
+  public init()
+  public init(type: IOTBluetooth.IBPushType, state: Swift.Int)
+  public static var all: [IOTBluetooth.IBPush] {
+    get
+  }
+  @objc deinit
+}
+public enum IBPushType : Swift.Int {
+  case tel
+  case sms
+  case email
+  case wechat
+  case qq
+  case facebook
+  case twitter
+  case whatsapp
+  case linkedIn
+  case instagram
+  case messenger
+  case snapchat
+  case line
+  case talk
+  case viber
+  case skype
+  case telegram
+  case other
+  public var name: Swift.String {
+    get
+  }
+  public var bundleId: Swift.String {
+    get
+  }
+  public init?(rawValue: Swift.Int)
+  public typealias RawValue = Swift.Int
+  public var rawValue: Swift.Int {
+    get
+  }
+}
 public class IBHistoryStandItem {
   public var time: Swift.Int
   public init()
@@ -109,6 +149,10 @@ public enum IBParameter {
   case fetchFils(IOTBluetooth.IBFile)
   case aiValid(IOTBluetooth.IBAiValid)
   case aiResponse(IOTBluetooth.IBAiResponse)
+  case setPassword(IOTBluetooth.IBPassword)
+  case setPush([IOTBluetooth.IBPush])
+  case setSosContact([IOTBluetooth.IBContact])
+  case sendSchedule([IOTBluetooth.IBSchedule])
 }
 public enum IBMotionMode : Swift.Int {
   case walking
@@ -290,6 +334,15 @@ extension IOTBluetooth.IBNotify.Name {
   public static let trainStateDidChanged: IOTBluetooth.IBNotify.Name
   public static let trainingData: IOTBluetooth.IBNotify.Name
 }
+public class IBPassword : Swift.Codable {
+  public var type: Swift.Int
+  public var password: Swift.String
+  public init()
+  public init(type: Swift.Int, password: Swift.String)
+  @objc deinit
+  public func encode(to encoder: any Swift.Encoder) throws
+  required public init(from decoder: any Swift.Decoder) throws
+}
 extension Swift.String {
   public var binary: Swift.String {
     get
@@ -462,6 +515,13 @@ public enum IBFrequency : Swift.Int {
   @objc deinit
 }
 extension IOTBluetooth.IBAbility {
+  public static let getPasssword: IOTBluetooth.IBAbility
+  public static let setPasssword: IOTBluetooth.IBAbility
+  public static let getPushConfig: IOTBluetooth.IBAbility
+  public static let setPushConfig: IOTBluetooth.IBAbility
+  public static let getSosContact: IOTBluetooth.IBAbility
+  public static let setSosContact: IOTBluetooth.IBAbility
+  public static let sendSchedule: IOTBluetooth.IBAbility
   public static let userData: IOTBluetooth.IBAbility
   public static let about: IOTBluetooth.IBAbility
   public static let switchDial: IOTBluetooth.IBAbility
@@ -575,6 +635,13 @@ public class IBSendTime : Swift.Codable {
   public func encode(to encoder: any Swift.Encoder) throws
   required public init(from decoder: any Swift.Decoder) throws
 }
+public class IBContact {
+  public var gender: Swift.Int
+  public var name: Swift.String
+  public var tel: Swift.String
+  public init()
+  @objc deinit
+}
 @_hasMissingDesignatedInitializers public class IBTargetStep {
   public var value: Swift.Int
   public var ring: Swift.Int
@@ -662,6 +729,15 @@ public class IBPhoneInfo : Swift.Codable {
   public func encode(to encoder: any Swift.Encoder) throws
   required public init(from decoder: any Swift.Decoder) throws
 }
+public class IBSchedule {
+  public var id: Swift.Int
+  public var title: Swift.String
+  public var begin: Swift.Int
+  public var end: Swift.Int
+  public var content: Swift.String?
+  public init()
+  @objc deinit
+}
 public class IBHistorySleepItem {
   public var sleepId: Swift.Int
   public var type: Swift.Int
@@ -942,6 +1018,9 @@ public enum IBLanguage : Swift.Int {
     get
   }
 }
+extension IOTBluetooth.IBPushType : Swift.Equatable {}
+extension IOTBluetooth.IBPushType : Swift.Hashable {}
+extension IOTBluetooth.IBPushType : Swift.RawRepresentable {}
 extension IOTBluetooth.IBMotionMode : Swift.Equatable {}
 extension IOTBluetooth.IBMotionMode : Swift.Hashable {}
 extension IOTBluetooth.IBMotionMode : Swift.RawRepresentable {}
index 1d13aaf..b5f673f 100644 (file)
Binary files a/Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.framework/Modules/IOTBluetooth.swiftmodule/arm64-apple-ios.swiftmodule and b/Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.framework/Modules/IOTBluetooth.swiftmodule/arm64-apple-ios.swiftmodule differ
diff --git a/Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.framework/_CodeSignature/CodeDirectory b/Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.framework/_CodeSignature/CodeDirectory
new file mode 100644 (file)
index 0000000..574e550
Binary files /dev/null and b/Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.framework/_CodeSignature/CodeDirectory differ
diff --git a/Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.framework/_CodeSignature/CodeRequirements b/Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.framework/_CodeSignature/CodeRequirements
new file mode 100644 (file)
index 0000000..7397fda
Binary files /dev/null and b/Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.framework/_CodeSignature/CodeRequirements differ
diff --git a/Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.framework/_CodeSignature/CodeRequirements-1 b/Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.framework/_CodeSignature/CodeRequirements-1
new file mode 100644 (file)
index 0000000..8df23d0
Binary files /dev/null and b/Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.framework/_CodeSignature/CodeRequirements-1 differ
index a39c5a1..623bf8f 100644 (file)
@@ -10,7 +10,7 @@
                </data>
                <key>Headers/IOTBluetooth-Swift.h</key>
                <data>
-               4u7s3lgUU0ZRCs9KLo9RlIeeDdY=
+               luzWnQ+hMKIlTxr0f7z9TWyQBLY=
                </data>
                <key>Headers/IOTBluetooth.h</key>
                <data>
                </data>
                <key>Info.plist</key>
                <data>
-               EhrQc/+GENRMda4/EH3YiGtlFfs=
+               B8fADgmg9OhFP1iTlsEj70ueUZU=
                </data>
                <key>Modules/IOTBluetooth.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo</key>
                <data>
-               Xd+6FadCG/e00/SbQiZBoH2ak4g=
+               XSbxdn1cnNs6DZT57SMNLyf+HOY=
                </data>
                <key>Modules/IOTBluetooth.swiftmodule/arm64-apple-ios.abi.json</key>
                <data>
-               HI7hQPlR2SbqXr08cD3LuvrDx4Y=
+               zH5b139fZH5YPJlXQ4djsuYmoks=
                </data>
                <key>Modules/IOTBluetooth.swiftmodule/arm64-apple-ios.private.swiftinterface</key>
                <data>
-               nZG5CM56VGfa2pCNjsFdMuyyyVg=
+               kEOUCLrSXjc+UkDENmWXbd0GHTM=
                </data>
                <key>Modules/IOTBluetooth.swiftmodule/arm64-apple-ios.swiftdoc</key>
                <data>
-               N8uLFZexijo9zMeNDQmCESJERk0=
+               ix9KIXfvRaiBezkeFbh+Zm6iaMs=
                </data>
                <key>Modules/IOTBluetooth.swiftmodule/arm64-apple-ios.swiftinterface</key>
                <data>
-               nZG5CM56VGfa2pCNjsFdMuyyyVg=
+               kEOUCLrSXjc+UkDENmWXbd0GHTM=
                </data>
                <key>Modules/IOTBluetooth.swiftmodule/arm64-apple-ios.swiftmodule</key>
                <data>
-               epeSFLhUak/AegK9lUEDoluhwhQ=
+               7pWTpI1uYLUKSNcU65hjT1yTmkQ=
                </data>
                <key>Modules/module.modulemap</key>
                <data>
        <dict>
                <key>AIAudio.sbc</key>
                <dict>
+                       <key>hash</key>
+                       <data>
+                       RpFgliSugx7VRkEHRc78ZrqRreA=
+                       </data>
                        <key>hash2</key>
                        <data>
                        lug8RrnIKGI1YtMEMhWLfcDk+wMEUF5obxlr3Cxw6p8=
                </dict>
                <key>Headers/IOTBluetooth-Swift.h</key>
                <dict>
+                       <key>hash</key>
+                       <data>
+                       luzWnQ+hMKIlTxr0f7z9TWyQBLY=
+                       </data>
                        <key>hash2</key>
                        <data>
-                       Xd0LmXqn8nVUZTLM0kPVtRYwhJozURjexTerWZVZCg0=
+                       1E/uDm8vNPhK8Gnczl6UVHO9fUtGU0jmTC8AxNJHz2Y=
                        </data>
                </dict>
                <key>Headers/IOTBluetooth.h</key>
                <dict>
+                       <key>hash</key>
+                       <data>
+                       CrKsp3/hSXf2W2Rs1jwI971L6AA=
+                       </data>
                        <key>hash2</key>
                        <data>
                        KtifMyVkNOlsgy1BY5TN2xjfY/5n6yI4GLJspf4NES4=
                </dict>
                <key>Modules/IOTBluetooth.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo</key>
                <dict>
+                       <key>hash</key>
+                       <data>
+                       XSbxdn1cnNs6DZT57SMNLyf+HOY=
+                       </data>
                        <key>hash2</key>
                        <data>
-                       DRXHRqxqAPOF26Ykkyxp6NmW9t4nPg8ageaRVFnpqs8=
+                       +X+g6H19gmntfw0r2PoakeESTukm17kS5+9zcH2mR/k=
                        </data>
                </dict>
                <key>Modules/IOTBluetooth.swiftmodule/arm64-apple-ios.abi.json</key>
                <dict>
+                       <key>hash</key>
+                       <data>
+                       zH5b139fZH5YPJlXQ4djsuYmoks=
+                       </data>
                        <key>hash2</key>
                        <data>
-                       3QIWxXinIghXukooR3LOMtjmQpdasdHGmi+p6rioPTc=
+                       3xUGYZs6W5lRUVrwnbbUFLmxFFagnvxi1/A1SoAxZvs=
                        </data>
                </dict>
                <key>Modules/IOTBluetooth.swiftmodule/arm64-apple-ios.private.swiftinterface</key>
                <dict>
+                       <key>hash</key>
+                       <data>
+                       kEOUCLrSXjc+UkDENmWXbd0GHTM=
+                       </data>
                        <key>hash2</key>
                        <data>
-                       0B82j99gBNGsxG1Oc3ZTTEeKVM85W/XVHIid5u+y8fU=
+                       bumi5dmMMniMZ88m9ydzdDaE/0z4YbNkS030HY3FHlY=
                        </data>
                </dict>
                <key>Modules/IOTBluetooth.swiftmodule/arm64-apple-ios.swiftdoc</key>
                <dict>
+                       <key>hash</key>
+                       <data>
+                       ix9KIXfvRaiBezkeFbh+Zm6iaMs=
+                       </data>
                        <key>hash2</key>
                        <data>
-                       SGmXdFXpzCNaYxdt/1oW3BFX5MXeNegzx42u3WXG6kg=
+                       XaJ5MBtdEXlhxmpO3QZx3FuLFe4BxKHPsNHTQwfTRaw=
                        </data>
                </dict>
                <key>Modules/IOTBluetooth.swiftmodule/arm64-apple-ios.swiftinterface</key>
                <dict>
+                       <key>hash</key>
+                       <data>
+                       kEOUCLrSXjc+UkDENmWXbd0GHTM=
+                       </data>
                        <key>hash2</key>
                        <data>
-                       0B82j99gBNGsxG1Oc3ZTTEeKVM85W/XVHIid5u+y8fU=
+                       bumi5dmMMniMZ88m9ydzdDaE/0z4YbNkS030HY3FHlY=
                        </data>
                </dict>
                <key>Modules/IOTBluetooth.swiftmodule/arm64-apple-ios.swiftmodule</key>
                <dict>
+                       <key>hash</key>
+                       <data>
+                       7pWTpI1uYLUKSNcU65hjT1yTmkQ=
+                       </data>
                        <key>hash2</key>
                        <data>
-                       1850HxTfSzyipId5RLpOidHTa4BMFtIxDbguSuZqTBs=
+                       Lvfu+Jb1QlFvFe6qqYGn/toNOL4onkwpvu92K17mTM4=
                        </data>
                </dict>
                <key>Modules/module.modulemap</key>
                <dict>
+                       <key>hash</key>
+                       <data>
+                       pRm+64P7ZdWVtxHxqRuknKgapcg=
+                       </data>
                        <key>hash2</key>
                        <data>
                        oFH+JoszZH+8P329Q+m8Vqe6dNQeyY879pW0aT/2770=
diff --git a/Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.framework/_CodeSignature/CodeSignature b/Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.framework/_CodeSignature/CodeSignature
new file mode 100644 (file)
index 0000000..0b46277
Binary files /dev/null and b/Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.framework/_CodeSignature/CodeSignature differ
index 93b9421..aed9eac 100644 (file)
@@ -10,9 +10,9 @@
                1839DBDB2C18754600E33B6E /* galaxy.lzma in Resources */ = {isa = PBXBuildFile; fileRef = 1839DBD72C18754600E33B6E /* galaxy.lzma */; };
                1839DBDC2C18754600E33B6E /* 黄沙-名决.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 1839DBD82C18754600E33B6E /* 黄沙-名决.mp3 */; };
                1839DBDD2C18754600E33B6E /* 大约在冬季.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 1839DBD92C18754600E33B6E /* 大约在冬季.mp3 */; };
-               184B94CE2BF610790042BEB3 /* IOTBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 184B94CC2BF6102C0042BEB3 /* IOTBluetooth.framework */; };
-               184B94CF2BF610790042BEB3 /* IOTBluetooth.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 184B94CC2BF6102C0042BEB3 /* IOTBluetooth.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
                185E9C392C255C460078C808 /* 20240604_155433_2_V1.0.1_20240618_113111_ota.fwpkg in Resources */ = {isa = PBXBuildFile; fileRef = 185E9C382C255C460078C808 /* 20240604_155433_2_V1.0.1_20240618_113111_ota.fwpkg */; };
+               3FD5D1412D3E3786009E86FE /* AIAudio.sbc in Resources */ = {isa = PBXBuildFile; fileRef = 3FD5D1402D3E3786009E86FE /* AIAudio.sbc */; };
+               3FD5D1422D3E37F9009E86FE /* IOTBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 184B94CC2BF6102C0042BEB3 /* IOTBluetooth.framework */; };
                8A1DFF522B9EB4F800B735FF /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A1DFF512B9EB4F800B735FF /* AppDelegate.swift */; };
                8A1DFF562B9EB4F800B735FF /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A1DFF552B9EB4F800B735FF /* ViewController.swift */; };
                8A1DFF592B9EB4F900B735FF /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8A1DFF572B9EB4F900B735FF /* Main.storyboard */; };
                8A9F6ABE2BA0475100DA520F /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8A0A39C82B980CC2006A3B18 /* CoreBluetooth.framework */; };
 /* End PBXBuildFile section */
 
-/* Begin PBXCopyFilesBuildPhase section */
-               8A9F6AC62BA05CB500DA520F /* Embed Frameworks */ = {
-                       isa = PBXCopyFilesBuildPhase;
-                       buildActionMask = 2147483647;
-                       dstPath = "";
-                       dstSubfolderSpec = 10;
-                       files = (
-                               184B94CF2BF610790042BEB3 /* IOTBluetooth.framework in Embed Frameworks */,
-                       );
-                       name = "Embed Frameworks";
-                       runOnlyForDeploymentPostprocessing = 0;
-               };
-/* End PBXCopyFilesBuildPhase section */
-
 /* Begin PBXFileReference section */
                1839DBD72C18754600E33B6E /* galaxy.lzma */ = {isa = PBXFileReference; lastKnownFileType = file; path = galaxy.lzma; sourceTree = "<group>"; };
                1839DBD82C18754600E33B6E /* 黄沙-名决.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = "黄沙-名决.mp3"; sourceTree = "<group>"; };
                1839DBD92C18754600E33B6E /* 大约在冬季.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = "大约在冬季.mp3"; sourceTree = "<group>"; };
                184B94CC2BF6102C0042BEB3 /* IOTBluetooth.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = IOTBluetooth.framework; sourceTree = "<group>"; };
                185E9C382C255C460078C808 /* 20240604_155433_2_V1.0.1_20240618_113111_ota.fwpkg */ = {isa = PBXFileReference; lastKnownFileType = file; path = 20240604_155433_2_V1.0.1_20240618_113111_ota.fwpkg; sourceTree = "<group>"; };
+               3FD5D1402D3E3786009E86FE /* AIAudio.sbc */ = {isa = PBXFileReference; lastKnownFileType = file; path = AIAudio.sbc; sourceTree = "<group>"; };
                8A0A39C82B980CC2006A3B18 /* CoreBluetooth.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreBluetooth.framework; path = System/Library/Frameworks/CoreBluetooth.framework; sourceTree = SDKROOT; };
                8A1DFF4F2B9EB4F800B735FF /* Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Example.app; sourceTree = BUILT_PRODUCTS_DIR; };
                8A1DFF512B9EB4F800B735FF /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
@@ -66,7 +53,7 @@
                        isa = PBXFrameworksBuildPhase;
                        buildActionMask = 2147483647;
                        files = (
-                               184B94CE2BF610790042BEB3 /* IOTBluetooth.framework in Frameworks */,
+                               3FD5D1422D3E37F9009E86FE /* IOTBluetooth.framework in Frameworks */,
                                8A9F6ABE2BA0475100DA520F /* CoreBluetooth.framework in Frameworks */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
@@ -77,6 +64,7 @@
                1839DBD52C18754600E33B6E /* Resource */ = {
                        isa = PBXGroup;
                        children = (
+                               3FD5D1402D3E3786009E86FE /* AIAudio.sbc */,
                                185E9C382C255C460078C808 /* 20240604_155433_2_V1.0.1_20240618_113111_ota.fwpkg */,
                                1839DBD72C18754600E33B6E /* galaxy.lzma */,
                                1839DBD82C18754600E33B6E /* 黄沙-名决.mp3 */,
                                8A1DFF4B2B9EB4F800B735FF /* Sources */,
                                8A1DFF4C2B9EB4F800B735FF /* Frameworks */,
                                8A1DFF4D2B9EB4F800B735FF /* Resources */,
-                               8A9F6AC62BA05CB500DA520F /* Embed Frameworks */,
                        );
                        buildRules = (
                        );
                                8A1DFF5B2B9EB4F900B735FF /* Assets.xcassets in Resources */,
                                8A1DFF592B9EB4F900B735FF /* Main.storyboard in Resources */,
                                185E9C392C255C460078C808 /* 20240604_155433_2_V1.0.1_20240618_113111_ota.fwpkg in Resources */,
+                               3FD5D1412D3E3786009E86FE /* AIAudio.sbc in Resources */,
                                1839DBDD2C18754600E33B6E /* 大约在冬季.mp3 in Resources */,
                                1839DBDB2C18754600E33B6E /* galaxy.lzma in Resources */,
                        );
diff --git a/Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.xcodeproj/project.xcworkspace/xcuserdata/yaozuopan.xcuserdatad/UserInterfaceState.xcuserstate b/Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.xcodeproj/project.xcworkspace/xcuserdata/yaozuopan.xcuserdatad/UserInterfaceState.xcuserstate
new file mode 100644 (file)
index 0000000..d47c775
Binary files /dev/null and b/Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.xcodeproj/project.xcworkspace/xcuserdata/yaozuopan.xcuserdatad/UserInterfaceState.xcuserstate differ
diff --git a/Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/xcschememanagement.plist b/Doc/IOTBluetooth_iOS/IOTBluetooth/IOTBluetooth.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/xcschememanagement.plist
new file mode 100644 (file)
index 0000000..329a244
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+       <key>SchemeUserState</key>
+       <dict>
+               <key>Example.xcscheme_^#shared#^_</key>
+               <dict>
+                       <key>orderHint</key>
+                       <integer>0</integer>
+               </dict>
+       </dict>
+</dict>
+</plist>
index aca7796..d2ebfe9 100644 (file)
@@ -17,7 +17,8 @@ class AbilityViewController: BaseViewController {
     override func viewDidLoad() {
         super.viewDidLoad()
         title = "已连接" + IBManager.currentConnected!.name
-        navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Log", style: .plain, target: self, action: #selector(showLog))
+        navigationItem.rightBarButtonItems = [UIBarButtonItem(title: "Log", style: .plain, target: self, action: #selector(showLog)),
+                                              UIBarButtonItem(title: "chat", style: .plain, target: self, action: #selector(chatAction))]
     }
     
     deinit {
@@ -28,6 +29,10 @@ class AbilityViewController: BaseViewController {
         let vc = storyboard!.instantiateViewController(identifier: "LogViewController")
         navigationController?.pushViewController(vc, animated: true)
     }
+    @objc func chatAction(){
+        let vc = ChatViewController()
+        navigationController?.pushViewController(vc, animated: true)
+    }
 }
 
 extension AbilityViewController: UITableViewDelegate, UITableViewDataSource {
@@ -146,16 +151,16 @@ extension AbilityViewController{
 //    ID: 103 | Name: jellyfish
 //    ID: 1028 | Name: KUMI
         
-        guard let path = Bundle.main.path(forResource: "galaxy", ofType: "lzma") else {return}
+        guard let path = Bundle.main.path(forResource: "nangua", ofType: "lzma") else {return}
         let file = IBDialFile()
         file.filePath = path
-        file.fileName = "galaxy.lzma"
+        file.fileName = "nangua.lzma"
         
         let info = IBDial()
-        info.UID = 10002
+        info.UID = 120
         info.files = [file]
         
-        info.theme = "黑暗001"
+        info.theme = "万圣南瓜"
         
 //        activityIndicatorView.startAnimating()
         IBFileSender().dial(info).progress({ total, current in
index 983bdde..302a87f 100644 (file)
@@ -17,6 +17,10 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
         // Override point for customization after application launch.
         IBManager.isDebug = true
         IBManager.initializationSDK()
+        IBAiManager.shared.productId = "WTxAKo2qD2pXOZZLW3zz"
+        IBAiManager.shared.productKey = "YqggeKCxfEOVQGjUYrpQQdEstGpvojzn"
+        IBAiManager.shared.chatGptKey = "sk-proj-04ogvrZQqyaiv1OWw8OZT3BlbkFJG9Gyr8oFvRdmr3oXQNbX"
+
         
         return true
     }
diff --git a/IOTBluetooth/IOTBluetooth/Example/ChatCell.swift b/IOTBluetooth/IOTBluetooth/Example/ChatCell.swift
new file mode 100644 (file)
index 0000000..2276150
--- /dev/null
@@ -0,0 +1,66 @@
+//
+//  ChatCell.swift
+//  IOTBluetooth
+//
+//  Created by liangshi on 2025/2/8.
+//
+
+
+
+import UIKit
+import IOTBluetooth
+let kScreenWidth = UIScreen.main.bounds.size.width
+class ChatCell:UITableViewCell{
+    static let ID =  "ChatCell"
+    var bgView = UIView()
+    var msgLabel = UILabel()
+    
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+        
+        
+        bgView.layer.cornerRadius = 10
+        bgView.layer.masksToBounds = true
+        msgLabel.numberOfLines = 0
+        
+        contentView.addSubview(bgView)
+        bgView.addSubview(msgLabel)
+        
+        bgView.snp.makeConstraints { make in
+            make.top.bottom.equalToSuperview().inset(10)
+//            make.width.lessThanOrEqualTo(kScreenWidth - 40)
+        }
+        
+        msgLabel.snp.makeConstraints { make in
+            make.top.bottom.equalToSuperview().inset(5)
+            make.left.right.equalToSuperview().inset(10)
+            make.width.lessThanOrEqualTo(kScreenWidth - 100)
+        }
+    }
+    
+    required init?(coder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    var data:IBAiResponse!{
+        didSet{
+            if data.type == 1 {
+                bgView.backgroundColor = .lightGray
+                bgView.snp.remakeConstraints { make in
+                    make.top.bottom.equalToSuperview().inset(10)
+                    //                    make.width.lessThanOrEqualTo(kScreenWidth - 40)
+                    make.right.equalToSuperview().inset(20)
+                }
+            }
+            else{
+                bgView.backgroundColor = .systemGreen
+                bgView.snp.remakeConstraints { make in
+                    make.top.bottom.equalToSuperview().inset(10)
+                    //                    make.width.lessThanOrEqualTo(kScreenWidth - 40)
+                    make.left.equalToSuperview().inset(20)
+                }
+            }
+            msgLabel.text = data.value
+        }
+    }
+}
diff --git a/IOTBluetooth/IOTBluetooth/Example/ChatViewController.swift b/IOTBluetooth/IOTBluetooth/Example/ChatViewController.swift
new file mode 100644 (file)
index 0000000..82bfb4f
--- /dev/null
@@ -0,0 +1,145 @@
+//
+//  Untitled.swift
+//  IOTBluetooth
+//
+//  Created by liangshi on 2025/2/8.
+//
+
+import UIKit
+import MixSdk
+import SnapKit
+import Toast_Swift
+import IOTBluetooth
+class ChatViewController: UIViewController{
+    let tableView = UITableView(frame: CGRectZero, style: .plain)
+
+    var list:[IBAiResponse] = [
+
+    ]
+
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        // Do any additional setup after loading the view.
+        
+        setupViews()
+        setupChatCallBack()
+        //设置默认平台
+        self.title = MSPlatform.doubao.title
+
+    }
+    
+    
+    func setupViews(){
+        self.title = "大模型对话"
+        self.view.backgroundColor = .white
+        self.navigationItem.rightBarButtonItems = [UIBarButtonItem(title: "切换平台", style: .done, target: self, action: #selector(changePlatform)),UIBarButtonItem(title: "clean", style: .done, target: self, action: #selector(cleanAction))]
+
+        
+        tableView.delegate = self
+        tableView.dataSource = self
+        tableView.estimatedRowHeight = 60
+        tableView.register(ChatCell.self, forCellReuseIdentifier: ChatCell.ID)
+        view.addSubview(tableView)
+        tableView.snp.makeConstraints { make in
+            make.top.equalToSuperview().inset(80)
+            make.left.right.equalToSuperview()
+            make.bottom.equalToSuperview()
+        }
+    }
+    
+    func setupChatCallBack(){
+        IBAiManager.shared.aiResponse = {[weak self] response in
+            print(response.description)
+            guard let self = self else {return}
+            if response.state == "end",response.type != 0 {
+                list.append(response)
+                tableView.reloadData()
+            }
+
+        }
+        
+//        let chat = MixSdk.shared.chat
+//        chat.connectStateCallBack = {[weak self] state in
+//            guard let self = self else {return}
+//            if state == .disConnected{
+//                textView.text += Date().format(.full) + " 断开连接。。。"  + "\n"
+//                let range = NSMakeRange(textView.text.count - 1, 1)
+//                textView.scrollRangeToVisible(range)
+//            }
+//            else{
+//                textView.text += Date().format(.full) + " 已连接。。。"  + "\n"
+//                let range = NSMakeRange(textView.text.count - 1, 1)
+//                textView.scrollRangeToVisible(range)
+//            }
+//        }
+//        
+//        chat.callBack = {[weak self] model in
+//            guard let self = self else {return}
+//            
+//            if model.type == "start" {
+//                textView.text += Date().format(.full) + "[receive] "
+//            }
+//            else if model.type == "end" {
+//                textView.text += "\n"
+//            }
+//            else if model.type == "middle"{
+//                textView.text += model.content ?? ""
+//            }
+//            let range = NSMakeRange(self.textView.text.count - 1, 1)
+//            self.textView.scrollRangeToVisible(range)
+//        }
+    }
+    
+    
+    @objc func changePlatform(){
+        let vc = UIAlertController(title: nil, message: "请选择", preferredStyle: .actionSheet)
+        vc.addAction( UIAlertAction(title: MSPlatform.doubao.title, style: .default) { action in
+            self.title = MSPlatform.doubao.title
+        })
+        vc.addAction(UIAlertAction(title:MSPlatform.yiyan.title, style: .default) { action in
+            self.title = MSPlatform.yiyan.title
+        })
+        vc.addAction(UIAlertAction(title: MSPlatform.kimi.title, style: .default) { action in
+            self.title = MSPlatform.kimi.title
+        })
+        vc.addAction(UIAlertAction(title: MSPlatform.xunfei.title, style: .default) { action in
+            self.title = MSPlatform.xunfei.title
+        })
+        vc.addAction(UIAlertAction(title: MSPlatform.aliyun.title, style: .default) { action in
+//            MixSdk.shared.setPlatform(.aliyun)
+            self.title = MSPlatform.aliyun.title
+        })
+        vc.addAction(UIAlertAction(title: MSPlatform.chatGPT.title, style: .default) { action in
+//            MixSdk.shared.setPlatform(.chatGPT, key: gptKey)
+//            MixSdk.shared.chatGpt.changeModel(model: gptModel)
+            self.title = MSPlatform.chatGPT.title
+        })
+        
+        vc.addAction(UIAlertAction(title: "取消", style: .cancel) { action in
+        })
+        
+        self.present(vc, animated: true)
+    }
+    
+    @objc func cleanAction(){
+//        MixSdk.shared.chat.reset()
+    }
+}
+
+extension ChatViewController:UITableViewDelegate,UITableViewDataSource {
+    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+        return list.count
+    }
+    
+    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+        var cell = tableView.dequeueReusableCell(withIdentifier: ChatCell.ID, for: indexPath) as? ChatCell
+        if cell == nil{
+            cell = ChatCell(style: .default, reuseIdentifier: ChatCell.ID)
+        }
+        cell?.data = list[indexPath.row]
+        return cell!
+    }
+    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
+
+    }
+}
index f824194..139e1bd 100644 (file)
@@ -11,41 +11,41 @@ import IOTBluetooth
 
 
 let datas: [(ability: IBAbility, label: String, parameters: [IBParameter])] = [
-    (.sendSchedule,"发送日程管理给手表",[.sendSchedule([IBSchedule()])]),
-    (.getSosContact,"获取OS紧急联系人",[]),
-    (.setSosContact,"设置SOS紧急联系人",[.setSosContact([IBContact()])]),
-    
-    (.getPushConfig,"获取推送配置",[]),
-    (.setPushConfig,"设置推送",[.setPush(IBPush.all)]),
-    
-    (.getPasssword,"获取密码",[]),
-    (.setPasssword,"启用密码",[.setPassword(IBPassword(type: 1, password: "123456"))]),
-    (.setPasssword,"删除密码",[.setPassword(IBPassword(type: 0, password: ""))]),
-    
-    (.userData,"设置用户数据",[.userInfo(IBUserInfo())]),
-    (.language, "设置语言", [.language(.chinese)]),
-    (.about,"关于本机内容",[]),
-    (.find, "开始查找手表", [.action(1)]),
-    (.find, "停止查找手表", [.action(0)]),
-    (.message, "开启消息推送功能", [.action(1)]),
-    (.message, "关闭消息推送功能", [.action(0)]),
-    
-    (.takePhoto, "开启手势拍照", [.action(1)]),
-    (.takePhoto, "关闭手势拍照", [.action(0)]),
-    (.restore, "恢复出厂设置", []),
-    (.reboot, "重新启动", []),
-    (.shutdown, "关机", []),
-    (.fetchScreen, "获取手表屏幕参数", []),
-    (.screen, "设置手表屏幕参数", [.screen(Config.setScreen())]),
-    (.fetchBattery, "获取电量", []),
-    (.fetchClock, "获取闹钟设置", []),
-    (.setClock, "发送闹钟设置", [.clock(IBClock())]),
+//    (.sendSchedule,"发送日程管理给手表",[.sendSchedule([IBSchedule()])]),
+//    (.getSosContact,"获取OS紧急联系人",[]),
+//    (.setSosContact,"设置SOS紧急联系人",[.setSosContact([IBContact()])]),
+//    
+//    (.getPushConfig,"获取推送配置",[]),
+//    (.setPushConfig,"设置推送",[.setPush(IBPush.all)]),
+//    
+//    (.getPasssword,"获取密码",[]),
+//    (.setPasssword,"启用密码",[.setPassword(IBPassword(type: 1, password: "123456"))]),
+//    (.setPasssword,"删除密码",[.setPassword(IBPassword(type: 0, password: ""))]),
+//    
+//    (.userData,"设置用户数据",[.userInfo(IBUserInfo())]),
+//    (.language, "设置语言", [.language(.chinese)]),
+//    (.about,"关于本机内容",[]),
+//    (.find, "开始查找手表", [.action(1)]),
+//    (.find, "停止查找手表", [.action(0)]),
+//    (.message, "开启消息推送功能", [.action(1)]),
+//    (.message, "关闭消息推送功能", [.action(0)]),
+//    
+//    (.takePhoto, "开启手势拍照", [.action(1)]),
+//    (.takePhoto, "关闭手势拍照", [.action(0)]),
+//    (.restore, "恢复出厂设置", []),
+//    (.reboot, "重新启动", []),
+//    (.shutdown, "关机", []),
+//    (.fetchScreen, "获取手表屏幕参数", []),
+//    (.screen, "设置手表屏幕参数", [.screen(Config.setScreen())]),
+//    (.fetchBattery, "获取电量", []),
+//    (.fetchClock, "获取闹钟设置", []),
+//    (.setClock, "发送闹钟设置", [.clock(IBClock())]),
     
     (.fetchCurrentDialId, "发送当前表盘ID", []),
-    (.switchDial, "切换表盘", [.dialID(1028)]),
-    (.deleteDial, "删除表盘", [.dialID(10001)]),
+    (.switchDial, "切换表盘", [.dialID(120)]),
+    (.deleteDial, "删除表盘", [.dialID(120)]),
     (.fetchDials, "获取所有表盘UID", []),
-    (.checkDialID, "获取某表盘ID是否已安装", [.dialID(10001)]),
+    (.checkDialID, "获取某表盘ID是否已安装", [.dialID(120)]),
     
     (.fetchWatchState, "获取当前手表状态", []),
     (.fetchVibrateSound, "获取手表声音与震动参数", []),
diff --git a/IOTBluetooth/IOTBluetooth/Example/Resource/nangua.lzma b/IOTBluetooth/IOTBluetooth/Example/Resource/nangua.lzma
new file mode 100644 (file)
index 0000000..51ff570
Binary files /dev/null and b/IOTBluetooth/IOTBluetooth/Example/Resource/nangua.lzma differ
index 0d68752..cbe421e 100644 (file)
@@ -35,9 +35,7 @@ class ViewController: BaseViewController {
             let model = object as! IBTrainingData
             print("trainingData notice " +  model.description)
         }
-//        IBManager.subscribe(.weather, observer: self) {  object, userInfo in
-//            print("weather notice ")
-//        }
+        startScan(UIButton())
     }
     
     deinit {
index 6104e9a..05415fe 100644 (file)
@@ -21,7 +21,6 @@
                18204C002C199B8600F94E69 /* IBFileSender+Mp3.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18204BFF2C199B8600F94E69 /* IBFileSender+Mp3.swift */; };
                18204C022C199D0E00F94E69 /* IBFileSender+Ota.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18204C012C199D0E00F94E69 /* IBFileSender+Ota.swift */; };
                18204C042C199E7800F94E69 /* IBFileSender+Dial.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18204C032C199E7800F94E69 /* IBFileSender+Dial.swift */; };
-               182DDFD12C5CE23800D44D37 /* MixSdk.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 182DDFD02C5CE23800D44D37 /* MixSdk.framework */; };
                182DDFD42C5CE68900D44D37 /* IBAiValid.swift in Sources */ = {isa = PBXBuildFile; fileRef = 182DDFD32C5CE68900D44D37 /* IBAiValid.swift */; };
                1839DBD02C14442200E33B6E /* IBFetchFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1839DBCF2C14442200E33B6E /* IBFetchFile.swift */; };
                184431322BF3720E00546E4E /* IBOtherTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 184431312BF3720E00546E4E /* IBOtherTarget.swift */; };
                18EF69792C47A86D00AA0A36 /* IBTools.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18EF69782C47A86D00AA0A36 /* IBTools.swift */; };
                18EF697A2C47A86D00AA0A36 /* IBTools.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18EF69782C47A86D00AA0A36 /* IBTools.swift */; };
                18EFF59B2C080F14001B1E0E /* IBUserInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18EFF59A2C080F14001B1E0E /* IBUserInfo.swift */; };
-               3F6A07C52D2D06D600F4122A /* MixTools.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3F6A07C42D2D06D600F4122A /* MixTools.framework */; };
+               39517247ABAC3EA28AABA92A /* Pods_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A87ADBA97338BE6292016534 /* Pods_Example.framework */; };
+               3F2AF7EC2D5705D400635545 /* MixTools.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3F2AF7E82D5705D400635545 /* MixTools.framework */; };
+               3F2AF7ED2D5705D400635545 /* MixSdk.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3F2AF7E72D5705D400635545 /* MixSdk.framework */; };
+               3F2AF7EF2D5705D400635545 /* MixTools.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3F2AF7E82D5705D400635545 /* MixTools.framework */; };
+               3F2AF7F02D5705D400635545 /* MixSdk.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3F2AF7E72D5705D400635545 /* MixSdk.framework */; };
+               3F2AF7F32D57106400635545 /* libbz2.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 18EF696B2C47766400AA0A36 /* libbz2.tbd */; };
+               3F2AF7F42D57107100635545 /* libiconv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 18EF69692C47765800AA0A36 /* libiconv.tbd */; };
+               3F2AF7F52D57107A00635545 /* liblzma.5.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 18EF69672C47764400AA0A36 /* liblzma.5.tbd */; };
+               3F2AF7F62D57108100635545 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 18EF695F2C476E2000AA0A36 /* libz.tbd */; };
+               3F2AF7F82D57109700635545 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3F2AF7F72D57109700635545 /* CoreAudio.framework */; };
+               3F2AF82F2D57125D00635545 /* ChatViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F2AF7F92D57118D00635545 /* ChatViewController.swift */; };
+               3F2AF8352D573B6200635545 /* ChatCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F2AF8342D573B5D00635545 /* ChatCell.swift */; };
                3F6A07CC2D2D2C3F00F4122A /* IBPassword.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F6A07CB2D2D2C3F00F4122A /* IBPassword.swift */; };
                3F9355B72D38FF2100C54DAB /* IBPush.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F9355B62D38FF1900C54DAB /* IBPush.swift */; };
+               3FCFBFDE2D548D70003FC090 /* nangua.lzma in Resources */ = {isa = PBXBuildFile; fileRef = 3FCFBFDD2D548D70003FC090 /* nangua.lzma */; };
                3FFAE0552D3A042900325873 /* IBContact.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FFAE0542D3A03EF00325873 /* IBContact.swift */; };
                3FFAE0572D3A2CFF00325873 /* IBSchedule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FFAE0562D3A2CF800325873 /* IBSchedule.swift */; };
                8A0A39BF2B980BEF006A3B18 /* IOTBluetooth.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A0A39BE2B980BEF006A3B18 /* IOTBluetooth.h */; settings = {ATTRIBUTES = (Public, ); }; };
                8A9F6ABE2BA0475100DA520F /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8A0A39C82B980CC2006A3B18 /* CoreBluetooth.framework */; };
                8A9F6AC12BA04BE100DA520F /* IBManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A9F6AC02BA04BE100DA520F /* IBManager.swift */; };
                8A9F6AC22BA05CB500DA520F /* IOTBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8A0A39BB2B980BEF006A3B18 /* IOTBluetooth.framework */; };
-               8A9F6AC32BA05CB500DA520F /* IOTBluetooth.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 8A0A39BB2B980BEF006A3B18 /* IOTBluetooth.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
 /* End PBXBuildFile section */
 
 /* Begin PBXContainerItemProxy section */
                };
 /* End PBXContainerItemProxy section */
 
-/* Begin PBXCopyFilesBuildPhase section */
-               8A9F6AC62BA05CB500DA520F /* Embed Frameworks */ = {
-                       isa = PBXCopyFilesBuildPhase;
-                       buildActionMask = 2147483647;
-                       dstPath = "";
-                       dstSubfolderSpec = 10;
-                       files = (
-                               8A9F6AC32BA05CB500DA520F /* IOTBluetooth.framework in Embed Frameworks */,
-                       );
-                       name = "Embed Frameworks";
-                       runOnlyForDeploymentPostprocessing = 0;
-               };
-/* End PBXCopyFilesBuildPhase section */
-
 /* Begin PBXFileReference section */
                180220CD2C2D5D560090D34A /* IBAiResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IBAiResponse.swift; sourceTree = "<group>"; };
                180B01972BFC831300524729 /* IBHistoryHeartRate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IBHistoryHeartRate.swift; sourceTree = "<group>"; };
                18204BFF2C199B8600F94E69 /* IBFileSender+Mp3.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "IBFileSender+Mp3.swift"; sourceTree = "<group>"; };
                18204C012C199D0E00F94E69 /* IBFileSender+Ota.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "IBFileSender+Ota.swift"; sourceTree = "<group>"; };
                18204C032C199E7800F94E69 /* IBFileSender+Dial.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "IBFileSender+Dial.swift"; sourceTree = "<group>"; };
-               182DDFD02C5CE23800D44D37 /* MixSdk.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = MixSdk.framework; sourceTree = "<group>"; };
                182DDFD32C5CE68900D44D37 /* IBAiValid.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IBAiValid.swift; sourceTree = "<group>"; };
                1839DBCF2C14442200E33B6E /* IBFetchFile.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IBFetchFile.swift; sourceTree = "<group>"; };
                184431312BF3720E00546E4E /* IBOtherTarget.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IBOtherTarget.swift; sourceTree = "<group>"; };
                18EF69752C47A0F200AA0A36 /* AIAudio.sbc */ = {isa = PBXFileReference; lastKnownFileType = file; path = AIAudio.sbc; sourceTree = "<group>"; };
                18EF69782C47A86D00AA0A36 /* IBTools.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IBTools.swift; sourceTree = "<group>"; };
                18EFF59A2C080F14001B1E0E /* IBUserInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IBUserInfo.swift; sourceTree = "<group>"; };
-               3F6A07C42D2D06D600F4122A /* MixTools.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = MixTools.framework; sourceTree = "<group>"; };
+               3F2AF7E72D5705D400635545 /* MixSdk.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = MixSdk.framework; sourceTree = "<group>"; };
+               3F2AF7E82D5705D400635545 /* MixTools.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = MixTools.framework; sourceTree = "<group>"; };
+               3F2AF7F72D57109700635545 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; };
+               3F2AF7F92D57118D00635545 /* ChatViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatViewController.swift; sourceTree = "<group>"; };
+               3F2AF8342D573B5D00635545 /* ChatCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatCell.swift; sourceTree = "<group>"; };
                3F6A07CB2D2D2C3F00F4122A /* IBPassword.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IBPassword.swift; sourceTree = "<group>"; };
                3F9355B62D38FF1900C54DAB /* IBPush.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IBPush.swift; sourceTree = "<group>"; };
+               3FCFBFDD2D548D70003FC090 /* nangua.lzma */ = {isa = PBXFileReference; lastKnownFileType = file; path = nangua.lzma; sourceTree = "<group>"; };
                3FFAE0542D3A03EF00325873 /* IBContact.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IBContact.swift; sourceTree = "<group>"; };
                3FFAE0562D3A2CF800325873 /* IBSchedule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IBSchedule.swift; sourceTree = "<group>"; };
+               7229A88D0BE1A8EA7CE89DA0 /* Pods-Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Example.debug.xcconfig"; path = "Target Support Files/Pods-Example/Pods-Example.debug.xcconfig"; sourceTree = "<group>"; };
                8A0A39BB2B980BEF006A3B18 /* IOTBluetooth.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = IOTBluetooth.framework; sourceTree = BUILT_PRODUCTS_DIR; };
                8A0A39BE2B980BEF006A3B18 /* IOTBluetooth.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IOTBluetooth.h; sourceTree = "<group>"; };
                8A0A39C52B980C88006A3B18 /* IBluetooth.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IBluetooth.swift; sourceTree = "<group>"; };
                8A87FBB42BAA85FB00096761 /* IBTrainingData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IBTrainingData.swift; sourceTree = "<group>"; };
                8A9F6ABC2BA0463D00DA520F /* CRC16.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CRC16.swift; sourceTree = "<group>"; };
                8A9F6AC02BA04BE100DA520F /* IBManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IBManager.swift; sourceTree = "<group>"; };
+               A87ADBA97338BE6292016534 /* Pods_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+               BF4937B95B2356B694B9A7F1 /* Pods-Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Example.release.xcconfig"; path = "Target Support Files/Pods-Example/Pods-Example.release.xcconfig"; sourceTree = "<group>"; };
 /* End PBXFileReference section */
 
 /* Begin PBXFrameworksBuildPhase section */
                                18EF69722C4798D100AA0A36 /* liblzma.5.tbd in Frameworks */,
                                18EF69712C4798C600AA0A36 /* libiconv.tbd in Frameworks */,
                                18EF69702C4798BB00AA0A36 /* libbz2.tbd in Frameworks */,
-                               182DDFD12C5CE23800D44D37 /* MixSdk.framework in Frameworks */,
                                8A0A39C92B980CC2006A3B18 /* CoreBluetooth.framework in Frameworks */,
+                               3F2AF7EC2D5705D400635545 /* MixTools.framework in Frameworks */,
+                               3F2AF7ED2D5705D400635545 /* MixSdk.framework in Frameworks */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
                        isa = PBXFrameworksBuildPhase;
                        buildActionMask = 2147483647;
                        files = (
+                               3F2AF7F82D57109700635545 /* CoreAudio.framework in Frameworks */,
+                               3F2AF7F42D57107100635545 /* libiconv.tbd in Frameworks */,
+                               3F2AF7F62D57108100635545 /* libz.tbd in Frameworks */,
                                8A9F6AC22BA05CB500DA520F /* IOTBluetooth.framework in Frameworks */,
+                               3F2AF7F32D57106400635545 /* libbz2.tbd in Frameworks */,
                                8A9F6ABE2BA0475100DA520F /* CoreBluetooth.framework in Frameworks */,
-                               3F6A07C52D2D06D600F4122A /* MixTools.framework in Frameworks */,
+                               3F2AF7F52D57107A00635545 /* liblzma.5.tbd in Frameworks */,
+                               3F2AF7EF2D5705D400635545 /* MixTools.framework in Frameworks */,
+                               3F2AF7F02D5705D400635545 /* MixSdk.framework in Frameworks */,
+                               39517247ABAC3EA28AABA92A /* Pods_Example.framework in Frameworks */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
                18113B292C1318FD00E04997 /* Resource */ = {
                        isa = PBXGroup;
                        children = (
+                               3FCFBFDD2D548D70003FC090 /* nangua.lzma */,
                                18EF69752C47A0F200AA0A36 /* AIAudio.sbc */,
                                18113B322C1406CB00E04997 /* 大约在冬季.mp3 */,
                                18113B302C1400D700E04997 /* 黄沙-名决.mp3 */,
                        path = Resource;
                        sourceTree = "<group>";
                };
+               3F2AF7EA2D5705D400635545 /* framework */ = {
+                       isa = PBXGroup;
+                       children = (
+                               3F2AF7E72D5705D400635545 /* MixSdk.framework */,
+                               3F2AF7E82D5705D400635545 /* MixTools.framework */,
+                       );
+                       path = framework;
+                       sourceTree = "<group>";
+               };
                8A0A39B12B980BEF006A3B18 = {
                        isa = PBXGroup;
                        children = (
                                8A1DFF502B9EB4F800B735FF /* Example */,
                                8A0A39BC2B980BEF006A3B18 /* Products */,
                                8A0A39C72B980CC2006A3B18 /* Frameworks */,
+                               D5534FB616F6E9B69D9BEFF5 /* Pods */,
                        );
                        sourceTree = "<group>";
                };
                8A0A39BD2B980BEF006A3B18 /* IOTBluetooth */ = {
                        isa = PBXGroup;
                        children = (
-                               3F6A07C42D2D06D600F4122A /* MixTools.framework */,
-                               182DDFD02C5CE23800D44D37 /* MixSdk.framework */,
+                               3F2AF7EA2D5705D400635545 /* framework */,
                                8A9F6ABF2BA04B5100DA520F /* Models */,
                                8A0A39D02B980DFD006A3B18 /* Tools */,
                                8A0A39C52B980C88006A3B18 /* IBluetooth.swift */,
                8A0A39C72B980CC2006A3B18 /* Frameworks */ = {
                        isa = PBXGroup;
                        children = (
+                               3F2AF7F72D57109700635545 /* CoreAudio.framework */,
                                18EF696B2C47766400AA0A36 /* libbz2.tbd */,
                                18EF69692C47765800AA0A36 /* libiconv.tbd */,
                                18EF69672C47764400AA0A36 /* liblzma.5.tbd */,
                                18EF695F2C476E2000AA0A36 /* libz.tbd */,
                                8A0A39C82B980CC2006A3B18 /* CoreBluetooth.framework */,
+                               A87ADBA97338BE6292016534 /* Pods_Example.framework */,
                        );
                        name = Frameworks;
                        sourceTree = "<group>";
                                8A1DFF552B9EB4F800B735FF /* ViewController.swift */,
                                8A34B9262BA2AB66000F66BD /* ConnectViewController.swift */,
                                8A76B6082BA84C2B0016F2AB /* AbilityViewController.swift */,
+                               3F2AF7F92D57118D00635545 /* ChatViewController.swift */,
+                               3F2AF8342D573B5D00635545 /* ChatCell.swift */,
                                8A878FDF2BA93CF1008C7F26 /* Datas.swift */,
                                8A34B92A2BA2D446000F66BD /* BaseViewController.swift */,
                                8A34B9282BA2AB86000F66BD /* LogViewController.swift */,
                        path = Models;
                        sourceTree = "<group>";
                };
+               D5534FB616F6E9B69D9BEFF5 /* Pods */ = {
+                       isa = PBXGroup;
+                       children = (
+                               7229A88D0BE1A8EA7CE89DA0 /* Pods-Example.debug.xcconfig */,
+                               BF4937B95B2356B694B9A7F1 /* Pods-Example.release.xcconfig */,
+                       );
+                       path = Pods;
+                       sourceTree = "<group>";
+               };
 /* End PBXGroup section */
 
 /* Begin PBXHeadersBuildPhase section */
                        isa = PBXNativeTarget;
                        buildConfigurationList = 8A1DFF622B9EB4F900B735FF /* Build configuration list for PBXNativeTarget "Example" */;
                        buildPhases = (
+                               F217ABA908679C1802233ED9 /* [CP] Check Pods Manifest.lock */,
                                8A1DFF4B2B9EB4F800B735FF /* Sources */,
                                8A1DFF4C2B9EB4F800B735FF /* Frameworks */,
                                8A1DFF4D2B9EB4F800B735FF /* Resources */,
-                               8A9F6AC62BA05CB500DA520F /* Embed Frameworks */,
+                               EF0CEC87F5FAF1CEEE9A8FC0 /* [CP] Embed Pods Frameworks */,
                        );
                        buildRules = (
                        );
                                18113B312C1400D700E04997 /* 黄沙-名决.mp3 in Resources */,
                                8A1DFF5B2B9EB4F900B735FF /* Assets.xcassets in Resources */,
                                8A1DFF592B9EB4F900B735FF /* Main.storyboard in Resources */,
+                               3FCFBFDE2D548D70003FC090 /* nangua.lzma in Resources */,
                                185E9C3B2C2564F60078C808 /* 20240604_155433_2_V1.0.1_20240618_113111_ota.fwpkg in Resources */,
                                18EF69772C47A0F200AA0A36 /* AIAudio.sbc in Resources */,
                                18113B332C1406CB00E04997 /* 大约在冬季.mp3 in Resources */,
                };
 /* End PBXResourcesBuildPhase section */
 
+/* Begin PBXShellScriptBuildPhase section */
+               EF0CEC87F5FAF1CEEE9A8FC0 /* [CP] Embed Pods Frameworks */ = {
+                       isa = PBXShellScriptBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                       );
+                       inputFileListPaths = (
+                               "${PODS_ROOT}/Target Support Files/Pods-Example/Pods-Example-frameworks-${CONFIGURATION}-input-files.xcfilelist",
+                       );
+                       name = "[CP] Embed Pods Frameworks";
+                       outputFileListPaths = (
+                               "${PODS_ROOT}/Target Support Files/Pods-Example/Pods-Example-frameworks-${CONFIGURATION}-output-files.xcfilelist",
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+                       shellPath = /bin/sh;
+                       shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Example/Pods-Example-frameworks.sh\"\n";
+                       showEnvVarsInLog = 0;
+               };
+               F217ABA908679C1802233ED9 /* [CP] Check Pods Manifest.lock */ = {
+                       isa = PBXShellScriptBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                       );
+                       inputFileListPaths = (
+                       );
+                       inputPaths = (
+                               "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
+                               "${PODS_ROOT}/Manifest.lock",
+                       );
+                       name = "[CP] Check Pods Manifest.lock";
+                       outputFileListPaths = (
+                       );
+                       outputPaths = (
+                               "$(DERIVED_FILE_DIR)/Pods-Example-checkManifestLockResult.txt",
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+                       shellPath = /bin/sh;
+                       shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n    # print error to STDERR\n    echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n    exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
+                       showEnvVarsInLog = 0;
+               };
+/* End PBXShellScriptBuildPhase section */
+
 /* Begin PBXSourcesBuildPhase section */
                8A0A39B72B980BEF006A3B18 /* Sources */ = {
                        isa = PBXSourcesBuildPhase;
                                8A878FE02BA93CF1008C7F26 /* Datas.swift in Sources */,
                                8A34B92B2BA2D446000F66BD /* BaseViewController.swift in Sources */,
                                8A76B6092BA84C2B0016F2AB /* AbilityViewController.swift in Sources */,
+                               3F2AF8352D573B6200635545 /* ChatCell.swift in Sources */,
+                               3F2AF82F2D57125D00635545 /* ChatViewController.swift in Sources */,
                                8A34B9272BA2AB66000F66BD /* ConnectViewController.swift in Sources */,
                                18EF697A2C47A86D00AA0A36 /* IBTools.swift in Sources */,
                                8A1DFF562B9EB4F800B735FF /* ViewController.swift in Sources */,
                                        "$(inherited)",
                                        "$(PROJECT_DIR)/Example",
                                        "$(PROJECT_DIR)/IOTBluetooth",
+                                       "$(PROJECT_DIR)/IOTBluetooth/framework",
                                );
                                GENERATE_INFOPLIST_FILE = YES;
                                INFOPLIST_KEY_NSHumanReadableCopyright = "";
                                        "@executable_path/Frameworks",
                                        "@loader_path/Frameworks",
                                );
+                               MACH_O_TYPE = staticlib;
                                MARKETING_VERSION = 1.0;
                                MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++";
                                MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20";
                                        "$(inherited)",
                                        "$(PROJECT_DIR)/Example",
                                        "$(PROJECT_DIR)/IOTBluetooth",
+                                       "$(PROJECT_DIR)/IOTBluetooth/framework",
                                );
                                GENERATE_INFOPLIST_FILE = YES;
                                INFOPLIST_KEY_NSHumanReadableCopyright = "";
                                        "@executable_path/Frameworks",
                                        "@loader_path/Frameworks",
                                );
+                               MACH_O_TYPE = staticlib;
                                MARKETING_VERSION = 1.0;
                                MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++";
                                MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20";
                };
                8A1DFF602B9EB4F900B735FF /* Debug */ = {
                        isa = XCBuildConfiguration;
+                       baseConfigurationReference = 7229A88D0BE1A8EA7CE89DA0 /* Pods-Example.debug.xcconfig */;
                        buildSettings = {
                                ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
                                ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
                                CODE_SIGN_STYLE = Automatic;
                                CURRENT_PROJECT_VERSION = 1001;
                                DEVELOPMENT_TEAM = M33X987285;
+                               ENABLE_USER_SCRIPT_SANDBOXING = NO;
                                FRAMEWORK_SEARCH_PATHS = (
                                        "$(inherited)",
                                        "$(PROJECT_DIR)/Example",
                                        "$(PROJECT_DIR)/IOTBluetooth",
+                                       "$(PROJECT_DIR)/IOTBluetooth/framework",
                                );
                                GENERATE_INFOPLIST_FILE = YES;
                                INFOPLIST_FILE = Example/Info.plist;
                };
                8A1DFF612B9EB4F900B735FF /* Release */ = {
                        isa = XCBuildConfiguration;
+                       baseConfigurationReference = BF4937B95B2356B694B9A7F1 /* Pods-Example.release.xcconfig */;
                        buildSettings = {
                                ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
                                ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
                                CODE_SIGN_STYLE = Automatic;
                                CURRENT_PROJECT_VERSION = 1001;
                                DEVELOPMENT_TEAM = M33X987285;
+                               ENABLE_USER_SCRIPT_SANDBOXING = NO;
                                FRAMEWORK_SEARCH_PATHS = (
                                        "$(inherited)",
                                        "$(PROJECT_DIR)/Example",
                                        "$(PROJECT_DIR)/IOTBluetooth",
+                                       "$(PROJECT_DIR)/IOTBluetooth/framework",
                                );
                                GENERATE_INFOPLIST_FILE = YES;
                                INFOPLIST_FILE = Example/Info.plist;
index 13d2352..50b3f2d 100644 (file)
Binary files a/IOTBluetooth/IOTBluetooth/IOTBluetooth.xcodeproj/project.xcworkspace/xcuserdata/yaozuopan.xcuserdatad/UserInterfaceState.xcuserstate and b/IOTBluetooth/IOTBluetooth/IOTBluetooth.xcodeproj/project.xcworkspace/xcuserdata/yaozuopan.xcuserdatad/UserInterfaceState.xcuserstate differ
index b77e291..72a893d 100644 (file)
@@ -3,4 +3,38 @@
    uuid = "2CC27BE0-931D-4412-B83C-49E80F4BA55C"
    type = "1"
    version = "2.0">
+   <Breakpoints>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "8FE8A73C-8919-4E39-9274-C0D5578AE34E"
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "IOTBluetooth/IBParser.swift"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "126"
+            endingLineNumber = "126"
+            landmarkName = "parse(_:)"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "3A96B8F8-98B0-4910-BC24-F646EFC37274"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "IOTBluetooth/IBChecker.swift"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "515"
+            endingLineNumber = "515"
+            landmarkName = "check(_:)"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+   </Breakpoints>
 </Bucket>
index 8d574d1..a0813e4 100644 (file)
@@ -7,7 +7,7 @@
                <key>Example.xcscheme_^#shared#^_</key>
                <dict>
                        <key>orderHint</key>
-                       <integer>1</integer>
+                       <integer>8</integer>
                </dict>
                <key>IOTBluetooth.xcscheme_^#shared#^_</key>
                <dict>
diff --git a/IOTBluetooth/IOTBluetooth/IOTBluetooth.xcworkspace/contents.xcworkspacedata b/IOTBluetooth/IOTBluetooth/IOTBluetooth.xcworkspace/contents.xcworkspacedata
new file mode 100644 (file)
index 0000000..fcfef28
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+   version = "1.0">
+   <FileRef
+      location = "group:IOTBluetooth.xcodeproj">
+   </FileRef>
+   <FileRef
+      location = "group:Pods/Pods.xcodeproj">
+   </FileRef>
+</Workspace>
diff --git a/IOTBluetooth/IOTBluetooth/IOTBluetooth.xcworkspace/xcuserdata/yaozuopan.xcuserdatad/UserInterfaceState.xcuserstate b/IOTBluetooth/IOTBluetooth/IOTBluetooth.xcworkspace/xcuserdata/yaozuopan.xcuserdatad/UserInterfaceState.xcuserstate
new file mode 100644 (file)
index 0000000..4d1d74d
Binary files /dev/null and b/IOTBluetooth/IOTBluetooth/IOTBluetooth.xcworkspace/xcuserdata/yaozuopan.xcuserdatad/UserInterfaceState.xcuserstate differ
diff --git a/IOTBluetooth/IOTBluetooth/IOTBluetooth.xcworkspace/xcuserdata/yaozuopan.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/IOTBluetooth/IOTBluetooth/IOTBluetooth.xcworkspace/xcuserdata/yaozuopan.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
new file mode 100644 (file)
index 0000000..d097835
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Bucket
+   uuid = "DE90D99F-11DF-48BC-9070-3AF484DDB28C"
+   type = "0"
+   version = "2.0">
+</Bucket>
index b4f4035..6674eb3 100644 (file)
 ////  Created by incar on 2024/7/15.
 ////
 //
-//import Foundation
-//import MixSdk
-//class IBAiManager{
-//    static let shared = IBAiManager()
-//    var audioData = Data()
-//    
-//    var reply = ""
-//    
-//    init(){
-//        MixSdk.shared.isDebug = true
-//        setupChatCallBack()
-//    }
-//    
-//    func aiValid(_ data:Data){
-//        let result = IBGeneralParser.dataPacket(data)
-//        let code = result.int
-//        let desc = ["文心一言","ChatGPT","KIMI",":豆包"]
-//        Logger.log("询问模型是否可用:",desc[code])
-//        let model = IBAiValid()
-//        model.isValid = true
-//        if code == 1 {
-//            model.key = "sk-proj-04ogvrZQqyaiv1OWw8OZT3BlbkFJG9Gyr8oFvRdmr3oXQNbX"
-//        }
-//        IBSender()
-//            .ability(IBAbility.aiValid)
-//            .parameters([.aiValid(model)])
-//            .response { result in
-//                
-//            }
-//
-//    }
-//    func aiRequest(_ data:Data){
-//        let result = IBGeneralParser.dataPacket(data)
-//        let code = result.int
-//        let desc = ["文心一言","ChatGPT","KIMI",":豆包"]
-//        Logger.log("使用模型:",desc[code])
-//        IBSender()
-//            .ability(IBAbility.aiReady)
-//            .parameters([.value(1)])
-//            .response {[weak self] result in
-//                self?.fectchAiAudio()
-//            }
-//        
-//
-//        var platform = MSPlatform.doubao
-//        var key = ""
-//        if code == 0 {
-//            platform = .yiyan
-//        }
-//        else if code == 1 {
-//            platform = .chatGPT
-//            key = "sk-proj-04ogvrZQqyaiv1OWw8OZT3BlbkFJG9Gyr8oFvRdmr3oXQNbX"
-////            let gptModel = "gpt-4-turbo"
-////            MixSdk.shared.chatGpt.changeModel(model:gptModel )
-//        }
-//        else if code == 2 {
-//            platform = .kimi
-//        }
-//        else if code == 3 {
-//            platform = .doubao
-//        }
-//        MixSdk.shared.setPlatform(platform,key: key)
-//    }
-//    func fectchAiAudio(){
-//        IBSender()
-//            .ability(IBAbility.fetchAiAudio)
-//            .parameters([])
-//            .response {[weak self] result in
-//                guard let self = self else {return}
-//                if result.isSuccess,let data = result.value as? Data{
-//                    receiveAiData(sbcData: data)
-//                }
-//                else{
-//                    Logger.log(result)
-//                    let model = IBAiResponse()
-//                    model.type = 0
-//                    sendRelpy(model: model)
-//                }
-//            }
-//    }
-//    
-//    
-//}
-//extension IBAiManager{
-//    func receiveAiData(sbcData:Data){
-//        let pcmData =  MSAudioConvert.sbcTopcm(sbcData)
-//        if pcmData.count == 0{
-//            Logger.log("sbc2pcm失败")
-//            let model = IBAiResponse()
-//            model.type = 0
-//            sendRelpy(model: model)
-//            return
-//        }
-//        guard let pcmPath = IBTools.saveToFile(data: pcmData) else {return}
-//        MixSdk.shared.stt.sentenceRecognize(filePath: pcmPath,format:"pcm",sample_rate:"16000",lang: "zh-cn") {[weak self] text, error in
-//            guard let self = self else {return}
-//            if let text = text,text.count > 0{
-//                Logger.log(text)
-//                let model = IBAiResponse()
-//                model.type = 1
-//                model.value = text
-//                sendRelpy(model: model)
-//                
-//                MixSdk.shared.chat.send(content: text)
-//            }
-//            else{
-//                Logger.log(error ?? "")
-//                let model = IBAiResponse()
-//                model.type = 0
+import Foundation
+import MixSdk
+
+//public typealias IBProgressHandler = (_ total:Int, _ current:Int) -> Void
+
+public class IBAiManager{
+    public static let shared = IBAiManager()
+    /// 产品id
+    public var productId:String = ""
+    /// 产品key
+    public var productKey:String = ""
+    /// chatGptKey
+    public var chatGptKey:String = ""
+    
+    public var aiResponse:((_ response:IBAiResponse) -> Void)?
+    
+    var audioData = Data()
+    
+    var reply = ""
+    
+    
+    
+    init(){
+        MixSdk.shared.isDebug = true
+        setupChatCallBack()
+    }
+    
+    func aiValid(_ data:Data){
+        let result = IBGeneralParser.dataPacket(data)
+        let code = result.int
+        let desc = ["文心一言","ChatGPT","KIMI","豆包","通义千问","讯飞星火"]
+        Logger.log("询问模型是否可用:",code >= desc.count ? "未知": desc[code])
+        let model = IBAiValid()
+        model.isValid = true
+        if code == 1 {
+            model.key = chatGptKey
+        }
+        IBSender()
+            .ability(IBAbility.aiValid)
+            .parameters([.aiValid(model)])
+            .response { result in
+                
+            }
+
+    }
+    func aiRequest(_ data:Data){
+        let result = IBGeneralParser.dataPacket(data)
+        let code = result.int
+        let desc =  ["文心一言","ChatGPT","KIMI","豆包","通义千问","讯飞星火"]
+        Logger.log("使用模型:",code >= desc.count ? "未知": desc[code])
+        IBSender()
+            .ability(IBAbility.aiReady)
+            .parameters([.value(1)])
+            .response {[weak self] result in
+                self?.fectchAiAudio()
+            }
+        
+
+        var platform = MSPlatform.doubao
+        var key = ""
+        if code == 0 {
+            platform = .yiyan
+        }
+        else if code == 1 {
+            platform = .chatGPT
+            key = chatGptKey
+            if chatGptKey.isEmpty {
+                Logger.log("请先设置chatGpt Key!")
+            }
+//            let gptModel = "gpt-4-turbo"
+//            MixSdk.shared.chatGpt.changeModel(model:gptModel )
+        }
+        else if code == 2 {
+            platform = .kimi
+        }
+        else if code == 3 {
+            platform = .doubao
+        }
+        else if code == 4 {
+            platform = .aliyun
+        }
+        else if code == 5 {
+            platform = .xunfei
+        }
+        MixSdk.shared.setPlatform(platform,key: key)
+    }
+    func fectchAiAudio(){
+        IBSender()
+            .ability(IBAbility.fetchAiAudio)
+            .parameters([])
+            .response {[weak self] result in
+                guard let self = self else {return}
+                if result.isSuccess,let data = result.value as? Data{
+                    receiveAiData(sbcData: data)
+                }
+                else{
+                    Logger.log(result)
+                    let model = IBAiResponse()
+                    model.type = 0
+                    model.state = "end"
+                    sendRelpy(model: model)
+                }
+            }
+    }
+}
+extension IBAiManager{
+    func receiveAiData(sbcData:Data){
+        let pcmData =  MSAudioConvert.sbcTopcm(sbcData)
+        if pcmData.count == 0{
+            Logger.log("sbc2pcm失败")
+            let model = IBAiResponse()
+            model.type = 0
+            model.state = "end"
+            sendRelpy(model: model)
+            return
+        }
+        guard let pcmPath = IBTools.saveToFile(data: pcmData) else {return}
+        MixSdk.shared.stt.sentenceRecognize(filePath: pcmPath,format:"pcm",sample_rate:"16000",lang: "zh-cn") {[weak self] text, error in
+            guard let self = self else {return}
+            if let text = text,text.count > 0{
+                Logger.log(text)
+                let model = IBAiResponse()
+                model.type = 1
+                model.value = text
+                model.state = "end"
+                sendRelpy(model: model)
+                
+                MixSdk.shared.chat.send(content: text)
+            }
+            else{
+                Logger.log(error ?? "")
+                let model = IBAiResponse()
+                model.type = 0
+                model.state = "end"
+                sendRelpy(model: model)
+            }
+        }
+    }
+    
+
+    func setupChatCallBack(){
+        let chat = MixSdk.shared.chat
+        chat.callBack = {[weak self] model in
+            guard let self = self else {return}
+            Logger.log("\(model.type) : \(model.content ?? "")")
+            
+            if model.type == "start" {
+                reply = ""
+            }
+            else if model.type == "end" {
+                let model = IBAiResponse()
+                model.type = 2
+                model.value = reply
+                model.state = "end"
+                self.aiResponse?(model)
 //                sendRelpy(model: model)
-//            }
-//        }
-//    }
-//    
-//
-//    func setupChatCallBack(){
-//        let chat = MixSdk.shared.chat
-//        chat.callBack = {[weak self] model in
-//            guard let self = self else {return}
-//            print("\(model.type) : \(model.content ?? "")")
-//            
-//            if model.type == "start" {
-//                reply = ""
-//            }
-//            else if model.type == "end" {
-////                let model = IBAiResponse()
-////                model.type = 2
-////                model.value = reply
-////                sendRelpy(model: model)
-//            }
-//            else if model.type == "middle"{
-////                reply += model.content ?? ""
-//                let data = IBAiResponse()
-//                data.type = 2
-//                data.value = model.content ?? ""
-//                sendRelpy(model: data)
-//            }
-//        }
-//    }
-//    
-//    func sendRelpy(model:IBAiResponse){
-//        IBSender()
-//            .ability(IBAbility.aiResponse)
-//            .parameters([.aiResponse(model)])
-//            .response { result in
-//                Logger.log(result)
-//            }
-//    }
-//}
-//
-//extension IBAiManager{
-//    func loginAction() {
-//        MixSdk.shared.isDebug = true
-//        let pwd = "aWGKrBWaijsKD5eEsVVU5rjWPI1sVy"//注册获得的密码
-//        self.startLogin(password:pwd)
-//    }
-//    func startLogin(password:String) {
-//        MixSdk.shared.isDebug = true
-//        let deviceId = "281106AFB0F7"
-//        let productKey = "HHosiYUNdG42t1cTgKOzIUPOvAVMI2QT"
-//        
-//        MixSdk.shared.auth.login(productKey:productKey,deviceId: deviceId, password: password){[weak self] token,error in
-//            if let err = error{
-//                if case  .reponseError(let code,let message) = err,code == 50021{
-//                    //50021是账号或密码错误.可以在这里调用注册,重新注册后,之前的密码会被覆盖,APP更新保存的新密码
-//                    self?.registerAction()
-//                }
-//            }
-//            else{
-//                print(token ?? "")
-//            }
-//        }
-//    }
-//    @objc func registerAction() {
-//        let deviceId = "281106AFB0F7"
-//        let productId = "pafOCKLiUbeVHbdZlddH"
-//        let productKey = "HHosiYUNdG42t1cTgKOzIUPOvAVMI2QT"
-//        MixSdk.shared.auth.register(productId: productId, productKey: productKey, deviceId: deviceId){[weak self] password,error in
-//            if let pwd = password{
-//                print(pwd)
-//                //deviceId和password APP要确保这个一一对应。
-//                self?.startLogin(password: pwd)
-//            }
-//            else{
-//                print(error!)
-//            }
-//        }
-//    }
-//}
+            }
+            else if model.type == "middle"{
+                reply += model.content ?? ""
+                let data = IBAiResponse()
+                data.state = "middle"
+                data.type = 2
+                data.value = model.content ?? ""
+                sendRelpy(model: data)
+            }
+        }
+    }
+    
+    func sendRelpy(model:IBAiResponse){
+        self.aiResponse?(model)
+        IBSender()
+            .ability(IBAbility.aiResponse)
+            .parameters([.aiResponse(model)])
+            .response { result in
+                Logger.log(result)
+            }
+    }
+}
+
+
+
+extension IBAiManager{
+    /// 登录
+    /// - Parameters:
+    ///   - deviceId: 设备ID
+    ///   - completeHandler: 结果回调
+    func login(deviceId:String,completeHandler: @escaping MSLoginCallBack){
+        if productId.isEmpty || productKey.isEmpty {
+            Logger.log("请先设置productId和productKey!")
+            return
+        }
+        MixSdk.shared.isDebug = true
+        if let password = UserDefaults.standard.string(forKey: deviceId){
+            startLogin(deviceId: deviceId, password: password, completeHandler: completeHandler)
+        }
+        else{
+            startRegister(deviceId: deviceId, completeHandler: completeHandler)
+        }
+    }
+    
+    func startLogin(deviceId:String,password:String,completeHandler: @escaping MSLoginCallBack) {
+        MixSdk.shared.auth.login(productKey:productKey,deviceId: deviceId, password: password){[weak self] token,error in
+            if let err = error{
+                if case  .reponseError(let code,_) = err,code == 50021{
+                    //50021是账号或密码错误.可以在这里调用注册,重新注册后,之前的密码会被覆盖,APP更新保存的新密码
+                    self?.startRegister( deviceId: deviceId, completeHandler: completeHandler)
+                }
+            }
+            else{
+                completeHandler(token,error)
+            }
+        }
+    }
+
+    func startRegister(deviceId:String,completeHandler: @escaping MSRegisterCallBack){
+        MixSdk.shared.auth.register(productId: productId, productKey: productKey, deviceId: deviceId){[weak self] password,error in
+            if let pwd = password{
+                UserDefaults.standard.setValue(password, forKey: deviceId)
+                //deviceId和password APP要确保这个一一对应。
+                self?.startLogin(deviceId: deviceId, password: pwd, completeHandler: completeHandler)
+            }
+            else{
+                completeHandler(nil,error)
+            }
+        }
+    }
+}
index 25976a7..9693031 100644 (file)
@@ -202,12 +202,12 @@ extension IBNotify {
         }
         //手表询问APP AI模型是否可用
         if(data.bytes[1] == 0x05 && data.bytes[2] == 0x06){
-//            IBAiManager.shared.aiValid(data)
+            IBAiManager.shared.aiValid(data)
             return true
         }
         //AI录音已准备好
         if(data.bytes[1] == 0x05 && data.bytes[2] == 0x05){
-//            IBAiManager.shared.aiRequest(data)
+            IBAiManager.shared.aiRequest(data)
             return true
         }
         //文件已接收完成
index 2088297..2056a48 100644 (file)
@@ -57,8 +57,6 @@ class IBBluetooth: NSObject {
         super.init()
         centralManager = CBCentralManager(delegate: self, queue: nil)
         receiveManager.delegate = self
-        
-//        IBAiManager.shared.loginAction()
     }
     
     /// 2AE5
@@ -228,6 +226,13 @@ extension IBBluetooth: CBCentralManagerDelegate {
 //        IBNotify.post(.connectedDeviceDidChange)
         Logger.log("已连接", currentConnected.name)
         IBNotify.post(.connectStateDidChange, object: 1)
+        
+        IBAiManager.shared.login(deviceId: "28110687C456") { token, error in
+            
+        }
+//        IBAiManager.shared.login(deviceId: currentConnected.macAddress) { token, error in
+//            
+//        }
     }
     
     func centralManager(_ central: CBCentralManager, didFailToConnect peripheral: CBPeripheral, error: Error?) {
index 63afd5a..7ec3331 100644 (file)
@@ -9,13 +9,16 @@ import Foundation
 /// Ai回应模型
 public class IBAiResponse {
     /// 类型,0:AI回应错误   1:AI录音解析内容   2:AI回应内容(类型为0时,只发类型即可,后面字节均不发)
-    var type: Int = 0
+    public var type: Int = 0
     ///  内容
     public var value: String = ""
     
+    /// 类型 start middle end
+    public var state:String = ""
+    
     public init() { }
     
     public var description: String  {
-        return "IBAiResponse(type: \(type), value:\(value))"
+        return "IBAiResponse(type: \(type), value:\(value), state:\(state)"
     }
 }
diff --git a/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/Headers/MixSdk-Swift.h b/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/Headers/MixSdk-Swift.h
new file mode 100644 (file)
index 0000000..d3fd71c
--- /dev/null
@@ -0,0 +1,324 @@
+#if 0
+#elif defined(__arm64__) && __arm64__
+// Generated by Apple Swift version 6.0.3 effective-4.2 (swiftlang-6.0.3.1.10 clang-1600.0.30.1)
+#ifndef MIXSDK_SWIFT_H
+#define MIXSDK_SWIFT_H
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wgcc-compat"
+
+#if !defined(__has_include)
+# define __has_include(x) 0
+#endif
+#if !defined(__has_attribute)
+# define __has_attribute(x) 0
+#endif
+#if !defined(__has_feature)
+# define __has_feature(x) 0
+#endif
+#if !defined(__has_warning)
+# define __has_warning(x) 0
+#endif
+
+#if __has_include(<swift/objc-prologue.h>)
+# include <swift/objc-prologue.h>
+#endif
+
+#pragma clang diagnostic ignored "-Wauto-import"
+#if defined(__OBJC__)
+#include <Foundation/Foundation.h>
+#endif
+#if defined(__cplusplus)
+#include <cstdint>
+#include <cstddef>
+#include <cstdbool>
+#include <cstring>
+#include <stdlib.h>
+#include <new>
+#include <type_traits>
+#else
+#include <stdint.h>
+#include <stddef.h>
+#include <stdbool.h>
+#include <string.h>
+#endif
+#if defined(__cplusplus)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wnon-modular-include-in-framework-module"
+#if defined(__arm64e__) && __has_include(<ptrauth.h>)
+# include <ptrauth.h>
+#else
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wreserved-macro-identifier"
+# ifndef __ptrauth_swift_value_witness_function_pointer
+#  define __ptrauth_swift_value_witness_function_pointer(x)
+# endif
+# ifndef __ptrauth_swift_class_method_pointer
+#  define __ptrauth_swift_class_method_pointer(x)
+# endif
+#pragma clang diagnostic pop
+#endif
+#pragma clang diagnostic pop
+#endif
+
+#if !defined(SWIFT_TYPEDEFS)
+# define SWIFT_TYPEDEFS 1
+# if __has_include(<uchar.h>)
+#  include <uchar.h>
+# elif !defined(__cplusplus)
+typedef uint_least16_t char16_t;
+typedef uint_least32_t char32_t;
+# endif
+typedef float swift_float2  __attribute__((__ext_vector_type__(2)));
+typedef float swift_float3  __attribute__((__ext_vector_type__(3)));
+typedef float swift_float4  __attribute__((__ext_vector_type__(4)));
+typedef double swift_double2  __attribute__((__ext_vector_type__(2)));
+typedef double swift_double3  __attribute__((__ext_vector_type__(3)));
+typedef double swift_double4  __attribute__((__ext_vector_type__(4)));
+typedef int swift_int2  __attribute__((__ext_vector_type__(2)));
+typedef int swift_int3  __attribute__((__ext_vector_type__(3)));
+typedef int swift_int4  __attribute__((__ext_vector_type__(4)));
+typedef unsigned int swift_uint2  __attribute__((__ext_vector_type__(2)));
+typedef unsigned int swift_uint3  __attribute__((__ext_vector_type__(3)));
+typedef unsigned int swift_uint4  __attribute__((__ext_vector_type__(4)));
+#endif
+
+#if !defined(SWIFT_PASTE)
+# define SWIFT_PASTE_HELPER(x, y) x##y
+# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y)
+#endif
+#if !defined(SWIFT_METATYPE)
+# define SWIFT_METATYPE(X) Class
+#endif
+#if !defined(SWIFT_CLASS_PROPERTY)
+# if __has_feature(objc_class_property)
+#  define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__
+# else
+#  define SWIFT_CLASS_PROPERTY(...) 
+# endif
+#endif
+#if !defined(SWIFT_RUNTIME_NAME)
+# if __has_attribute(objc_runtime_name)
+#  define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X)))
+# else
+#  define SWIFT_RUNTIME_NAME(X) 
+# endif
+#endif
+#if !defined(SWIFT_COMPILE_NAME)
+# if __has_attribute(swift_name)
+#  define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X)))
+# else
+#  define SWIFT_COMPILE_NAME(X) 
+# endif
+#endif
+#if !defined(SWIFT_METHOD_FAMILY)
+# if __has_attribute(objc_method_family)
+#  define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X)))
+# else
+#  define SWIFT_METHOD_FAMILY(X) 
+# endif
+#endif
+#if !defined(SWIFT_NOESCAPE)
+# if __has_attribute(noescape)
+#  define SWIFT_NOESCAPE __attribute__((noescape))
+# else
+#  define SWIFT_NOESCAPE 
+# endif
+#endif
+#if !defined(SWIFT_RELEASES_ARGUMENT)
+# if __has_attribute(ns_consumed)
+#  define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed))
+# else
+#  define SWIFT_RELEASES_ARGUMENT 
+# endif
+#endif
+#if !defined(SWIFT_WARN_UNUSED_RESULT)
+# if __has_attribute(warn_unused_result)
+#  define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
+# else
+#  define SWIFT_WARN_UNUSED_RESULT 
+# endif
+#endif
+#if !defined(SWIFT_NORETURN)
+# if __has_attribute(noreturn)
+#  define SWIFT_NORETURN __attribute__((noreturn))
+# else
+#  define SWIFT_NORETURN 
+# endif
+#endif
+#if !defined(SWIFT_CLASS_EXTRA)
+# define SWIFT_CLASS_EXTRA 
+#endif
+#if !defined(SWIFT_PROTOCOL_EXTRA)
+# define SWIFT_PROTOCOL_EXTRA 
+#endif
+#if !defined(SWIFT_ENUM_EXTRA)
+# define SWIFT_ENUM_EXTRA 
+#endif
+#if !defined(SWIFT_CLASS)
+# if __has_attribute(objc_subclassing_restricted)
+#  define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA
+#  define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
+# else
+#  define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
+#  define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
+# endif
+#endif
+#if !defined(SWIFT_RESILIENT_CLASS)
+# if __has_attribute(objc_class_stub)
+#  define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub))
+#  define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME)
+# else
+#  define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME)
+#  define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME)
+# endif
+#endif
+#if !defined(SWIFT_PROTOCOL)
+# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
+# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
+#endif
+#if !defined(SWIFT_EXTENSION)
+# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__)
+#endif
+#if !defined(OBJC_DESIGNATED_INITIALIZER)
+# if __has_attribute(objc_designated_initializer)
+#  define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer))
+# else
+#  define OBJC_DESIGNATED_INITIALIZER 
+# endif
+#endif
+#if !defined(SWIFT_ENUM_ATTR)
+# if __has_attribute(enum_extensibility)
+#  define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility)))
+# else
+#  define SWIFT_ENUM_ATTR(_extensibility) 
+# endif
+#endif
+#if !defined(SWIFT_ENUM)
+# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
+# if __has_feature(generalized_swift_name)
+#  define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
+# else
+#  define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility)
+# endif
+#endif
+#if !defined(SWIFT_UNAVAILABLE)
+# define SWIFT_UNAVAILABLE __attribute__((unavailable))
+#endif
+#if !defined(SWIFT_UNAVAILABLE_MSG)
+# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg)))
+#endif
+#if !defined(SWIFT_AVAILABILITY)
+# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__)))
+#endif
+#if !defined(SWIFT_WEAK_IMPORT)
+# define SWIFT_WEAK_IMPORT __attribute__((weak_import))
+#endif
+#if !defined(SWIFT_DEPRECATED)
+# define SWIFT_DEPRECATED __attribute__((deprecated))
+#endif
+#if !defined(SWIFT_DEPRECATED_MSG)
+# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__)))
+#endif
+#if !defined(SWIFT_DEPRECATED_OBJC)
+# if __has_feature(attribute_diagnose_if_objc)
+#  define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning")))
+# else
+#  define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg)
+# endif
+#endif
+#if defined(__OBJC__)
+#if !defined(IBSegueAction)
+# define IBSegueAction 
+#endif
+#endif
+#if !defined(SWIFT_EXTERN)
+# if defined(__cplusplus)
+#  define SWIFT_EXTERN extern "C"
+# else
+#  define SWIFT_EXTERN extern
+# endif
+#endif
+#if !defined(SWIFT_CALL)
+# define SWIFT_CALL __attribute__((swiftcall))
+#endif
+#if !defined(SWIFT_INDIRECT_RESULT)
+# define SWIFT_INDIRECT_RESULT __attribute__((swift_indirect_result))
+#endif
+#if !defined(SWIFT_CONTEXT)
+# define SWIFT_CONTEXT __attribute__((swift_context))
+#endif
+#if !defined(SWIFT_ERROR_RESULT)
+# define SWIFT_ERROR_RESULT __attribute__((swift_error_result))
+#endif
+#if defined(__cplusplus)
+# define SWIFT_NOEXCEPT noexcept
+#else
+# define SWIFT_NOEXCEPT 
+#endif
+#if !defined(SWIFT_C_INLINE_THUNK)
+# if __has_attribute(always_inline)
+# if __has_attribute(nodebug)
+#  define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline)) __attribute__((nodebug))
+# else
+#  define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline))
+# endif
+# else
+#  define SWIFT_C_INLINE_THUNK inline
+# endif
+#endif
+#if defined(_WIN32)
+#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL)
+# define SWIFT_IMPORT_STDLIB_SYMBOL __declspec(dllimport)
+#endif
+#else
+#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL)
+# define SWIFT_IMPORT_STDLIB_SYMBOL 
+#endif
+#endif
+#if defined(__OBJC__)
+#if __has_feature(objc_modules)
+#if __has_warning("-Watimport-in-framework-header")
+#pragma clang diagnostic ignored "-Watimport-in-framework-header"
+#endif
+@import ObjectiveC;
+#endif
+
+#endif
+#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch"
+#pragma clang diagnostic ignored "-Wduplicate-method-arg"
+#if __has_warning("-Wpragma-clang-attribute")
+# pragma clang diagnostic ignored "-Wpragma-clang-attribute"
+#endif
+#pragma clang diagnostic ignored "-Wunknown-pragmas"
+#pragma clang diagnostic ignored "-Wnullability"
+#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension"
+#pragma clang diagnostic ignored "-Wunsafe-buffer-usage"
+
+#if __has_attribute(external_source_symbol)
+# pragma push_macro("any")
+# undef any
+# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="MixSdk",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol))
+# pragma pop_macro("any")
+#endif
+
+#if defined(__OBJC__)
+
+/// SDK 管理类
+SWIFT_CLASS("_TtC6MixSdk6MixSdk")
+@interface MixSdk : NSObject
+- (nonnull instancetype)init SWIFT_UNAVAILABLE;
++ (nonnull instancetype)new SWIFT_DEPRECATED_MSG("-init is unavailable");
+@end
+
+#endif
+#if __has_attribute(external_source_symbol)
+# pragma clang attribute pop
+#endif
+#if defined(__cplusplus)
+#endif
+#pragma clang diagnostic pop
+#endif
+
+#else
+#error unsupported Swift architecture
+#endif
diff --git a/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/Headers/MixSdk.h b/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/Headers/MixSdk.h
new file mode 100644 (file)
index 0000000..19e1df6
--- /dev/null
@@ -0,0 +1,18 @@
+//
+//  MixSdk.h
+//  MixSdk
+//
+//  Created by incar on 2024/6/12.
+//
+
+#import <Foundation/Foundation.h>
+
+//! Project version number for MixSdk.
+FOUNDATION_EXPORT double MixSdkVersionNumber;
+
+//! Project version string for MixSdk.
+FOUNDATION_EXPORT const unsigned char MixSdkVersionString[];
+
+// In this header, you should import all the public headers of your framework using statements like #import <MixSdk/PublicHeader.h>
+
+
diff --git a/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/Info.plist b/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/Info.plist
new file mode 100644 (file)
index 0000000..5c0f535
Binary files /dev/null and b/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/Info.plist differ
diff --git a/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/MixSdk b/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/MixSdk
new file mode 100644 (file)
index 0000000..9fc4a24
Binary files /dev/null and b/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/MixSdk differ
diff --git a/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/Modules/MixSdk.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo b/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/Modules/MixSdk.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo
new file mode 100644 (file)
index 0000000..c98bcf5
Binary files /dev/null and b/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/Modules/MixSdk.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo differ
diff --git a/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/Modules/MixSdk.swiftmodule/arm64-apple-ios.abi.json b/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/Modules/MixSdk.swiftmodule/arm64-apple-ios.abi.json
new file mode 100644 (file)
index 0000000..1c8b374
--- /dev/null
@@ -0,0 +1,18633 @@
+{
+  "ABIRoot": {
+    "kind": "Root",
+    "name": "MixSdk",
+    "printedName": "MixSdk",
+    "children": [
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Darwin",
+        "printedName": "Darwin",
+        "declKind": "Import",
+        "moduleName": "MixSdk"
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "CommonCrypto",
+        "printedName": "CommonCrypto",
+        "declKind": "Import",
+        "moduleName": "MixSdk"
+      },
+      {
+        "kind": "Import",
+        "name": "MixTools",
+        "printedName": "MixTools",
+        "declKind": "Import",
+        "moduleName": "MixSdk"
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "MSAuth",
+        "printedName": "MSAuth",
+        "children": [
+          {
+            "kind": "Var",
+            "name": "authorized",
+            "printedName": "authorized",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Bool",
+                "printedName": "Swift.Bool",
+                "usr": "s:Sb"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk6MSAuthC10authorizedSbvp",
+            "mangledName": "$s6MixSdk6MSAuthC10authorizedSbvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "SetterAccess",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Bool",
+                    "printedName": "Swift.Bool",
+                    "usr": "s:Sb"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk6MSAuthC10authorizedSbvg",
+                "mangledName": "$s6MixSdk6MSAuthC10authorizedSbvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              }
+            ]
+          },
+          {
+            "kind": "Function",
+            "name": "register",
+            "printedName": "register(productId:productKey:deviceId:completeHandler:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              },
+              {
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(Swift.String?, MixSdk.MSError?) -> ()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Tuple",
+                    "printedName": "(Swift.String?, MixSdk.MSError?)",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Optional",
+                        "printedName": "Swift.String?",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "String",
+                            "printedName": "Swift.String",
+                            "usr": "s:SS"
+                          }
+                        ],
+                        "usr": "s:Sq"
+                      },
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Optional",
+                        "printedName": "MixSdk.MSError?",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "MSError",
+                            "printedName": "MixSdk.MSError",
+                            "usr": "s:6MixSdk7MSErrorO"
+                          }
+                        ],
+                        "usr": "s:Sq"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk6MSAuthC8register9productId0E3Key06deviceF015completeHandlerySS_S2SySSSg_AA7MSErrorOSgtctF",
+            "mangledName": "$s6MixSdk6MSAuthC8register9productId0E3Key06deviceF015completeHandlerySS_S2SySSSg_AA7MSErrorOSgtctF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "funcSelfKind": "NonMutating"
+          },
+          {
+            "kind": "Function",
+            "name": "login",
+            "printedName": "login(productKey:deviceId:password:completeHandler:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              },
+              {
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(Swift.String?, MixSdk.MSError?) -> ()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Tuple",
+                    "printedName": "(Swift.String?, MixSdk.MSError?)",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Optional",
+                        "printedName": "Swift.String?",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "String",
+                            "printedName": "Swift.String",
+                            "usr": "s:SS"
+                          }
+                        ],
+                        "usr": "s:Sq"
+                      },
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Optional",
+                        "printedName": "MixSdk.MSError?",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "MSError",
+                            "printedName": "MixSdk.MSError",
+                            "usr": "s:6MixSdk7MSErrorO"
+                          }
+                        ],
+                        "usr": "s:Sq"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk6MSAuthC5login10productKey8deviceId8password15completeHandlerySS_S2SySSSg_AA7MSErrorOSgtctF",
+            "mangledName": "$s6MixSdk6MSAuthC5login10productKey8deviceId8password15completeHandlerySS_S2SySSSg_AA7MSErrorOSgtctF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "funcSelfKind": "NonMutating"
+          }
+        ],
+        "declKind": "Class",
+        "usr": "s:6MixSdk6MSAuthC",
+        "mangledName": "$s6MixSdk6MSAuthC",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "AccessControl",
+          "RawDocComment"
+        ],
+        "hasMissingDesignatedInitializers": true,
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "UIKit",
+        "printedName": "UIKit",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "CommonCrypto",
+        "printedName": "CommonCrypto",
+        "declKind": "Import",
+        "moduleName": "MixSdk"
+      },
+      {
+        "kind": "Import",
+        "name": "CryptoKit",
+        "printedName": "CryptoKit",
+        "declKind": "Import",
+        "moduleName": "MixSdk"
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "MSError",
+        "printedName": "MSError",
+        "children": [
+          {
+            "kind": "Var",
+            "name": "invalidRequest",
+            "printedName": "invalidRequest",
+            "children": [
+              {
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(MixSdk.MSError.Type) -> MixSdk.MSError",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "MSError",
+                    "printedName": "MixSdk.MSError",
+                    "usr": "s:6MixSdk7MSErrorO"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Metatype",
+                    "printedName": "MixSdk.MSError.Type",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "MSError",
+                        "printedName": "MixSdk.MSError",
+                        "usr": "s:6MixSdk7MSErrorO"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "declKind": "EnumElement",
+            "usr": "s:6MixSdk7MSErrorO14invalidRequestyA2CmF",
+            "mangledName": "$s6MixSdk7MSErrorO14invalidRequestyA2CmF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "RawDocComment"
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "parsingError",
+            "printedName": "parsingError",
+            "children": [
+              {
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(MixSdk.MSError.Type) -> MixSdk.MSError",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "MSError",
+                    "printedName": "MixSdk.MSError",
+                    "usr": "s:6MixSdk7MSErrorO"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Metatype",
+                    "printedName": "MixSdk.MSError.Type",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "MSError",
+                        "printedName": "MixSdk.MSError",
+                        "usr": "s:6MixSdk7MSErrorO"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "declKind": "EnumElement",
+            "usr": "s:6MixSdk7MSErrorO12parsingErroryA2CmF",
+            "mangledName": "$s6MixSdk7MSErrorO12parsingErroryA2CmF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "RawDocComment"
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "reponseError",
+            "printedName": "reponseError",
+            "children": [
+              {
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(MixSdk.MSError.Type) -> (Swift.Int, Swift.String) -> MixSdk.MSError",
+                "children": [
+                  {
+                    "kind": "TypeFunc",
+                    "name": "Function",
+                    "printedName": "(Swift.Int, Swift.String) -> MixSdk.MSError",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "MSError",
+                        "printedName": "MixSdk.MSError",
+                        "usr": "s:6MixSdk7MSErrorO"
+                      },
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Tuple",
+                        "printedName": "(Swift.Int, Swift.String)",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "Int",
+                            "printedName": "Swift.Int",
+                            "usr": "s:Si"
+                          },
+                          {
+                            "kind": "TypeNominal",
+                            "name": "String",
+                            "printedName": "Swift.String",
+                            "usr": "s:SS"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Metatype",
+                    "printedName": "MixSdk.MSError.Type",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "MSError",
+                        "printedName": "MixSdk.MSError",
+                        "usr": "s:6MixSdk7MSErrorO"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "declKind": "EnumElement",
+            "usr": "s:6MixSdk7MSErrorO12reponseErroryACSi_SStcACmF",
+            "mangledName": "$s6MixSdk7MSErrorO12reponseErroryACSi_SStcACmF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "RawDocComment"
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "unauthorised",
+            "printedName": "unauthorised",
+            "children": [
+              {
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(MixSdk.MSError.Type) -> MixSdk.MSError",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "MSError",
+                    "printedName": "MixSdk.MSError",
+                    "usr": "s:6MixSdk7MSErrorO"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Metatype",
+                    "printedName": "MixSdk.MSError.Type",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "MSError",
+                        "printedName": "MixSdk.MSError",
+                        "usr": "s:6MixSdk7MSErrorO"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "declKind": "EnumElement",
+            "usr": "s:6MixSdk7MSErrorO12unauthorisedyA2CmF",
+            "mangledName": "$s6MixSdk7MSErrorO12unauthorisedyA2CmF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "RawDocComment"
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "unknow",
+            "printedName": "unknow",
+            "children": [
+              {
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(MixSdk.MSError.Type) -> MixSdk.MSError",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "MSError",
+                    "printedName": "MixSdk.MSError",
+                    "usr": "s:6MixSdk7MSErrorO"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Metatype",
+                    "printedName": "MixSdk.MSError.Type",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "MSError",
+                        "printedName": "MixSdk.MSError",
+                        "usr": "s:6MixSdk7MSErrorO"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "declKind": "EnumElement",
+            "usr": "s:6MixSdk7MSErrorO6unknowyA2CmF",
+            "mangledName": "$s6MixSdk7MSErrorO6unknowyA2CmF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "RawDocComment"
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "msg",
+            "printedName": "msg",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk7MSErrorO3msgSSvp",
+            "mangledName": "$s6MixSdk7MSErrorO3msgSSvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "AccessControl"
+            ],
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk7MSErrorO3msgSSvg",
+                "mangledName": "$s6MixSdk7MSErrorO3msgSSvg",
+                "moduleName": "MixSdk",
+                "accessorKind": "get"
+              }
+            ]
+          }
+        ],
+        "declKind": "Enum",
+        "usr": "s:6MixSdk7MSErrorO",
+        "mangledName": "$s6MixSdk7MSErrorO",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "AccessControl",
+          "RawDocComment"
+        ],
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Error",
+            "printedName": "Error",
+            "usr": "s:s5ErrorP",
+            "mangledName": "$ss5ErrorP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Sendable",
+            "printedName": "Sendable",
+            "usr": "s:s8SendableP",
+            "mangledName": "$ss8SendableP"
+          }
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "MSTtsEvent",
+        "printedName": "MSTtsEvent",
+        "children": [
+          {
+            "kind": "Var",
+            "name": "event",
+            "printedName": "event",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk10MSTtsEventC5eventSSvp",
+            "mangledName": "$s6MixSdk10MSTtsEventC5eventSSvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSTtsEventC5eventSSvg",
+                "mangledName": "$s6MixSdk10MSTtsEventC5eventSSvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSTtsEventC5eventSSvs",
+                "mangledName": "$s6MixSdk10MSTtsEventC5eventSSvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSTtsEventC5eventSSvM",
+                "mangledName": "$s6MixSdk10MSTtsEventC5eventSSvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "msg",
+            "printedName": "msg",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk10MSTtsEventC3msgSSvp",
+            "mangledName": "$s6MixSdk10MSTtsEventC3msgSSvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSTtsEventC3msgSSvg",
+                "mangledName": "$s6MixSdk10MSTtsEventC3msgSSvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSTtsEventC3msgSSvs",
+                "mangledName": "$s6MixSdk10MSTtsEventC3msgSSvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSTtsEventC3msgSSvM",
+                "mangledName": "$s6MixSdk10MSTtsEventC3msgSSvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "status",
+            "printedName": "status",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk10MSTtsEventC6statusSivp",
+            "mangledName": "$s6MixSdk10MSTtsEventC6statusSivp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSTtsEventC6statusSivg",
+                "mangledName": "$s6MixSdk10MSTtsEventC6statusSivg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSTtsEventC6statusSivs",
+                "mangledName": "$s6MixSdk10MSTtsEventC6statusSivs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSTtsEventC6statusSivM",
+                "mangledName": "$s6MixSdk10MSTtsEventC6statusSivM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "task_id",
+            "printedName": "task_id",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk10MSTtsEventC7task_idSSvp",
+            "mangledName": "$s6MixSdk10MSTtsEventC7task_idSSvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSTtsEventC7task_idSSvg",
+                "mangledName": "$s6MixSdk10MSTtsEventC7task_idSSvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSTtsEventC7task_idSSvs",
+                "mangledName": "$s6MixSdk10MSTtsEventC7task_idSSvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSTtsEventC7task_idSSvM",
+                "mangledName": "$s6MixSdk10MSTtsEventC7task_idSSvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Constructor",
+            "name": "init",
+            "printedName": "init(from:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "MSTtsEvent",
+                "printedName": "MixSdk.MSTtsEvent",
+                "usr": "s:6MixSdk10MSTtsEventC"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Decoder",
+                "printedName": "any Swift.Decoder",
+                "usr": "s:s7DecoderP"
+              }
+            ],
+            "declKind": "Constructor",
+            "usr": "s:6MixSdk10MSTtsEventC4fromACs7Decoder_p_tKcfc",
+            "mangledName": "$s6MixSdk10MSTtsEventC4fromACs7Decoder_p_tKcfc",
+            "moduleName": "MixSdk",
+            "implicit": true,
+            "declAttributes": [
+              "Required"
+            ],
+            "throwing": true,
+            "init_kind": "Designated"
+          },
+          {
+            "kind": "Function",
+            "name": "encode",
+            "printedName": "encode(to:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Encoder",
+                "printedName": "any Swift.Encoder",
+                "usr": "s:s7EncoderP"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk10MSTtsEventC6encode2toys7Encoder_p_tKF",
+            "mangledName": "$s6MixSdk10MSTtsEventC6encode2toys7Encoder_p_tKF",
+            "moduleName": "MixSdk",
+            "implicit": true,
+            "throwing": true,
+            "funcSelfKind": "NonMutating"
+          }
+        ],
+        "declKind": "Class",
+        "usr": "s:6MixSdk10MSTtsEventC",
+        "mangledName": "$s6MixSdk10MSTtsEventC",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "AccessControl",
+          "RawDocComment"
+        ],
+        "hasMissingDesignatedInitializers": true,
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Decodable",
+            "printedName": "Decodable",
+            "usr": "s:Se",
+            "mangledName": "$sSe"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Encodable",
+            "printedName": "Encodable",
+            "usr": "s:SE",
+            "mangledName": "$sSE"
+          }
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Darwin",
+        "printedName": "Darwin",
+        "declKind": "Import",
+        "moduleName": "MixSdk"
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Darwin",
+        "printedName": "Darwin",
+        "declKind": "Import",
+        "moduleName": "MixSdk"
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "MSConnectState",
+        "printedName": "MSConnectState",
+        "children": [
+          {
+            "kind": "Var",
+            "name": "connected",
+            "printedName": "connected",
+            "children": [
+              {
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(MixSdk.MSConnectState.Type) -> MixSdk.MSConnectState",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "MSConnectState",
+                    "printedName": "MixSdk.MSConnectState",
+                    "usr": "s:6MixSdk14MSConnectStateO"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Metatype",
+                    "printedName": "MixSdk.MSConnectState.Type",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "MSConnectState",
+                        "printedName": "MixSdk.MSConnectState",
+                        "usr": "s:6MixSdk14MSConnectStateO"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "declKind": "EnumElement",
+            "usr": "s:6MixSdk14MSConnectStateO9connectedyA2CmF",
+            "mangledName": "$s6MixSdk14MSConnectStateO9connectedyA2CmF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "RawDocComment"
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "disConnected",
+            "printedName": "disConnected",
+            "children": [
+              {
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(MixSdk.MSConnectState.Type) -> MixSdk.MSConnectState",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "MSConnectState",
+                    "printedName": "MixSdk.MSConnectState",
+                    "usr": "s:6MixSdk14MSConnectStateO"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Metatype",
+                    "printedName": "MixSdk.MSConnectState.Type",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "MSConnectState",
+                        "printedName": "MixSdk.MSConnectState",
+                        "usr": "s:6MixSdk14MSConnectStateO"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "declKind": "EnumElement",
+            "usr": "s:6MixSdk14MSConnectStateO12disConnectedyA2CmF",
+            "mangledName": "$s6MixSdk14MSConnectStateO12disConnectedyA2CmF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "RawDocComment"
+            ]
+          },
+          {
+            "kind": "Constructor",
+            "name": "init",
+            "printedName": "init(rawValue:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Optional",
+                "printedName": "MixSdk.MSConnectState?",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "MSConnectState",
+                    "printedName": "MixSdk.MSConnectState",
+                    "usr": "s:6MixSdk14MSConnectStateO"
+                  }
+                ],
+                "usr": "s:Sq"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              }
+            ],
+            "declKind": "Constructor",
+            "usr": "s:6MixSdk14MSConnectStateO8rawValueACSgSi_tcfc",
+            "mangledName": "$s6MixSdk14MSConnectStateO8rawValueACSgSi_tcfc",
+            "moduleName": "MixSdk",
+            "implicit": true,
+            "init_kind": "Designated"
+          },
+          {
+            "kind": "Var",
+            "name": "rawValue",
+            "printedName": "rawValue",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk14MSConnectStateO8rawValueSivp",
+            "mangledName": "$s6MixSdk14MSConnectStateO8rawValueSivp",
+            "moduleName": "MixSdk",
+            "implicit": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk14MSConnectStateO8rawValueSivg",
+                "mangledName": "$s6MixSdk14MSConnectStateO8rawValueSivg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              }
+            ]
+          }
+        ],
+        "declKind": "Enum",
+        "usr": "s:6MixSdk14MSConnectStateO",
+        "mangledName": "$s6MixSdk14MSConnectStateO",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "AccessControl",
+          "RawDocComment"
+        ],
+        "enumRawTypeName": "Int",
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Equatable",
+            "printedName": "Equatable",
+            "usr": "s:SQ",
+            "mangledName": "$sSQ"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Hashable",
+            "printedName": "Hashable",
+            "usr": "s:SH",
+            "mangledName": "$sSH"
+          },
+          {
+            "kind": "Conformance",
+            "name": "RawRepresentable",
+            "printedName": "RawRepresentable",
+            "children": [
+              {
+                "kind": "TypeWitness",
+                "name": "RawValue",
+                "printedName": "RawValue",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ]
+              }
+            ],
+            "usr": "s:SY",
+            "mangledName": "$sSY"
+          }
+        ]
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "MSStt",
+        "printedName": "MSStt",
+        "children": [
+          {
+            "kind": "Var",
+            "name": "eventCallBack",
+            "printedName": "eventCallBack",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Optional",
+                "printedName": "((MixSdk.MSSttEvent) -> ())?",
+                "children": [
+                  {
+                    "kind": "TypeFunc",
+                    "name": "Function",
+                    "printedName": "(MixSdk.MSSttEvent) -> ()",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Void",
+                        "printedName": "()"
+                      },
+                      {
+                        "kind": "TypeNominal",
+                        "name": "MSSttEvent",
+                        "printedName": "MixSdk.MSSttEvent",
+                        "usr": "s:6MixSdk10MSSttEventC"
+                      }
+                    ]
+                  }
+                ],
+                "usr": "s:Sq"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk5MSSttC13eventCallBackyAA0C5EventCcSgvp",
+            "mangledName": "$s6MixSdk5MSSttC13eventCallBackyAA0C5EventCcSgvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Optional",
+                    "printedName": "((MixSdk.MSSttEvent) -> ())?",
+                    "children": [
+                      {
+                        "kind": "TypeFunc",
+                        "name": "Function",
+                        "printedName": "(MixSdk.MSSttEvent) -> ()",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "Void",
+                            "printedName": "()"
+                          },
+                          {
+                            "kind": "TypeNominal",
+                            "name": "MSSttEvent",
+                            "printedName": "MixSdk.MSSttEvent",
+                            "usr": "s:6MixSdk10MSSttEventC"
+                          }
+                        ]
+                      }
+                    ],
+                    "usr": "s:Sq"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk5MSSttC13eventCallBackyAA0C5EventCcSgvg",
+                "mangledName": "$s6MixSdk5MSSttC13eventCallBackyAA0C5EventCcSgvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Optional",
+                    "printedName": "((MixSdk.MSSttEvent) -> ())?",
+                    "children": [
+                      {
+                        "kind": "TypeFunc",
+                        "name": "Function",
+                        "printedName": "(MixSdk.MSSttEvent) -> ()",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "Void",
+                            "printedName": "()"
+                          },
+                          {
+                            "kind": "TypeNominal",
+                            "name": "MSSttEvent",
+                            "printedName": "MixSdk.MSSttEvent",
+                            "usr": "s:6MixSdk10MSSttEventC"
+                          }
+                        ]
+                      }
+                    ],
+                    "usr": "s:Sq"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk5MSSttC13eventCallBackyAA0C5EventCcSgvs",
+                "mangledName": "$s6MixSdk5MSSttC13eventCallBackyAA0C5EventCcSgvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk5MSSttC13eventCallBackyAA0C5EventCcSgvM",
+                "mangledName": "$s6MixSdk5MSSttC13eventCallBackyAA0C5EventCcSgvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "connectStateCallBack",
+            "printedName": "connectStateCallBack",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Optional",
+                "printedName": "((MixSdk.MSConnectState) -> ())?",
+                "children": [
+                  {
+                    "kind": "TypeFunc",
+                    "name": "Function",
+                    "printedName": "(MixSdk.MSConnectState) -> ()",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Void",
+                        "printedName": "()"
+                      },
+                      {
+                        "kind": "TypeNominal",
+                        "name": "MSConnectState",
+                        "printedName": "MixSdk.MSConnectState",
+                        "usr": "s:6MixSdk14MSConnectStateO"
+                      }
+                    ]
+                  }
+                ],
+                "usr": "s:Sq"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk5MSSttC20connectStateCallBackyAA09MSConnectE0OcSgvp",
+            "mangledName": "$s6MixSdk5MSSttC20connectStateCallBackyAA09MSConnectE0OcSgvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Optional",
+                    "printedName": "((MixSdk.MSConnectState) -> ())?",
+                    "children": [
+                      {
+                        "kind": "TypeFunc",
+                        "name": "Function",
+                        "printedName": "(MixSdk.MSConnectState) -> ()",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "Void",
+                            "printedName": "()"
+                          },
+                          {
+                            "kind": "TypeNominal",
+                            "name": "MSConnectState",
+                            "printedName": "MixSdk.MSConnectState",
+                            "usr": "s:6MixSdk14MSConnectStateO"
+                          }
+                        ]
+                      }
+                    ],
+                    "usr": "s:Sq"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk5MSSttC20connectStateCallBackyAA09MSConnectE0OcSgvg",
+                "mangledName": "$s6MixSdk5MSSttC20connectStateCallBackyAA09MSConnectE0OcSgvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Optional",
+                    "printedName": "((MixSdk.MSConnectState) -> ())?",
+                    "children": [
+                      {
+                        "kind": "TypeFunc",
+                        "name": "Function",
+                        "printedName": "(MixSdk.MSConnectState) -> ()",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "Void",
+                            "printedName": "()"
+                          },
+                          {
+                            "kind": "TypeNominal",
+                            "name": "MSConnectState",
+                            "printedName": "MixSdk.MSConnectState",
+                            "usr": "s:6MixSdk14MSConnectStateO"
+                          }
+                        ]
+                      }
+                    ],
+                    "usr": "s:Sq"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk5MSSttC20connectStateCallBackyAA09MSConnectE0OcSgvs",
+                "mangledName": "$s6MixSdk5MSSttC20connectStateCallBackyAA09MSConnectE0OcSgvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk5MSSttC20connectStateCallBackyAA09MSConnectE0OcSgvM",
+                "mangledName": "$s6MixSdk5MSSttC20connectStateCallBackyAA09MSConnectE0OcSgvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "connectState",
+            "printedName": "connectState",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "MSConnectState",
+                "printedName": "MixSdk.MSConnectState",
+                "usr": "s:6MixSdk14MSConnectStateO"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk5MSSttC12connectStateAA09MSConnectE0Ovp",
+            "mangledName": "$s6MixSdk5MSSttC12connectStateAA09MSConnectE0Ovp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "MSConnectState",
+                    "printedName": "MixSdk.MSConnectState",
+                    "usr": "s:6MixSdk14MSConnectStateO"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk5MSSttC12connectStateAA09MSConnectE0Ovg",
+                "mangledName": "$s6MixSdk5MSSttC12connectStateAA09MSConnectE0Ovg",
+                "moduleName": "MixSdk",
+                "accessorKind": "get"
+              }
+            ]
+          },
+          {
+            "kind": "Function",
+            "name": "sentenceRecognize",
+            "printedName": "sentenceRecognize(filePath:format:sample_rate:lang:completeHandler:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Optional",
+                "printedName": "Swift.String?",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "hasDefaultArg": true,
+                "usr": "s:Sq"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Optional",
+                "printedName": "Swift.String?",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "hasDefaultArg": true,
+                "usr": "s:Sq"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Optional",
+                "printedName": "Swift.String?",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "hasDefaultArg": true,
+                "usr": "s:Sq"
+              },
+              {
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(Swift.String?, MixSdk.MSError?) -> ()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Tuple",
+                    "printedName": "(Swift.String?, MixSdk.MSError?)",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Optional",
+                        "printedName": "Swift.String?",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "String",
+                            "printedName": "Swift.String",
+                            "usr": "s:SS"
+                          }
+                        ],
+                        "usr": "s:Sq"
+                      },
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Optional",
+                        "printedName": "MixSdk.MSError?",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "MSError",
+                            "printedName": "MixSdk.MSError",
+                            "usr": "s:6MixSdk7MSErrorO"
+                          }
+                        ],
+                        "usr": "s:Sq"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk5MSSttC17sentenceRecognize8filePath6format11sample_rate4lang15completeHandlerySS_SSSgA2JyAJ_AA7MSErrorOSgtctF",
+            "mangledName": "$s6MixSdk5MSSttC17sentenceRecognize8filePath6format11sample_rate4lang15completeHandlerySS_SSSgA2JyAJ_AA7MSErrorOSgtctF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "funcSelfKind": "NonMutating"
+          },
+          {
+            "kind": "Function",
+            "name": "startTranscription",
+            "printedName": "startTranscription()",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk5MSSttC18startTranscriptionyyF",
+            "mangledName": "$s6MixSdk5MSSttC18startTranscriptionyyF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "RawDocComment"
+            ],
+            "isFromExtension": true,
+            "funcSelfKind": "NonMutating"
+          },
+          {
+            "kind": "Function",
+            "name": "stopTranscription",
+            "printedName": "stopTranscription()",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk5MSSttC17stopTranscriptionyyF",
+            "mangledName": "$s6MixSdk5MSSttC17stopTranscriptionyyF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "RawDocComment"
+            ],
+            "isFromExtension": true,
+            "funcSelfKind": "NonMutating"
+          },
+          {
+            "kind": "Function",
+            "name": "sendVoice",
+            "printedName": "sendVoice(pcmData:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Data",
+                "printedName": "Foundation.Data",
+                "usr": "s:10Foundation4DataV"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk5MSSttC9sendVoice7pcmDatay10Foundation0G0V_tF",
+            "mangledName": "$s6MixSdk5MSSttC9sendVoice7pcmDatay10Foundation0G0V_tF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "RawDocComment"
+            ],
+            "isFromExtension": true,
+            "funcSelfKind": "NonMutating"
+          },
+          {
+            "kind": "Function",
+            "name": "sendVoice",
+            "printedName": "sendVoice(sbcData:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Data",
+                "printedName": "Foundation.Data",
+                "usr": "s:10Foundation4DataV"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk5MSSttC9sendVoice7sbcDatay10Foundation0G0V_tF",
+            "mangledName": "$s6MixSdk5MSSttC9sendVoice7sbcDatay10Foundation0G0V_tF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "RawDocComment"
+            ],
+            "isFromExtension": true,
+            "funcSelfKind": "NonMutating"
+          }
+        ],
+        "declKind": "Class",
+        "usr": "s:6MixSdk5MSSttC",
+        "mangledName": "$s6MixSdk5MSSttC",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "AccessControl",
+          "RawDocComment"
+        ],
+        "hasMissingDesignatedInitializers": true,
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Darwin",
+        "printedName": "Darwin",
+        "declKind": "Import",
+        "moduleName": "MixSdk"
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "StreamDecryptor",
+        "printedName": "StreamDecryptor",
+        "children": [
+          {
+            "kind": "TypeDecl",
+            "name": "Error",
+            "printedName": "Error",
+            "children": [
+              {
+                "kind": "Var",
+                "name": "unsupported",
+                "printedName": "unsupported",
+                "children": [
+                  {
+                    "kind": "TypeFunc",
+                    "name": "Function",
+                    "printedName": "(MixSdk.StreamDecryptor.Error.Type) -> MixSdk.StreamDecryptor.Error",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Error",
+                        "printedName": "MixSdk.StreamDecryptor.Error",
+                        "usr": "s:6MixSdk15StreamDecryptorC5ErrorO"
+                      },
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Metatype",
+                        "printedName": "MixSdk.StreamDecryptor.Error.Type",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "Error",
+                            "printedName": "MixSdk.StreamDecryptor.Error",
+                            "usr": "s:6MixSdk15StreamDecryptorC5ErrorO"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ],
+                "declKind": "EnumElement",
+                "usr": "s:6MixSdk15StreamDecryptorC5ErrorO11unsupportedyA2EmF",
+                "mangledName": "$s6MixSdk15StreamDecryptorC5ErrorO11unsupportedyA2EmF",
+                "moduleName": "MixSdk"
+              },
+              {
+                "kind": "Function",
+                "name": "==",
+                "printedName": "==(_:_:)",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Bool",
+                    "printedName": "Swift.Bool",
+                    "usr": "s:Sb"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Error",
+                    "printedName": "MixSdk.StreamDecryptor.Error",
+                    "usr": "s:6MixSdk15StreamDecryptorC5ErrorO"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Error",
+                    "printedName": "MixSdk.StreamDecryptor.Error",
+                    "usr": "s:6MixSdk15StreamDecryptorC5ErrorO"
+                  }
+                ],
+                "declKind": "Func",
+                "usr": "s:6MixSdk15StreamDecryptorC5ErrorO2eeoiySbAE_AEtFZ",
+                "mangledName": "$s6MixSdk15StreamDecryptorC5ErrorO2eeoiySbAE_AEtFZ",
+                "moduleName": "MixSdk",
+                "static": true,
+                "implicit": true,
+                "declAttributes": [
+                  "UsableFromInline"
+                ],
+                "funcSelfKind": "NonMutating"
+              },
+              {
+                "kind": "Var",
+                "name": "hashValue",
+                "printedName": "hashValue",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Var",
+                "usr": "s:6MixSdk15StreamDecryptorC5ErrorO9hashValueSivp",
+                "mangledName": "$s6MixSdk15StreamDecryptorC5ErrorO9hashValueSivp",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "declAttributes": [
+                  "UsableFromInline"
+                ],
+                "accessors": [
+                  {
+                    "kind": "Accessor",
+                    "name": "Get",
+                    "printedName": "Get()",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Int",
+                        "printedName": "Swift.Int",
+                        "usr": "s:Si"
+                      }
+                    ],
+                    "declKind": "Accessor",
+                    "usr": "s:6MixSdk15StreamDecryptorC5ErrorO9hashValueSivg",
+                    "mangledName": "$s6MixSdk15StreamDecryptorC5ErrorO9hashValueSivg",
+                    "moduleName": "MixSdk",
+                    "implicit": true,
+                    "declAttributes": [
+                      "UsableFromInline"
+                    ],
+                    "accessorKind": "get"
+                  }
+                ]
+              },
+              {
+                "kind": "Function",
+                "name": "hash",
+                "printedName": "hash(into:)",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Hasher",
+                    "printedName": "Swift.Hasher",
+                    "paramValueOwnership": "InOut",
+                    "usr": "s:s6HasherV"
+                  }
+                ],
+                "declKind": "Func",
+                "usr": "s:6MixSdk15StreamDecryptorC5ErrorO4hash4intoys6HasherVz_tF",
+                "mangledName": "$s6MixSdk15StreamDecryptorC5ErrorO4hash4intoys6HasherVz_tF",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "declAttributes": [
+                  "UsableFromInline"
+                ],
+                "funcSelfKind": "NonMutating"
+              }
+            ],
+            "declKind": "Enum",
+            "usr": "s:6MixSdk15StreamDecryptorC5ErrorO",
+            "mangledName": "$s6MixSdk15StreamDecryptorC5ErrorO",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "UsableFromInline"
+            ],
+            "conformances": [
+              {
+                "kind": "Conformance",
+                "name": "Copyable",
+                "printedName": "Copyable",
+                "usr": "s:s8CopyableP",
+                "mangledName": "$ss8CopyableP"
+              },
+              {
+                "kind": "Conformance",
+                "name": "Escapable",
+                "printedName": "Escapable",
+                "usr": "s:s9EscapableP",
+                "mangledName": "$ss9EscapableP"
+              },
+              {
+                "kind": "Conformance",
+                "name": "Equatable",
+                "printedName": "Equatable",
+                "usr": "s:SQ",
+                "mangledName": "$sSQ"
+              },
+              {
+                "kind": "Conformance",
+                "name": "Hashable",
+                "printedName": "Hashable",
+                "usr": "s:SH",
+                "mangledName": "$sSH"
+              },
+              {
+                "kind": "Conformance",
+                "name": "Error",
+                "printedName": "Error",
+                "usr": "s:s5ErrorP",
+                "mangledName": "$ss5ErrorP"
+              },
+              {
+                "kind": "Conformance",
+                "name": "Sendable",
+                "printedName": "Sendable",
+                "usr": "s:s8SendableP",
+                "mangledName": "$ss8SendableP"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "blockSize",
+            "printedName": "blockSize",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk15StreamDecryptorC9blockSizeSivp",
+            "mangledName": "$s6MixSdk15StreamDecryptorC9blockSizeSivp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "Final",
+              "HasStorage",
+              "AccessControl",
+              "UsableFromInline"
+            ],
+            "isLet": true,
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk15StreamDecryptorC9blockSizeSivg",
+                "mangledName": "$s6MixSdk15StreamDecryptorC9blockSizeSivg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "declAttributes": [
+                  "Final"
+                ],
+                "accessorKind": "get"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "worker",
+            "printedName": "worker",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "CipherModeWorker",
+                "printedName": "any MixSdk.CipherModeWorker",
+                "usr": "s:6MixSdk16CipherModeWorkerP"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk15StreamDecryptorC6workerAA16CipherModeWorker_pvp",
+            "mangledName": "$s6MixSdk15StreamDecryptorC6workerAA16CipherModeWorker_pvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "Final",
+              "HasStorage",
+              "AccessControl",
+              "UsableFromInline"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "CipherModeWorker",
+                    "printedName": "any MixSdk.CipherModeWorker",
+                    "usr": "s:6MixSdk16CipherModeWorkerP"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk15StreamDecryptorC6workerAA16CipherModeWorker_pvg",
+                "mangledName": "$s6MixSdk15StreamDecryptorC6workerAA16CipherModeWorker_pvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "declAttributes": [
+                  "Final"
+                ],
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "CipherModeWorker",
+                    "printedName": "any MixSdk.CipherModeWorker",
+                    "usr": "s:6MixSdk16CipherModeWorkerP"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk15StreamDecryptorC6workerAA16CipherModeWorker_pvs",
+                "mangledName": "$s6MixSdk15StreamDecryptorC6workerAA16CipherModeWorker_pvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "declAttributes": [
+                  "Final"
+                ],
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk15StreamDecryptorC6workerAA16CipherModeWorker_pvM",
+                "mangledName": "$s6MixSdk15StreamDecryptorC6workerAA16CipherModeWorker_pvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "declAttributes": [
+                  "Final"
+                ],
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "padding",
+            "printedName": "padding",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Padding",
+                "printedName": "MixSdk.Padding",
+                "usr": "s:6MixSdk7PaddingO"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk15StreamDecryptorC7paddingAA7PaddingOvp",
+            "mangledName": "$s6MixSdk15StreamDecryptorC7paddingAA7PaddingOvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "Final",
+              "HasStorage",
+              "AccessControl",
+              "UsableFromInline"
+            ],
+            "isLet": true,
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Padding",
+                    "printedName": "MixSdk.Padding",
+                    "usr": "s:6MixSdk7PaddingO"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk15StreamDecryptorC7paddingAA7PaddingOvg",
+                "mangledName": "$s6MixSdk15StreamDecryptorC7paddingAA7PaddingOvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "declAttributes": [
+                  "Final"
+                ],
+                "accessorKind": "get"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "accumulated",
+            "printedName": "accumulated",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Array",
+                "printedName": "[Swift.UInt8]",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "UInt8",
+                    "printedName": "Swift.UInt8",
+                    "usr": "s:s5UInt8V"
+                  }
+                ],
+                "usr": "s:Sa"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk15StreamDecryptorC11accumulatedSays5UInt8VGvp",
+            "mangledName": "$s6MixSdk15StreamDecryptorC11accumulatedSays5UInt8VGvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "Final",
+              "HasStorage",
+              "AccessControl",
+              "UsableFromInline"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Array",
+                    "printedName": "[Swift.UInt8]",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "UInt8",
+                        "printedName": "Swift.UInt8",
+                        "usr": "s:s5UInt8V"
+                      }
+                    ],
+                    "usr": "s:Sa"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk15StreamDecryptorC11accumulatedSays5UInt8VGvg",
+                "mangledName": "$s6MixSdk15StreamDecryptorC11accumulatedSays5UInt8VGvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "declAttributes": [
+                  "Final"
+                ],
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Array",
+                    "printedName": "[Swift.UInt8]",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "UInt8",
+                        "printedName": "Swift.UInt8",
+                        "usr": "s:s5UInt8V"
+                      }
+                    ],
+                    "usr": "s:Sa"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk15StreamDecryptorC11accumulatedSays5UInt8VGvs",
+                "mangledName": "$s6MixSdk15StreamDecryptorC11accumulatedSays5UInt8VGvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "declAttributes": [
+                  "Final"
+                ],
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk15StreamDecryptorC11accumulatedSays5UInt8VGvM",
+                "mangledName": "$s6MixSdk15StreamDecryptorC11accumulatedSays5UInt8VGvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "declAttributes": [
+                  "Final"
+                ],
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "lastBlockRemainder",
+            "printedName": "lastBlockRemainder",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk15StreamDecryptorC18lastBlockRemainderSivp",
+            "mangledName": "$s6MixSdk15StreamDecryptorC18lastBlockRemainderSivp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "Final",
+              "HasStorage",
+              "AccessControl",
+              "UsableFromInline"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk15StreamDecryptorC18lastBlockRemainderSivg",
+                "mangledName": "$s6MixSdk15StreamDecryptorC18lastBlockRemainderSivg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "declAttributes": [
+                  "Final"
+                ],
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk15StreamDecryptorC18lastBlockRemainderSivs",
+                "mangledName": "$s6MixSdk15StreamDecryptorC18lastBlockRemainderSivs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "declAttributes": [
+                  "Final"
+                ],
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk15StreamDecryptorC18lastBlockRemainderSivM",
+                "mangledName": "$s6MixSdk15StreamDecryptorC18lastBlockRemainderSivM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "declAttributes": [
+                  "Final"
+                ],
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Constructor",
+            "name": "init",
+            "printedName": "init(blockSize:padding:_:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "StreamDecryptor",
+                "printedName": "MixSdk.StreamDecryptor",
+                "usr": "s:6MixSdk15StreamDecryptorC"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Padding",
+                "printedName": "MixSdk.Padding",
+                "usr": "s:6MixSdk7PaddingO"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "CipherModeWorker",
+                "printedName": "any MixSdk.CipherModeWorker",
+                "usr": "s:6MixSdk16CipherModeWorkerP"
+              }
+            ],
+            "declKind": "Constructor",
+            "usr": "s:6MixSdk15StreamDecryptorC9blockSize7padding_ACSi_AA7PaddingOAA16CipherModeWorker_ptKcfc",
+            "mangledName": "$s6MixSdk15StreamDecryptorC9blockSize7padding_ACSi_AA7PaddingOAA16CipherModeWorker_ptKcfc",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "UsableFromInline"
+            ],
+            "throwing": true,
+            "init_kind": "Designated"
+          }
+        ],
+        "declKind": "Class",
+        "usr": "s:6MixSdk15StreamDecryptorC",
+        "mangledName": "$s6MixSdk15StreamDecryptorC",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "Final",
+          "UsableFromInline",
+          "RawDocComment"
+        ],
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "BatchedCollectionIndex",
+        "printedName": "BatchedCollectionIndex",
+        "children": [
+          {
+            "kind": "Function",
+            "name": "==",
+            "printedName": "==(_:_:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Bool",
+                "printedName": "Swift.Bool",
+                "usr": "s:Sb"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "BatchedCollectionIndex",
+                "printedName": "MixSdk.BatchedCollectionIndex<τ_1_0>",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "GenericTypeParam",
+                    "printedName": "τ_1_0"
+                  }
+                ],
+                "usr": "s:6MixSdk22BatchedCollectionIndexV"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "BatchedCollectionIndex",
+                "printedName": "MixSdk.BatchedCollectionIndex<τ_1_0>",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "GenericTypeParam",
+                    "printedName": "τ_1_0"
+                  }
+                ],
+                "usr": "s:6MixSdk22BatchedCollectionIndexV"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk22BatchedCollectionIndexV2eeoiySbACyqd__G_AEtSlRd__lFZ",
+            "mangledName": "$s6MixSdk22BatchedCollectionIndexV2eeoiySbACyqd__G_AEtSlRd__lFZ",
+            "moduleName": "MixSdk",
+            "genericSig": "<τ_0_0, τ_1_0 where τ_0_0 : Swift.Collection, τ_1_0 : Swift.Collection>",
+            "sugared_genericSig": "<Base, BaseCollection where Base : Swift.Collection, BaseCollection : Swift.Collection>",
+            "static": true,
+            "declAttributes": [
+              "UsableFromInline"
+            ],
+            "isFromExtension": true,
+            "funcSelfKind": "NonMutating"
+          },
+          {
+            "kind": "Function",
+            "name": "<",
+            "printedName": "<(_:_:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Bool",
+                "printedName": "Swift.Bool",
+                "usr": "s:Sb"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "BatchedCollectionIndex",
+                "printedName": "MixSdk.BatchedCollectionIndex<τ_1_0>",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "GenericTypeParam",
+                    "printedName": "τ_1_0"
+                  }
+                ],
+                "usr": "s:6MixSdk22BatchedCollectionIndexV"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "BatchedCollectionIndex",
+                "printedName": "MixSdk.BatchedCollectionIndex<τ_1_0>",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "GenericTypeParam",
+                    "printedName": "τ_1_0"
+                  }
+                ],
+                "usr": "s:6MixSdk22BatchedCollectionIndexV"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk22BatchedCollectionIndexV1loiySbACyqd__G_AEtSlRd__lFZ",
+            "mangledName": "$s6MixSdk22BatchedCollectionIndexV1loiySbACyqd__G_AEtSlRd__lFZ",
+            "moduleName": "MixSdk",
+            "genericSig": "<τ_0_0, τ_1_0 where τ_0_0 : Swift.Collection, τ_1_0 : Swift.Collection>",
+            "sugared_genericSig": "<Base, BaseCollection where Base : Swift.Collection, BaseCollection : Swift.Collection>",
+            "static": true,
+            "declAttributes": [
+              "UsableFromInline"
+            ],
+            "isFromExtension": true,
+            "funcSelfKind": "NonMutating"
+          }
+        ],
+        "declKind": "Struct",
+        "usr": "s:6MixSdk22BatchedCollectionIndexV",
+        "mangledName": "$s6MixSdk22BatchedCollectionIndexV",
+        "moduleName": "MixSdk",
+        "genericSig": "<τ_0_0 where τ_0_0 : Swift.Collection>",
+        "sugared_genericSig": "<Base where Base : Swift.Collection>",
+        "declAttributes": [
+          "UsableFromInline",
+          "RawDocComment"
+        ],
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Comparable",
+            "printedName": "Comparable",
+            "usr": "s:SL",
+            "mangledName": "$sSL"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Equatable",
+            "printedName": "Equatable",
+            "usr": "s:SQ",
+            "mangledName": "$sSQ"
+          }
+        ]
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "BatchedCollection",
+        "printedName": "BatchedCollection",
+        "children": [
+          {
+            "kind": "Constructor",
+            "name": "init",
+            "printedName": "init(base:size:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "BatchedCollection",
+                "printedName": "MixSdk.BatchedCollection<τ_0_0>",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "GenericTypeParam",
+                    "printedName": "τ_0_0"
+                  }
+                ],
+                "usr": "s:6MixSdk17BatchedCollectionV"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "GenericTypeParam",
+                "printedName": "τ_0_0"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              }
+            ],
+            "declKind": "Constructor",
+            "usr": "s:6MixSdk17BatchedCollectionV4base4sizeACyxGx_Sitcfc",
+            "mangledName": "$s6MixSdk17BatchedCollectionV4base4sizeACyxGx_Sitcfc",
+            "moduleName": "MixSdk",
+            "genericSig": "<τ_0_0 where τ_0_0 : Swift.Collection>",
+            "sugared_genericSig": "<Base where Base : Swift.Collection>",
+            "declAttributes": [
+              "UsableFromInline"
+            ],
+            "init_kind": "Designated"
+          },
+          {
+            "kind": "Var",
+            "name": "startIndex",
+            "printedName": "startIndex",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "BatchedCollectionIndex",
+                "printedName": "MixSdk.BatchedCollectionIndex<τ_0_0>",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "GenericTypeParam",
+                    "printedName": "τ_0_0"
+                  }
+                ],
+                "usr": "s:6MixSdk22BatchedCollectionIndexV"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk17BatchedCollectionV10startIndexAA0cdF0VyxGvp",
+            "mangledName": "$s6MixSdk17BatchedCollectionV10startIndexAA0cdF0VyxGvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "UsableFromInline"
+            ],
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "BatchedCollectionIndex",
+                    "printedName": "MixSdk.BatchedCollectionIndex<τ_0_0>",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "GenericTypeParam",
+                        "printedName": "τ_0_0"
+                      }
+                    ],
+                    "usr": "s:6MixSdk22BatchedCollectionIndexV"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk17BatchedCollectionV10startIndexAA0cdF0VyxGvg",
+                "mangledName": "$s6MixSdk17BatchedCollectionV10startIndexAA0cdF0VyxGvg",
+                "moduleName": "MixSdk",
+                "genericSig": "<τ_0_0 where τ_0_0 : Swift.Collection>",
+                "sugared_genericSig": "<Base where Base : Swift.Collection>",
+                "accessorKind": "get"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "endIndex",
+            "printedName": "endIndex",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "BatchedCollectionIndex",
+                "printedName": "MixSdk.BatchedCollectionIndex<τ_0_0>",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "GenericTypeParam",
+                    "printedName": "τ_0_0"
+                  }
+                ],
+                "usr": "s:6MixSdk22BatchedCollectionIndexV"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk17BatchedCollectionV8endIndexAA0cdF0VyxGvp",
+            "mangledName": "$s6MixSdk17BatchedCollectionV8endIndexAA0cdF0VyxGvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "UsableFromInline"
+            ],
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "BatchedCollectionIndex",
+                    "printedName": "MixSdk.BatchedCollectionIndex<τ_0_0>",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "GenericTypeParam",
+                        "printedName": "τ_0_0"
+                      }
+                    ],
+                    "usr": "s:6MixSdk22BatchedCollectionIndexV"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk17BatchedCollectionV8endIndexAA0cdF0VyxGvg",
+                "mangledName": "$s6MixSdk17BatchedCollectionV8endIndexAA0cdF0VyxGvg",
+                "moduleName": "MixSdk",
+                "genericSig": "<τ_0_0 where τ_0_0 : Swift.Collection>",
+                "sugared_genericSig": "<Base where Base : Swift.Collection>",
+                "accessorKind": "get"
+              }
+            ]
+          },
+          {
+            "kind": "Function",
+            "name": "index",
+            "printedName": "index(after:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "BatchedCollectionIndex",
+                "printedName": "MixSdk.BatchedCollectionIndex<τ_0_0>",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "GenericTypeParam",
+                    "printedName": "τ_0_0"
+                  }
+                ],
+                "usr": "s:6MixSdk22BatchedCollectionIndexV"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "BatchedCollectionIndex",
+                "printedName": "MixSdk.BatchedCollectionIndex<τ_0_0>",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "GenericTypeParam",
+                    "printedName": "τ_0_0"
+                  }
+                ],
+                "usr": "s:6MixSdk22BatchedCollectionIndexV"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk17BatchedCollectionV5index5afterAA0cD5IndexVyxGAH_tF",
+            "mangledName": "$s6MixSdk17BatchedCollectionV5index5afterAA0cD5IndexVyxGAH_tF",
+            "moduleName": "MixSdk",
+            "genericSig": "<τ_0_0 where τ_0_0 : Swift.Collection>",
+            "sugared_genericSig": "<Base where Base : Swift.Collection>",
+            "declAttributes": [
+              "UsableFromInline"
+            ],
+            "funcSelfKind": "NonMutating"
+          },
+          {
+            "kind": "Subscript",
+            "name": "subscript",
+            "printedName": "subscript(_:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "DependentMember",
+                "printedName": "τ_0_0.SubSequence"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "BatchedCollectionIndex",
+                "printedName": "MixSdk.BatchedCollectionIndex<τ_0_0>",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "GenericTypeParam",
+                    "printedName": "τ_0_0"
+                  }
+                ],
+                "usr": "s:6MixSdk22BatchedCollectionIndexV"
+              }
+            ],
+            "declKind": "Subscript",
+            "usr": "s:6MixSdk17BatchedCollectionVy11SubSequenceQzAA0cD5IndexVyxGcip",
+            "mangledName": "$s6MixSdk17BatchedCollectionVy11SubSequenceQzAA0cD5IndexVyxGcip",
+            "moduleName": "MixSdk",
+            "genericSig": "<τ_0_0 where τ_0_0 : Swift.Collection>",
+            "sugared_genericSig": "<Base where Base : Swift.Collection>",
+            "declAttributes": [
+              "UsableFromInline"
+            ],
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "DependentMember",
+                    "printedName": "τ_0_0.SubSequence"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "BatchedCollectionIndex",
+                    "printedName": "MixSdk.BatchedCollectionIndex<τ_0_0>",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "GenericTypeParam",
+                        "printedName": "τ_0_0"
+                      }
+                    ],
+                    "usr": "s:6MixSdk22BatchedCollectionIndexV"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk17BatchedCollectionVy11SubSequenceQzAA0cD5IndexVyxGcig",
+                "mangledName": "$s6MixSdk17BatchedCollectionVy11SubSequenceQzAA0cD5IndexVyxGcig",
+                "moduleName": "MixSdk",
+                "genericSig": "<τ_0_0 where τ_0_0 : Swift.Collection>",
+                "sugared_genericSig": "<Base where Base : Swift.Collection>",
+                "accessorKind": "get"
+              }
+            ]
+          }
+        ],
+        "declKind": "Struct",
+        "usr": "s:6MixSdk17BatchedCollectionV",
+        "mangledName": "$s6MixSdk17BatchedCollectionV",
+        "moduleName": "MixSdk",
+        "genericSig": "<τ_0_0 where τ_0_0 : Swift.Collection>",
+        "sugared_genericSig": "<Base where Base : Swift.Collection>",
+        "declAttributes": [
+          "UsableFromInline"
+        ],
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Collection",
+            "printedName": "Collection",
+            "children": [
+              {
+                "kind": "TypeWitness",
+                "name": "Element",
+                "printedName": "Element",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "DependentMember",
+                    "printedName": "τ_0_0.SubSequence"
+                  }
+                ]
+              },
+              {
+                "kind": "TypeWitness",
+                "name": "Index",
+                "printedName": "Index",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "BatchedCollectionIndex",
+                    "printedName": "MixSdk.BatchedCollectionIndex<τ_0_0>",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "GenericTypeParam",
+                        "printedName": "τ_0_0"
+                      }
+                    ],
+                    "usr": "s:6MixSdk22BatchedCollectionIndexV"
+                  }
+                ]
+              },
+              {
+                "kind": "TypeWitness",
+                "name": "Iterator",
+                "printedName": "Iterator",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "IndexingIterator",
+                    "printedName": "Swift.IndexingIterator<MixSdk.BatchedCollection<τ_0_0>>",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "BatchedCollection",
+                        "printedName": "MixSdk.BatchedCollection<τ_0_0>",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "GenericTypeParam",
+                            "printedName": "τ_0_0"
+                          }
+                        ],
+                        "usr": "s:6MixSdk17BatchedCollectionV"
+                      }
+                    ],
+                    "usr": "s:s16IndexingIteratorV"
+                  }
+                ]
+              },
+              {
+                "kind": "TypeWitness",
+                "name": "SubSequence",
+                "printedName": "SubSequence",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Slice",
+                    "printedName": "Swift.Slice<MixSdk.BatchedCollection<τ_0_0>>",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "BatchedCollection",
+                        "printedName": "MixSdk.BatchedCollection<τ_0_0>",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "GenericTypeParam",
+                            "printedName": "τ_0_0"
+                          }
+                        ],
+                        "usr": "s:6MixSdk17BatchedCollectionV"
+                      }
+                    ],
+                    "usr": "s:s5SliceV"
+                  }
+                ]
+              },
+              {
+                "kind": "TypeWitness",
+                "name": "Indices",
+                "printedName": "Indices",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "DefaultIndices",
+                    "printedName": "Swift.DefaultIndices<MixSdk.BatchedCollection<τ_0_0>>",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "BatchedCollection",
+                        "printedName": "MixSdk.BatchedCollection<τ_0_0>",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "GenericTypeParam",
+                            "printedName": "τ_0_0"
+                          }
+                        ],
+                        "usr": "s:6MixSdk17BatchedCollectionV"
+                      }
+                    ],
+                    "usr": "s:SI"
+                  }
+                ]
+              }
+            ],
+            "usr": "s:Sl",
+            "mangledName": "$sSl"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Sequence",
+            "printedName": "Sequence",
+            "children": [
+              {
+                "kind": "TypeWitness",
+                "name": "Element",
+                "printedName": "Element",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "DependentMember",
+                    "printedName": "τ_0_0.SubSequence"
+                  }
+                ]
+              },
+              {
+                "kind": "TypeWitness",
+                "name": "Iterator",
+                "printedName": "Iterator",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "IndexingIterator",
+                    "printedName": "Swift.IndexingIterator<MixSdk.BatchedCollection<τ_0_0>>",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "BatchedCollection",
+                        "printedName": "MixSdk.BatchedCollection<τ_0_0>",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "GenericTypeParam",
+                            "printedName": "τ_0_0"
+                          }
+                        ],
+                        "usr": "s:6MixSdk17BatchedCollectionV"
+                      }
+                    ],
+                    "usr": "s:s16IndexingIteratorV"
+                  }
+                ]
+              }
+            ],
+            "usr": "s:ST",
+            "mangledName": "$sST"
+          }
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Darwin",
+        "printedName": "Darwin",
+        "declKind": "Import",
+        "moduleName": "MixSdk"
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "MSRegisterModel",
+        "printedName": "MSRegisterModel",
+        "children": [
+          {
+            "kind": "Var",
+            "name": "deviceId",
+            "printedName": "deviceId",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk15MSRegisterModelC8deviceIdSSvp",
+            "mangledName": "$s6MixSdk15MSRegisterModelC8deviceIdSSvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk15MSRegisterModelC8deviceIdSSvg",
+                "mangledName": "$s6MixSdk15MSRegisterModelC8deviceIdSSvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk15MSRegisterModelC8deviceIdSSvs",
+                "mangledName": "$s6MixSdk15MSRegisterModelC8deviceIdSSvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk15MSRegisterModelC8deviceIdSSvM",
+                "mangledName": "$s6MixSdk15MSRegisterModelC8deviceIdSSvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "password",
+            "printedName": "password",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk15MSRegisterModelC8passwordSSvp",
+            "mangledName": "$s6MixSdk15MSRegisterModelC8passwordSSvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk15MSRegisterModelC8passwordSSvg",
+                "mangledName": "$s6MixSdk15MSRegisterModelC8passwordSSvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk15MSRegisterModelC8passwordSSvs",
+                "mangledName": "$s6MixSdk15MSRegisterModelC8passwordSSvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk15MSRegisterModelC8passwordSSvM",
+                "mangledName": "$s6MixSdk15MSRegisterModelC8passwordSSvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "nonce",
+            "printedName": "nonce",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk15MSRegisterModelC5nonceSSvp",
+            "mangledName": "$s6MixSdk15MSRegisterModelC5nonceSSvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk15MSRegisterModelC5nonceSSvg",
+                "mangledName": "$s6MixSdk15MSRegisterModelC5nonceSSvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk15MSRegisterModelC5nonceSSvs",
+                "mangledName": "$s6MixSdk15MSRegisterModelC5nonceSSvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk15MSRegisterModelC5nonceSSvM",
+                "mangledName": "$s6MixSdk15MSRegisterModelC5nonceSSvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          }
+        ],
+        "declKind": "Class",
+        "usr": "s:6MixSdk15MSRegisterModelC",
+        "mangledName": "$s6MixSdk15MSRegisterModelC",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "AccessControl",
+          "RawDocComment"
+        ],
+        "hasMissingDesignatedInitializers": true,
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "MSChatGptError",
+        "printedName": "MSChatGptError",
+        "children": [
+          {
+            "kind": "Var",
+            "name": "message",
+            "printedName": "message",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk14MSChatGptErrorC7messageSSvp",
+            "mangledName": "$s6MixSdk14MSChatGptErrorC7messageSSvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk14MSChatGptErrorC7messageSSvg",
+                "mangledName": "$s6MixSdk14MSChatGptErrorC7messageSSvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk14MSChatGptErrorC7messageSSvs",
+                "mangledName": "$s6MixSdk14MSChatGptErrorC7messageSSvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk14MSChatGptErrorC7messageSSvM",
+                "mangledName": "$s6MixSdk14MSChatGptErrorC7messageSSvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "code",
+            "printedName": "code",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk14MSChatGptErrorC4codeSSvp",
+            "mangledName": "$s6MixSdk14MSChatGptErrorC4codeSSvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk14MSChatGptErrorC4codeSSvg",
+                "mangledName": "$s6MixSdk14MSChatGptErrorC4codeSSvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk14MSChatGptErrorC4codeSSvs",
+                "mangledName": "$s6MixSdk14MSChatGptErrorC4codeSSvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk14MSChatGptErrorC4codeSSvM",
+                "mangledName": "$s6MixSdk14MSChatGptErrorC4codeSSvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Constructor",
+            "name": "init",
+            "printedName": "init(from:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "MSChatGptError",
+                "printedName": "MixSdk.MSChatGptError",
+                "usr": "s:6MixSdk14MSChatGptErrorC"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Decoder",
+                "printedName": "any Swift.Decoder",
+                "usr": "s:s7DecoderP"
+              }
+            ],
+            "declKind": "Constructor",
+            "usr": "s:6MixSdk14MSChatGptErrorC4fromACs7Decoder_p_tKcfc",
+            "mangledName": "$s6MixSdk14MSChatGptErrorC4fromACs7Decoder_p_tKcfc",
+            "moduleName": "MixSdk",
+            "implicit": true,
+            "declAttributes": [
+              "Required"
+            ],
+            "throwing": true,
+            "init_kind": "Designated"
+          },
+          {
+            "kind": "Function",
+            "name": "encode",
+            "printedName": "encode(to:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Encoder",
+                "printedName": "any Swift.Encoder",
+                "usr": "s:s7EncoderP"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk14MSChatGptErrorC6encode2toys7Encoder_p_tKF",
+            "mangledName": "$s6MixSdk14MSChatGptErrorC6encode2toys7Encoder_p_tKF",
+            "moduleName": "MixSdk",
+            "implicit": true,
+            "throwing": true,
+            "funcSelfKind": "NonMutating"
+          }
+        ],
+        "declKind": "Class",
+        "usr": "s:6MixSdk14MSChatGptErrorC",
+        "mangledName": "$s6MixSdk14MSChatGptErrorC",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "AccessControl",
+          "RawDocComment"
+        ],
+        "hasMissingDesignatedInitializers": true,
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Decodable",
+            "printedName": "Decodable",
+            "usr": "s:Se",
+            "mangledName": "$sSe"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Encodable",
+            "printedName": "Encodable",
+            "usr": "s:SE",
+            "mangledName": "$sSE"
+          }
+        ]
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "MSChatGptModel",
+        "printedName": "MSChatGptModel",
+        "children": [
+          {
+            "kind": "Var",
+            "name": "id",
+            "printedName": "id",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk14MSChatGptModelC2idSSvp",
+            "mangledName": "$s6MixSdk14MSChatGptModelC2idSSvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk14MSChatGptModelC2idSSvg",
+                "mangledName": "$s6MixSdk14MSChatGptModelC2idSSvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk14MSChatGptModelC2idSSvs",
+                "mangledName": "$s6MixSdk14MSChatGptModelC2idSSvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk14MSChatGptModelC2idSSvM",
+                "mangledName": "$s6MixSdk14MSChatGptModelC2idSSvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "object",
+            "printedName": "object",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk14MSChatGptModelC6objectSSvp",
+            "mangledName": "$s6MixSdk14MSChatGptModelC6objectSSvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk14MSChatGptModelC6objectSSvg",
+                "mangledName": "$s6MixSdk14MSChatGptModelC6objectSSvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk14MSChatGptModelC6objectSSvs",
+                "mangledName": "$s6MixSdk14MSChatGptModelC6objectSSvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk14MSChatGptModelC6objectSSvM",
+                "mangledName": "$s6MixSdk14MSChatGptModelC6objectSSvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "created",
+            "printedName": "created",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk14MSChatGptModelC7createdSivp",
+            "mangledName": "$s6MixSdk14MSChatGptModelC7createdSivp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk14MSChatGptModelC7createdSivg",
+                "mangledName": "$s6MixSdk14MSChatGptModelC7createdSivg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk14MSChatGptModelC7createdSivs",
+                "mangledName": "$s6MixSdk14MSChatGptModelC7createdSivs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk14MSChatGptModelC7createdSivM",
+                "mangledName": "$s6MixSdk14MSChatGptModelC7createdSivM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "model",
+            "printedName": "model",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk14MSChatGptModelC5modelSSvp",
+            "mangledName": "$s6MixSdk14MSChatGptModelC5modelSSvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk14MSChatGptModelC5modelSSvg",
+                "mangledName": "$s6MixSdk14MSChatGptModelC5modelSSvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk14MSChatGptModelC5modelSSvs",
+                "mangledName": "$s6MixSdk14MSChatGptModelC5modelSSvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk14MSChatGptModelC5modelSSvM",
+                "mangledName": "$s6MixSdk14MSChatGptModelC5modelSSvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "choices",
+            "printedName": "choices",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Array",
+                "printedName": "[MixSdk.MSChatGptChoices]",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "MSChatGptChoices",
+                    "printedName": "MixSdk.MSChatGptChoices",
+                    "usr": "s:6MixSdk16MSChatGptChoicesC"
+                  }
+                ],
+                "usr": "s:Sa"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk14MSChatGptModelC7choicesSayAA0cD7ChoicesCGvp",
+            "mangledName": "$s6MixSdk14MSChatGptModelC7choicesSayAA0cD7ChoicesCGvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Array",
+                    "printedName": "[MixSdk.MSChatGptChoices]",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "MSChatGptChoices",
+                        "printedName": "MixSdk.MSChatGptChoices",
+                        "usr": "s:6MixSdk16MSChatGptChoicesC"
+                      }
+                    ],
+                    "usr": "s:Sa"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk14MSChatGptModelC7choicesSayAA0cD7ChoicesCGvg",
+                "mangledName": "$s6MixSdk14MSChatGptModelC7choicesSayAA0cD7ChoicesCGvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Array",
+                    "printedName": "[MixSdk.MSChatGptChoices]",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "MSChatGptChoices",
+                        "printedName": "MixSdk.MSChatGptChoices",
+                        "usr": "s:6MixSdk16MSChatGptChoicesC"
+                      }
+                    ],
+                    "usr": "s:Sa"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk14MSChatGptModelC7choicesSayAA0cD7ChoicesCGvs",
+                "mangledName": "$s6MixSdk14MSChatGptModelC7choicesSayAA0cD7ChoicesCGvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk14MSChatGptModelC7choicesSayAA0cD7ChoicesCGvM",
+                "mangledName": "$s6MixSdk14MSChatGptModelC7choicesSayAA0cD7ChoicesCGvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "usage",
+            "printedName": "usage",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "MSChatGptUsage",
+                "printedName": "MixSdk.MSChatGptUsage",
+                "usr": "s:6MixSdk14MSChatGptUsageC"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk14MSChatGptModelC5usageAA0cD5UsageCvp",
+            "mangledName": "$s6MixSdk14MSChatGptModelC5usageAA0cD5UsageCvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "MSChatGptUsage",
+                    "printedName": "MixSdk.MSChatGptUsage",
+                    "usr": "s:6MixSdk14MSChatGptUsageC"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk14MSChatGptModelC5usageAA0cD5UsageCvg",
+                "mangledName": "$s6MixSdk14MSChatGptModelC5usageAA0cD5UsageCvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "MSChatGptUsage",
+                    "printedName": "MixSdk.MSChatGptUsage",
+                    "usr": "s:6MixSdk14MSChatGptUsageC"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk14MSChatGptModelC5usageAA0cD5UsageCvs",
+                "mangledName": "$s6MixSdk14MSChatGptModelC5usageAA0cD5UsageCvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk14MSChatGptModelC5usageAA0cD5UsageCvM",
+                "mangledName": "$s6MixSdk14MSChatGptModelC5usageAA0cD5UsageCvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Constructor",
+            "name": "init",
+            "printedName": "init(from:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "MSChatGptModel",
+                "printedName": "MixSdk.MSChatGptModel",
+                "usr": "s:6MixSdk14MSChatGptModelC"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Decoder",
+                "printedName": "any Swift.Decoder",
+                "usr": "s:s7DecoderP"
+              }
+            ],
+            "declKind": "Constructor",
+            "usr": "s:6MixSdk14MSChatGptModelC4fromACs7Decoder_p_tKcfc",
+            "mangledName": "$s6MixSdk14MSChatGptModelC4fromACs7Decoder_p_tKcfc",
+            "moduleName": "MixSdk",
+            "implicit": true,
+            "declAttributes": [
+              "Required"
+            ],
+            "throwing": true,
+            "init_kind": "Designated"
+          },
+          {
+            "kind": "Function",
+            "name": "encode",
+            "printedName": "encode(to:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Encoder",
+                "printedName": "any Swift.Encoder",
+                "usr": "s:s7EncoderP"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk14MSChatGptModelC6encode2toys7Encoder_p_tKF",
+            "mangledName": "$s6MixSdk14MSChatGptModelC6encode2toys7Encoder_p_tKF",
+            "moduleName": "MixSdk",
+            "implicit": true,
+            "throwing": true,
+            "funcSelfKind": "NonMutating"
+          }
+        ],
+        "declKind": "Class",
+        "usr": "s:6MixSdk14MSChatGptModelC",
+        "mangledName": "$s6MixSdk14MSChatGptModelC",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "AccessControl"
+        ],
+        "hasMissingDesignatedInitializers": true,
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Decodable",
+            "printedName": "Decodable",
+            "usr": "s:Se",
+            "mangledName": "$sSe"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Encodable",
+            "printedName": "Encodable",
+            "usr": "s:SE",
+            "mangledName": "$sSE"
+          }
+        ]
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "MSChatGptChoices",
+        "printedName": "MSChatGptChoices",
+        "children": [
+          {
+            "kind": "Var",
+            "name": "index",
+            "printedName": "index",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk16MSChatGptChoicesC5indexSivp",
+            "mangledName": "$s6MixSdk16MSChatGptChoicesC5indexSivp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk16MSChatGptChoicesC5indexSivg",
+                "mangledName": "$s6MixSdk16MSChatGptChoicesC5indexSivg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk16MSChatGptChoicesC5indexSivs",
+                "mangledName": "$s6MixSdk16MSChatGptChoicesC5indexSivs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk16MSChatGptChoicesC5indexSivM",
+                "mangledName": "$s6MixSdk16MSChatGptChoicesC5indexSivM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "message",
+            "printedName": "message",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "MSChatGptMessage",
+                "printedName": "MixSdk.MSChatGptMessage",
+                "usr": "s:6MixSdk16MSChatGptMessageC"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk16MSChatGptChoicesC7messageAA0cD7MessageCvp",
+            "mangledName": "$s6MixSdk16MSChatGptChoicesC7messageAA0cD7MessageCvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "MSChatGptMessage",
+                    "printedName": "MixSdk.MSChatGptMessage",
+                    "usr": "s:6MixSdk16MSChatGptMessageC"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk16MSChatGptChoicesC7messageAA0cD7MessageCvg",
+                "mangledName": "$s6MixSdk16MSChatGptChoicesC7messageAA0cD7MessageCvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "MSChatGptMessage",
+                    "printedName": "MixSdk.MSChatGptMessage",
+                    "usr": "s:6MixSdk16MSChatGptMessageC"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk16MSChatGptChoicesC7messageAA0cD7MessageCvs",
+                "mangledName": "$s6MixSdk16MSChatGptChoicesC7messageAA0cD7MessageCvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk16MSChatGptChoicesC7messageAA0cD7MessageCvM",
+                "mangledName": "$s6MixSdk16MSChatGptChoicesC7messageAA0cD7MessageCvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "finish_reason",
+            "printedName": "finish_reason",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk16MSChatGptChoicesC13finish_reasonSSvp",
+            "mangledName": "$s6MixSdk16MSChatGptChoicesC13finish_reasonSSvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk16MSChatGptChoicesC13finish_reasonSSvg",
+                "mangledName": "$s6MixSdk16MSChatGptChoicesC13finish_reasonSSvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk16MSChatGptChoicesC13finish_reasonSSvs",
+                "mangledName": "$s6MixSdk16MSChatGptChoicesC13finish_reasonSSvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk16MSChatGptChoicesC13finish_reasonSSvM",
+                "mangledName": "$s6MixSdk16MSChatGptChoicesC13finish_reasonSSvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Constructor",
+            "name": "init",
+            "printedName": "init(from:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "MSChatGptChoices",
+                "printedName": "MixSdk.MSChatGptChoices",
+                "usr": "s:6MixSdk16MSChatGptChoicesC"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Decoder",
+                "printedName": "any Swift.Decoder",
+                "usr": "s:s7DecoderP"
+              }
+            ],
+            "declKind": "Constructor",
+            "usr": "s:6MixSdk16MSChatGptChoicesC4fromACs7Decoder_p_tKcfc",
+            "mangledName": "$s6MixSdk16MSChatGptChoicesC4fromACs7Decoder_p_tKcfc",
+            "moduleName": "MixSdk",
+            "implicit": true,
+            "declAttributes": [
+              "Required"
+            ],
+            "throwing": true,
+            "init_kind": "Designated"
+          },
+          {
+            "kind": "Function",
+            "name": "encode",
+            "printedName": "encode(to:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Encoder",
+                "printedName": "any Swift.Encoder",
+                "usr": "s:s7EncoderP"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk16MSChatGptChoicesC6encode2toys7Encoder_p_tKF",
+            "mangledName": "$s6MixSdk16MSChatGptChoicesC6encode2toys7Encoder_p_tKF",
+            "moduleName": "MixSdk",
+            "implicit": true,
+            "throwing": true,
+            "funcSelfKind": "NonMutating"
+          }
+        ],
+        "declKind": "Class",
+        "usr": "s:6MixSdk16MSChatGptChoicesC",
+        "mangledName": "$s6MixSdk16MSChatGptChoicesC",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "AccessControl"
+        ],
+        "hasMissingDesignatedInitializers": true,
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Decodable",
+            "printedName": "Decodable",
+            "usr": "s:Se",
+            "mangledName": "$sSe"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Encodable",
+            "printedName": "Encodable",
+            "usr": "s:SE",
+            "mangledName": "$sSE"
+          }
+        ]
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "MSChatGptMessage",
+        "printedName": "MSChatGptMessage",
+        "children": [
+          {
+            "kind": "Var",
+            "name": "role",
+            "printedName": "role",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk16MSChatGptMessageC4roleSSvp",
+            "mangledName": "$s6MixSdk16MSChatGptMessageC4roleSSvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk16MSChatGptMessageC4roleSSvg",
+                "mangledName": "$s6MixSdk16MSChatGptMessageC4roleSSvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk16MSChatGptMessageC4roleSSvs",
+                "mangledName": "$s6MixSdk16MSChatGptMessageC4roleSSvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk16MSChatGptMessageC4roleSSvM",
+                "mangledName": "$s6MixSdk16MSChatGptMessageC4roleSSvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "content",
+            "printedName": "content",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk16MSChatGptMessageC7contentSSvp",
+            "mangledName": "$s6MixSdk16MSChatGptMessageC7contentSSvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk16MSChatGptMessageC7contentSSvg",
+                "mangledName": "$s6MixSdk16MSChatGptMessageC7contentSSvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk16MSChatGptMessageC7contentSSvs",
+                "mangledName": "$s6MixSdk16MSChatGptMessageC7contentSSvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk16MSChatGptMessageC7contentSSvM",
+                "mangledName": "$s6MixSdk16MSChatGptMessageC7contentSSvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Constructor",
+            "name": "init",
+            "printedName": "init(from:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "MSChatGptMessage",
+                "printedName": "MixSdk.MSChatGptMessage",
+                "usr": "s:6MixSdk16MSChatGptMessageC"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Decoder",
+                "printedName": "any Swift.Decoder",
+                "usr": "s:s7DecoderP"
+              }
+            ],
+            "declKind": "Constructor",
+            "usr": "s:6MixSdk16MSChatGptMessageC4fromACs7Decoder_p_tKcfc",
+            "mangledName": "$s6MixSdk16MSChatGptMessageC4fromACs7Decoder_p_tKcfc",
+            "moduleName": "MixSdk",
+            "implicit": true,
+            "declAttributes": [
+              "Required"
+            ],
+            "throwing": true,
+            "init_kind": "Designated"
+          },
+          {
+            "kind": "Function",
+            "name": "encode",
+            "printedName": "encode(to:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Encoder",
+                "printedName": "any Swift.Encoder",
+                "usr": "s:s7EncoderP"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk16MSChatGptMessageC6encode2toys7Encoder_p_tKF",
+            "mangledName": "$s6MixSdk16MSChatGptMessageC6encode2toys7Encoder_p_tKF",
+            "moduleName": "MixSdk",
+            "implicit": true,
+            "throwing": true,
+            "funcSelfKind": "NonMutating"
+          }
+        ],
+        "declKind": "Class",
+        "usr": "s:6MixSdk16MSChatGptMessageC",
+        "mangledName": "$s6MixSdk16MSChatGptMessageC",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "AccessControl",
+          "RawDocComment"
+        ],
+        "hasMissingDesignatedInitializers": true,
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Decodable",
+            "printedName": "Decodable",
+            "usr": "s:Se",
+            "mangledName": "$sSe"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Encodable",
+            "printedName": "Encodable",
+            "usr": "s:SE",
+            "mangledName": "$sSE"
+          }
+        ]
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "MSChatGptUsage",
+        "printedName": "MSChatGptUsage",
+        "children": [
+          {
+            "kind": "Var",
+            "name": "prompt_tokens",
+            "printedName": "prompt_tokens",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk14MSChatGptUsageC13prompt_tokensSivp",
+            "mangledName": "$s6MixSdk14MSChatGptUsageC13prompt_tokensSivp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk14MSChatGptUsageC13prompt_tokensSivg",
+                "mangledName": "$s6MixSdk14MSChatGptUsageC13prompt_tokensSivg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk14MSChatGptUsageC13prompt_tokensSivs",
+                "mangledName": "$s6MixSdk14MSChatGptUsageC13prompt_tokensSivs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk14MSChatGptUsageC13prompt_tokensSivM",
+                "mangledName": "$s6MixSdk14MSChatGptUsageC13prompt_tokensSivM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "completion_tokens",
+            "printedName": "completion_tokens",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk14MSChatGptUsageC17completion_tokensSivp",
+            "mangledName": "$s6MixSdk14MSChatGptUsageC17completion_tokensSivp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk14MSChatGptUsageC17completion_tokensSivg",
+                "mangledName": "$s6MixSdk14MSChatGptUsageC17completion_tokensSivg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk14MSChatGptUsageC17completion_tokensSivs",
+                "mangledName": "$s6MixSdk14MSChatGptUsageC17completion_tokensSivs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk14MSChatGptUsageC17completion_tokensSivM",
+                "mangledName": "$s6MixSdk14MSChatGptUsageC17completion_tokensSivM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "total_tokens",
+            "printedName": "total_tokens",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk14MSChatGptUsageC12total_tokensSivp",
+            "mangledName": "$s6MixSdk14MSChatGptUsageC12total_tokensSivp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk14MSChatGptUsageC12total_tokensSivg",
+                "mangledName": "$s6MixSdk14MSChatGptUsageC12total_tokensSivg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk14MSChatGptUsageC12total_tokensSivs",
+                "mangledName": "$s6MixSdk14MSChatGptUsageC12total_tokensSivs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk14MSChatGptUsageC12total_tokensSivM",
+                "mangledName": "$s6MixSdk14MSChatGptUsageC12total_tokensSivM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Constructor",
+            "name": "init",
+            "printedName": "init(from:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "MSChatGptUsage",
+                "printedName": "MixSdk.MSChatGptUsage",
+                "usr": "s:6MixSdk14MSChatGptUsageC"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Decoder",
+                "printedName": "any Swift.Decoder",
+                "usr": "s:s7DecoderP"
+              }
+            ],
+            "declKind": "Constructor",
+            "usr": "s:6MixSdk14MSChatGptUsageC4fromACs7Decoder_p_tKcfc",
+            "mangledName": "$s6MixSdk14MSChatGptUsageC4fromACs7Decoder_p_tKcfc",
+            "moduleName": "MixSdk",
+            "implicit": true,
+            "declAttributes": [
+              "Required"
+            ],
+            "throwing": true,
+            "init_kind": "Designated"
+          },
+          {
+            "kind": "Function",
+            "name": "encode",
+            "printedName": "encode(to:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Encoder",
+                "printedName": "any Swift.Encoder",
+                "usr": "s:s7EncoderP"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk14MSChatGptUsageC6encode2toys7Encoder_p_tKF",
+            "mangledName": "$s6MixSdk14MSChatGptUsageC6encode2toys7Encoder_p_tKF",
+            "moduleName": "MixSdk",
+            "implicit": true,
+            "throwing": true,
+            "funcSelfKind": "NonMutating"
+          }
+        ],
+        "declKind": "Class",
+        "usr": "s:6MixSdk14MSChatGptUsageC",
+        "mangledName": "$s6MixSdk14MSChatGptUsageC",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "AccessControl",
+          "RawDocComment"
+        ],
+        "hasMissingDesignatedInitializers": true,
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Decodable",
+            "printedName": "Decodable",
+            "usr": "s:Se",
+            "mangledName": "$sSe"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Encodable",
+            "printedName": "Encodable",
+            "usr": "s:SE",
+            "mangledName": "$sSE"
+          }
+        ]
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "BlockEncryptor",
+        "printedName": "BlockEncryptor",
+        "children": [
+          {
+            "kind": "Constructor",
+            "name": "init",
+            "printedName": "init(blockSize:padding:_:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "BlockEncryptor",
+                "printedName": "MixSdk.BlockEncryptor",
+                "usr": "s:6MixSdk14BlockEncryptorC"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Padding",
+                "printedName": "MixSdk.Padding",
+                "usr": "s:6MixSdk7PaddingO"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "CipherModeWorker",
+                "printedName": "any MixSdk.CipherModeWorker",
+                "usr": "s:6MixSdk16CipherModeWorkerP"
+              }
+            ],
+            "declKind": "Constructor",
+            "usr": "s:6MixSdk14BlockEncryptorC9blockSize7padding_ACSi_AA7PaddingOAA16CipherModeWorker_ptKcfc",
+            "mangledName": "$s6MixSdk14BlockEncryptorC9blockSize7padding_ACSi_AA7PaddingOAA16CipherModeWorker_ptKcfc",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "UsableFromInline"
+            ],
+            "throwing": true,
+            "init_kind": "Designated"
+          },
+          {
+            "kind": "Function",
+            "name": "seek",
+            "printedName": "seek(to:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk14BlockEncryptorC4seek2toySi_tKF",
+            "mangledName": "$s6MixSdk14BlockEncryptorC4seek2toySi_tKF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "Final",
+              "UsableFromInline"
+            ],
+            "throwing": true,
+            "funcSelfKind": "NonMutating"
+          }
+        ],
+        "declKind": "Class",
+        "usr": "s:6MixSdk14BlockEncryptorC",
+        "mangledName": "$s6MixSdk14BlockEncryptorC",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "Final",
+          "UsableFromInline",
+          "RawDocComment"
+        ],
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Security",
+        "printedName": "Security",
+        "declKind": "Import",
+        "moduleName": "MixSdk"
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Darwin",
+        "printedName": "Darwin",
+        "declKind": "Import",
+        "moduleName": "MixSdk"
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "MobileCoreServices",
+        "printedName": "MobileCoreServices",
+        "declKind": "Import",
+        "moduleName": "MixSdk"
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "MixTools",
+        "printedName": "MixTools",
+        "declKind": "Import",
+        "moduleName": "MixSdk"
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "MSPlatform",
+        "printedName": "MSPlatform",
+        "children": [
+          {
+            "kind": "Var",
+            "name": "aliyun",
+            "printedName": "aliyun",
+            "children": [
+              {
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(MixSdk.MSPlatform.Type) -> MixSdk.MSPlatform",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "MSPlatform",
+                    "printedName": "MixSdk.MSPlatform",
+                    "usr": "s:6MixSdk10MSPlatformO"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Metatype",
+                    "printedName": "MixSdk.MSPlatform.Type",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "MSPlatform",
+                        "printedName": "MixSdk.MSPlatform",
+                        "usr": "s:6MixSdk10MSPlatformO"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "declKind": "EnumElement",
+            "usr": "s:6MixSdk10MSPlatformO6aliyunyA2CmF",
+            "mangledName": "$s6MixSdk10MSPlatformO6aliyunyA2CmF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "RawDocComment"
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "xunfei",
+            "printedName": "xunfei",
+            "children": [
+              {
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(MixSdk.MSPlatform.Type) -> MixSdk.MSPlatform",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "MSPlatform",
+                    "printedName": "MixSdk.MSPlatform",
+                    "usr": "s:6MixSdk10MSPlatformO"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Metatype",
+                    "printedName": "MixSdk.MSPlatform.Type",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "MSPlatform",
+                        "printedName": "MixSdk.MSPlatform",
+                        "usr": "s:6MixSdk10MSPlatformO"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "declKind": "EnumElement",
+            "usr": "s:6MixSdk10MSPlatformO6xunfeiyA2CmF",
+            "mangledName": "$s6MixSdk10MSPlatformO6xunfeiyA2CmF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "RawDocComment"
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "yiyan",
+            "printedName": "yiyan",
+            "children": [
+              {
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(MixSdk.MSPlatform.Type) -> MixSdk.MSPlatform",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "MSPlatform",
+                    "printedName": "MixSdk.MSPlatform",
+                    "usr": "s:6MixSdk10MSPlatformO"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Metatype",
+                    "printedName": "MixSdk.MSPlatform.Type",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "MSPlatform",
+                        "printedName": "MixSdk.MSPlatform",
+                        "usr": "s:6MixSdk10MSPlatformO"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "declKind": "EnumElement",
+            "usr": "s:6MixSdk10MSPlatformO5yiyanyA2CmF",
+            "mangledName": "$s6MixSdk10MSPlatformO5yiyanyA2CmF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "RawDocComment"
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "doubao",
+            "printedName": "doubao",
+            "children": [
+              {
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(MixSdk.MSPlatform.Type) -> MixSdk.MSPlatform",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "MSPlatform",
+                    "printedName": "MixSdk.MSPlatform",
+                    "usr": "s:6MixSdk10MSPlatformO"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Metatype",
+                    "printedName": "MixSdk.MSPlatform.Type",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "MSPlatform",
+                        "printedName": "MixSdk.MSPlatform",
+                        "usr": "s:6MixSdk10MSPlatformO"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "declKind": "EnumElement",
+            "usr": "s:6MixSdk10MSPlatformO6doubaoyA2CmF",
+            "mangledName": "$s6MixSdk10MSPlatformO6doubaoyA2CmF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "RawDocComment"
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "kimi",
+            "printedName": "kimi",
+            "children": [
+              {
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(MixSdk.MSPlatform.Type) -> MixSdk.MSPlatform",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "MSPlatform",
+                    "printedName": "MixSdk.MSPlatform",
+                    "usr": "s:6MixSdk10MSPlatformO"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Metatype",
+                    "printedName": "MixSdk.MSPlatform.Type",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "MSPlatform",
+                        "printedName": "MixSdk.MSPlatform",
+                        "usr": "s:6MixSdk10MSPlatformO"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "declKind": "EnumElement",
+            "usr": "s:6MixSdk10MSPlatformO4kimiyA2CmF",
+            "mangledName": "$s6MixSdk10MSPlatformO4kimiyA2CmF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "RawDocComment"
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "chatGPT",
+            "printedName": "chatGPT",
+            "children": [
+              {
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(MixSdk.MSPlatform.Type) -> MixSdk.MSPlatform",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "MSPlatform",
+                    "printedName": "MixSdk.MSPlatform",
+                    "usr": "s:6MixSdk10MSPlatformO"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Metatype",
+                    "printedName": "MixSdk.MSPlatform.Type",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "MSPlatform",
+                        "printedName": "MixSdk.MSPlatform",
+                        "usr": "s:6MixSdk10MSPlatformO"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "declKind": "EnumElement",
+            "usr": "s:6MixSdk10MSPlatformO7chatGPTyA2CmF",
+            "mangledName": "$s6MixSdk10MSPlatformO7chatGPTyA2CmF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "RawDocComment"
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "title",
+            "printedName": "title",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk10MSPlatformO5titleSSvp",
+            "mangledName": "$s6MixSdk10MSPlatformO5titleSSvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "AccessControl"
+            ],
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSPlatformO5titleSSvg",
+                "mangledName": "$s6MixSdk10MSPlatformO5titleSSvg",
+                "moduleName": "MixSdk",
+                "accessorKind": "get"
+              }
+            ]
+          },
+          {
+            "kind": "Function",
+            "name": "==",
+            "printedName": "==(_:_:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Bool",
+                "printedName": "Swift.Bool",
+                "usr": "s:Sb"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "MSPlatform",
+                "printedName": "MixSdk.MSPlatform",
+                "usr": "s:6MixSdk10MSPlatformO"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "MSPlatform",
+                "printedName": "MixSdk.MSPlatform",
+                "usr": "s:6MixSdk10MSPlatformO"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk10MSPlatformO2eeoiySbAC_ACtFZ",
+            "mangledName": "$s6MixSdk10MSPlatformO2eeoiySbAC_ACtFZ",
+            "moduleName": "MixSdk",
+            "static": true,
+            "implicit": true,
+            "funcSelfKind": "NonMutating"
+          },
+          {
+            "kind": "Var",
+            "name": "hashValue",
+            "printedName": "hashValue",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk10MSPlatformO9hashValueSivp",
+            "mangledName": "$s6MixSdk10MSPlatformO9hashValueSivp",
+            "moduleName": "MixSdk",
+            "implicit": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSPlatformO9hashValueSivg",
+                "mangledName": "$s6MixSdk10MSPlatformO9hashValueSivg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              }
+            ]
+          },
+          {
+            "kind": "Function",
+            "name": "hash",
+            "printedName": "hash(into:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Hasher",
+                "printedName": "Swift.Hasher",
+                "paramValueOwnership": "InOut",
+                "usr": "s:s6HasherV"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk10MSPlatformO4hash4intoys6HasherVz_tF",
+            "mangledName": "$s6MixSdk10MSPlatformO4hash4intoys6HasherVz_tF",
+            "moduleName": "MixSdk",
+            "implicit": true,
+            "funcSelfKind": "NonMutating"
+          }
+        ],
+        "declKind": "Enum",
+        "usr": "s:6MixSdk10MSPlatformO",
+        "mangledName": "$s6MixSdk10MSPlatformO",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "AccessControl",
+          "RawDocComment"
+        ],
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Equatable",
+            "printedName": "Equatable",
+            "usr": "s:SQ",
+            "mangledName": "$sSQ"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Hashable",
+            "printedName": "Hashable",
+            "usr": "s:SH",
+            "mangledName": "$sSH"
+          }
+        ]
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "MixSdk",
+        "printedName": "MixSdk",
+        "children": [
+          {
+            "kind": "Var",
+            "name": "shared",
+            "printedName": "shared",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "MixSdk",
+                "printedName": "MixSdk.MixSdk",
+                "usr": "c:@M@MixSdk@objc(cs)MixSdk"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdkAAC6sharedABvpZ",
+            "mangledName": "$s6MixSdkAAC6sharedABvpZ",
+            "moduleName": "MixSdk",
+            "static": true,
+            "declAttributes": [
+              "HasInitialValue",
+              "Final",
+              "HasStorage",
+              "AccessControl"
+            ],
+            "isLet": true,
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "MixSdk",
+                    "printedName": "MixSdk.MixSdk",
+                    "usr": "c:@M@MixSdk@objc(cs)MixSdk"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdkAAC6sharedABvgZ",
+                "mangledName": "$s6MixSdkAAC6sharedABvgZ",
+                "moduleName": "MixSdk",
+                "static": true,
+                "implicit": true,
+                "declAttributes": [
+                  "Final"
+                ],
+                "accessorKind": "get"
+              }
+            ]
+          },
+          {
+            "kind": "Function",
+            "name": "initSDK",
+            "printedName": "initSDK()",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdkAAC7initSDKyyF",
+            "mangledName": "$s6MixSdkAAC7initSDKyyF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "funcSelfKind": "NonMutating"
+          },
+          {
+            "kind": "Var",
+            "name": "logs",
+            "printedName": "logs",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Array",
+                "printedName": "[Swift.String]",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "usr": "s:Sa"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdkAAC4logsSaySSGvp",
+            "mangledName": "$s6MixSdkAAC4logsSaySSGvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Array",
+                    "printedName": "[Swift.String]",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "String",
+                        "printedName": "Swift.String",
+                        "usr": "s:SS"
+                      }
+                    ],
+                    "usr": "s:Sa"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdkAAC4logsSaySSGvg",
+                "mangledName": "$s6MixSdkAAC4logsSaySSGvg",
+                "moduleName": "MixSdk",
+                "accessorKind": "get"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "version",
+            "printedName": "version",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdkAAC7versionSSvp",
+            "mangledName": "$s6MixSdkAAC7versionSSvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "Final",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "isLet": true,
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdkAAC7versionSSvg",
+                "mangledName": "$s6MixSdkAAC7versionSSvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "declAttributes": [
+                  "Final"
+                ],
+                "accessorKind": "get"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "isDebug",
+            "printedName": "isDebug",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Bool",
+                "printedName": "Swift.Bool",
+                "usr": "s:Sb"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdkAAC7isDebugSbvp",
+            "mangledName": "$s6MixSdkAAC7isDebugSbvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Bool",
+                    "printedName": "Swift.Bool",
+                    "usr": "s:Sb"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdkAAC7isDebugSbvg",
+                "mangledName": "$s6MixSdkAAC7isDebugSbvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Bool",
+                    "printedName": "Swift.Bool",
+                    "usr": "s:Sb"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdkAAC7isDebugSbvs",
+                "mangledName": "$s6MixSdkAAC7isDebugSbvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdkAAC7isDebugSbvM",
+                "mangledName": "$s6MixSdkAAC7isDebugSbvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "auth",
+            "printedName": "auth",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "MSAuth",
+                "printedName": "MixSdk.MSAuth",
+                "usr": "s:6MixSdk6MSAuthC"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdkAAC4authAA6MSAuthCvp",
+            "mangledName": "$s6MixSdkAAC4authAA6MSAuthCvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "Final",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "isLet": true,
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "MSAuth",
+                    "printedName": "MixSdk.MSAuth",
+                    "usr": "s:6MixSdk6MSAuthC"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdkAAC4authAA6MSAuthCvg",
+                "mangledName": "$s6MixSdkAAC4authAA6MSAuthCvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "declAttributes": [
+                  "Final"
+                ],
+                "accessorKind": "get"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "translate",
+            "printedName": "translate",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "MSTranslate",
+                "printedName": "MixSdk.MSTranslate",
+                "usr": "s:6MixSdk11MSTranslateC"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdkAAC9translateAA11MSTranslateCvp",
+            "mangledName": "$s6MixSdkAAC9translateAA11MSTranslateCvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "Final",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "isLet": true,
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "MSTranslate",
+                    "printedName": "MixSdk.MSTranslate",
+                    "usr": "s:6MixSdk11MSTranslateC"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdkAAC9translateAA11MSTranslateCvg",
+                "mangledName": "$s6MixSdkAAC9translateAA11MSTranslateCvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "declAttributes": [
+                  "Final"
+                ],
+                "accessorKind": "get"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "aigc",
+            "printedName": "aigc",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "MSAigc",
+                "printedName": "MixSdk.MSAigc",
+                "usr": "s:6MixSdk6MSAigcC"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdkAAC4aigcAA6MSAigcCvp",
+            "mangledName": "$s6MixSdkAAC4aigcAA6MSAigcCvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "Final",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "isLet": true,
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "MSAigc",
+                    "printedName": "MixSdk.MSAigc",
+                    "usr": "s:6MixSdk6MSAigcC"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdkAAC4aigcAA6MSAigcCvg",
+                "mangledName": "$s6MixSdkAAC4aigcAA6MSAigcCvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "declAttributes": [
+                  "Final"
+                ],
+                "accessorKind": "get"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "chat",
+            "printedName": "chat",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "MSChat",
+                "printedName": "MixSdk.MSChat",
+                "usr": "s:6MixSdk6MSChatC"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdkAAC4chatAA6MSChatCvp",
+            "mangledName": "$s6MixSdkAAC4chatAA6MSChatCvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "Final",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "isLet": true,
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "MSChat",
+                    "printedName": "MixSdk.MSChat",
+                    "usr": "s:6MixSdk6MSChatC"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdkAAC4chatAA6MSChatCvg",
+                "mangledName": "$s6MixSdkAAC4chatAA6MSChatCvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "declAttributes": [
+                  "Final"
+                ],
+                "accessorKind": "get"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "tts",
+            "printedName": "tts",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "MSTts",
+                "printedName": "MixSdk.MSTts",
+                "usr": "s:6MixSdk5MSTtsC"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdkAAC3ttsAA5MSTtsCvp",
+            "mangledName": "$s6MixSdkAAC3ttsAA5MSTtsCvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "Final",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "isLet": true,
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "MSTts",
+                    "printedName": "MixSdk.MSTts",
+                    "usr": "s:6MixSdk5MSTtsC"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdkAAC3ttsAA5MSTtsCvg",
+                "mangledName": "$s6MixSdkAAC3ttsAA5MSTtsCvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "declAttributes": [
+                  "Final"
+                ],
+                "accessorKind": "get"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "stt",
+            "printedName": "stt",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "MSStt",
+                "printedName": "MixSdk.MSStt",
+                "usr": "s:6MixSdk5MSSttC"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdkAAC3sttAA5MSSttCvp",
+            "mangledName": "$s6MixSdkAAC3sttAA5MSSttCvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "Final",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "isLet": true,
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "MSStt",
+                    "printedName": "MixSdk.MSStt",
+                    "usr": "s:6MixSdk5MSSttC"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdkAAC3sttAA5MSSttCvg",
+                "mangledName": "$s6MixSdkAAC3sttAA5MSSttCvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "declAttributes": [
+                  "Final"
+                ],
+                "accessorKind": "get"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "chatGpt",
+            "printedName": "chatGpt",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "MSChatGpt",
+                "printedName": "MixSdk.MSChatGpt",
+                "usr": "s:6MixSdk9MSChatGptC"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdkAAC7chatGptAA06MSChatD0Cvp",
+            "mangledName": "$s6MixSdkAAC7chatGptAA06MSChatD0Cvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "Final",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "isLet": true,
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "MSChatGpt",
+                    "printedName": "MixSdk.MSChatGpt",
+                    "usr": "s:6MixSdk9MSChatGptC"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdkAAC7chatGptAA06MSChatD0Cvg",
+                "mangledName": "$s6MixSdkAAC7chatGptAA06MSChatD0Cvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "declAttributes": [
+                  "Final"
+                ],
+                "accessorKind": "get"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "chatGptTrans",
+            "printedName": "chatGptTrans",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "MSChatGptTranscription",
+                "printedName": "MixSdk.MSChatGptTranscription",
+                "usr": "s:6MixSdk22MSChatGptTranscriptionC"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdkAAC12chatGptTransAA06MSChatD13TranscriptionCvp",
+            "mangledName": "$s6MixSdkAAC12chatGptTransAA06MSChatD13TranscriptionCvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "Final",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "isLet": true,
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "MSChatGptTranscription",
+                    "printedName": "MixSdk.MSChatGptTranscription",
+                    "usr": "s:6MixSdk22MSChatGptTranscriptionC"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdkAAC12chatGptTransAA06MSChatD13TranscriptionCvg",
+                "mangledName": "$s6MixSdkAAC12chatGptTransAA06MSChatD13TranscriptionCvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "declAttributes": [
+                  "Final"
+                ],
+                "accessorKind": "get"
+              }
+            ]
+          },
+          {
+            "kind": "Function",
+            "name": "setPlatform",
+            "printedName": "setPlatform(_:key:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "MSPlatform",
+                "printedName": "MixSdk.MSPlatform",
+                "usr": "s:6MixSdk10MSPlatformO"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Optional",
+                "printedName": "Swift.String?",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "hasDefaultArg": true,
+                "usr": "s:Sq"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdkAAC11setPlatform_3keyyAA10MSPlatformO_SSSgtF",
+            "mangledName": "$s6MixSdkAAC11setPlatform_3keyyAA10MSPlatformO_SSSgtF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "funcSelfKind": "NonMutating"
+          },
+          {
+            "kind": "Var",
+            "name": "aiPlatform",
+            "printedName": "aiPlatform",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "MSPlatform",
+                "printedName": "MixSdk.MSPlatform",
+                "usr": "s:6MixSdk10MSPlatformO"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdkAAC10aiPlatformAA10MSPlatformOvp",
+            "mangledName": "$s6MixSdkAAC10aiPlatformAA10MSPlatformOvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "MSPlatform",
+                    "printedName": "MixSdk.MSPlatform",
+                    "usr": "s:6MixSdk10MSPlatformO"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdkAAC10aiPlatformAA10MSPlatformOvg",
+                "mangledName": "$s6MixSdkAAC10aiPlatformAA10MSPlatformOvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "MSPlatform",
+                    "printedName": "MixSdk.MSPlatform",
+                    "usr": "s:6MixSdk10MSPlatformO"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdkAAC10aiPlatformAA10MSPlatformOvs",
+                "mangledName": "$s6MixSdkAAC10aiPlatformAA10MSPlatformOvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdkAAC10aiPlatformAA10MSPlatformOvM",
+                "mangledName": "$s6MixSdkAAC10aiPlatformAA10MSPlatformOvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "aiKey",
+            "printedName": "aiKey",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Optional",
+                "printedName": "Swift.String?",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "usr": "s:Sq"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdkAAC5aiKeySSSgvp",
+            "mangledName": "$s6MixSdkAAC5aiKeySSSgvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Optional",
+                    "printedName": "Swift.String?",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "String",
+                        "printedName": "Swift.String",
+                        "usr": "s:SS"
+                      }
+                    ],
+                    "usr": "s:Sq"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdkAAC5aiKeySSSgvg",
+                "mangledName": "$s6MixSdkAAC5aiKeySSSgvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Optional",
+                    "printedName": "Swift.String?",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "String",
+                        "printedName": "Swift.String",
+                        "usr": "s:SS"
+                      }
+                    ],
+                    "usr": "s:Sq"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdkAAC5aiKeySSSgvs",
+                "mangledName": "$s6MixSdkAAC5aiKeySSSgvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdkAAC5aiKeySSSgvM",
+                "mangledName": "$s6MixSdkAAC5aiKeySSSgvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Function",
+            "name": "cleanLog",
+            "printedName": "cleanLog()",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdkAAC8cleanLogyyF",
+            "mangledName": "$s6MixSdkAAC8cleanLogyyF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "funcSelfKind": "NonMutating"
+          }
+        ],
+        "declKind": "Class",
+        "usr": "c:@M@MixSdk@objc(cs)MixSdk",
+        "mangledName": "$s6MixSdkAAC",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "AccessControl",
+          "RawDocComment",
+          "ObjC"
+        ],
+        "superclassUsr": "c:objc(cs)NSObject",
+        "hasMissingDesignatedInitializers": true,
+        "inheritsConvenienceInitializers": true,
+        "superclassNames": [
+          "ObjectiveC.NSObject"
+        ],
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Equatable",
+            "printedName": "Equatable",
+            "usr": "s:SQ",
+            "mangledName": "$sSQ"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Hashable",
+            "printedName": "Hashable",
+            "usr": "s:SH",
+            "mangledName": "$sSH"
+          },
+          {
+            "kind": "Conformance",
+            "name": "CVarArg",
+            "printedName": "CVarArg",
+            "usr": "s:s7CVarArgP",
+            "mangledName": "$ss7CVarArgP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "_KeyValueCodingAndObservingPublishing",
+            "printedName": "_KeyValueCodingAndObservingPublishing",
+            "usr": "s:10Foundation37_KeyValueCodingAndObservingPublishingP",
+            "mangledName": "$s10Foundation37_KeyValueCodingAndObservingPublishingP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "_KeyValueCodingAndObserving",
+            "printedName": "_KeyValueCodingAndObserving",
+            "usr": "s:10Foundation27_KeyValueCodingAndObservingP",
+            "mangledName": "$s10Foundation27_KeyValueCodingAndObservingP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "CustomStringConvertible",
+            "printedName": "CustomStringConvertible",
+            "usr": "s:s23CustomStringConvertibleP",
+            "mangledName": "$ss23CustomStringConvertibleP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "CustomDebugStringConvertible",
+            "printedName": "CustomDebugStringConvertible",
+            "usr": "s:s28CustomDebugStringConvertibleP",
+            "mangledName": "$ss28CustomDebugStringConvertibleP"
+          }
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "MSTranslateLanguage",
+        "printedName": "MSTranslateLanguage",
+        "children": [
+          {
+            "kind": "Var",
+            "name": "cn",
+            "printedName": "cn",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk19MSTranslateLanguageC2cnSSvp",
+            "mangledName": "$s6MixSdk19MSTranslateLanguageC2cnSSvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk19MSTranslateLanguageC2cnSSvg",
+                "mangledName": "$s6MixSdk19MSTranslateLanguageC2cnSSvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk19MSTranslateLanguageC2cnSSvs",
+                "mangledName": "$s6MixSdk19MSTranslateLanguageC2cnSSvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk19MSTranslateLanguageC2cnSSvM",
+                "mangledName": "$s6MixSdk19MSTranslateLanguageC2cnSSvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "en",
+            "printedName": "en",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk19MSTranslateLanguageC2enSSvp",
+            "mangledName": "$s6MixSdk19MSTranslateLanguageC2enSSvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk19MSTranslateLanguageC2enSSvg",
+                "mangledName": "$s6MixSdk19MSTranslateLanguageC2enSSvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk19MSTranslateLanguageC2enSSvs",
+                "mangledName": "$s6MixSdk19MSTranslateLanguageC2enSSvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk19MSTranslateLanguageC2enSSvM",
+                "mangledName": "$s6MixSdk19MSTranslateLanguageC2enSSvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "code",
+            "printedName": "code",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk19MSTranslateLanguageC4codeSSvp",
+            "mangledName": "$s6MixSdk19MSTranslateLanguageC4codeSSvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk19MSTranslateLanguageC4codeSSvg",
+                "mangledName": "$s6MixSdk19MSTranslateLanguageC4codeSSvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk19MSTranslateLanguageC4codeSSvs",
+                "mangledName": "$s6MixSdk19MSTranslateLanguageC4codeSSvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk19MSTranslateLanguageC4codeSSvM",
+                "mangledName": "$s6MixSdk19MSTranslateLanguageC4codeSSvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Constructor",
+            "name": "init",
+            "printedName": "init(from:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "MSTranslateLanguage",
+                "printedName": "MixSdk.MSTranslateLanguage",
+                "usr": "s:6MixSdk19MSTranslateLanguageC"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Decoder",
+                "printedName": "any Swift.Decoder",
+                "usr": "s:s7DecoderP"
+              }
+            ],
+            "declKind": "Constructor",
+            "usr": "s:6MixSdk19MSTranslateLanguageC4fromACs7Decoder_p_tKcfc",
+            "mangledName": "$s6MixSdk19MSTranslateLanguageC4fromACs7Decoder_p_tKcfc",
+            "moduleName": "MixSdk",
+            "implicit": true,
+            "declAttributes": [
+              "Required"
+            ],
+            "throwing": true,
+            "init_kind": "Designated"
+          },
+          {
+            "kind": "Function",
+            "name": "encode",
+            "printedName": "encode(to:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Encoder",
+                "printedName": "any Swift.Encoder",
+                "usr": "s:s7EncoderP"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk19MSTranslateLanguageC6encode2toys7Encoder_p_tKF",
+            "mangledName": "$s6MixSdk19MSTranslateLanguageC6encode2toys7Encoder_p_tKF",
+            "moduleName": "MixSdk",
+            "implicit": true,
+            "throwing": true,
+            "funcSelfKind": "NonMutating"
+          }
+        ],
+        "declKind": "Class",
+        "usr": "s:6MixSdk19MSTranslateLanguageC",
+        "mangledName": "$s6MixSdk19MSTranslateLanguageC",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "AccessControl",
+          "RawDocComment"
+        ],
+        "hasMissingDesignatedInitializers": true,
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Decodable",
+            "printedName": "Decodable",
+            "usr": "s:Se",
+            "mangledName": "$sSe"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Encodable",
+            "printedName": "Encodable",
+            "usr": "s:SE",
+            "mangledName": "$sSE"
+          }
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Darwin",
+        "printedName": "Darwin",
+        "declKind": "Import",
+        "moduleName": "MixSdk"
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "StreamEncryptor",
+        "printedName": "StreamEncryptor",
+        "children": [
+          {
+            "kind": "TypeDecl",
+            "name": "Error",
+            "printedName": "Error",
+            "children": [
+              {
+                "kind": "Var",
+                "name": "unsupported",
+                "printedName": "unsupported",
+                "children": [
+                  {
+                    "kind": "TypeFunc",
+                    "name": "Function",
+                    "printedName": "(MixSdk.StreamEncryptor.Error.Type) -> MixSdk.StreamEncryptor.Error",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Error",
+                        "printedName": "MixSdk.StreamEncryptor.Error",
+                        "usr": "s:6MixSdk15StreamEncryptorC5ErrorO"
+                      },
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Metatype",
+                        "printedName": "MixSdk.StreamEncryptor.Error.Type",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "Error",
+                            "printedName": "MixSdk.StreamEncryptor.Error",
+                            "usr": "s:6MixSdk15StreamEncryptorC5ErrorO"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ],
+                "declKind": "EnumElement",
+                "usr": "s:6MixSdk15StreamEncryptorC5ErrorO11unsupportedyA2EmF",
+                "mangledName": "$s6MixSdk15StreamEncryptorC5ErrorO11unsupportedyA2EmF",
+                "moduleName": "MixSdk"
+              },
+              {
+                "kind": "Function",
+                "name": "==",
+                "printedName": "==(_:_:)",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Bool",
+                    "printedName": "Swift.Bool",
+                    "usr": "s:Sb"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Error",
+                    "printedName": "MixSdk.StreamEncryptor.Error",
+                    "usr": "s:6MixSdk15StreamEncryptorC5ErrorO"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Error",
+                    "printedName": "MixSdk.StreamEncryptor.Error",
+                    "usr": "s:6MixSdk15StreamEncryptorC5ErrorO"
+                  }
+                ],
+                "declKind": "Func",
+                "usr": "s:6MixSdk15StreamEncryptorC5ErrorO2eeoiySbAE_AEtFZ",
+                "mangledName": "$s6MixSdk15StreamEncryptorC5ErrorO2eeoiySbAE_AEtFZ",
+                "moduleName": "MixSdk",
+                "static": true,
+                "implicit": true,
+                "declAttributes": [
+                  "UsableFromInline"
+                ],
+                "funcSelfKind": "NonMutating"
+              },
+              {
+                "kind": "Var",
+                "name": "hashValue",
+                "printedName": "hashValue",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Var",
+                "usr": "s:6MixSdk15StreamEncryptorC5ErrorO9hashValueSivp",
+                "mangledName": "$s6MixSdk15StreamEncryptorC5ErrorO9hashValueSivp",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "declAttributes": [
+                  "UsableFromInline"
+                ],
+                "accessors": [
+                  {
+                    "kind": "Accessor",
+                    "name": "Get",
+                    "printedName": "Get()",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Int",
+                        "printedName": "Swift.Int",
+                        "usr": "s:Si"
+                      }
+                    ],
+                    "declKind": "Accessor",
+                    "usr": "s:6MixSdk15StreamEncryptorC5ErrorO9hashValueSivg",
+                    "mangledName": "$s6MixSdk15StreamEncryptorC5ErrorO9hashValueSivg",
+                    "moduleName": "MixSdk",
+                    "implicit": true,
+                    "declAttributes": [
+                      "UsableFromInline"
+                    ],
+                    "accessorKind": "get"
+                  }
+                ]
+              },
+              {
+                "kind": "Function",
+                "name": "hash",
+                "printedName": "hash(into:)",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Hasher",
+                    "printedName": "Swift.Hasher",
+                    "paramValueOwnership": "InOut",
+                    "usr": "s:s6HasherV"
+                  }
+                ],
+                "declKind": "Func",
+                "usr": "s:6MixSdk15StreamEncryptorC5ErrorO4hash4intoys6HasherVz_tF",
+                "mangledName": "$s6MixSdk15StreamEncryptorC5ErrorO4hash4intoys6HasherVz_tF",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "declAttributes": [
+                  "UsableFromInline"
+                ],
+                "funcSelfKind": "NonMutating"
+              }
+            ],
+            "declKind": "Enum",
+            "usr": "s:6MixSdk15StreamEncryptorC5ErrorO",
+            "mangledName": "$s6MixSdk15StreamEncryptorC5ErrorO",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "UsableFromInline"
+            ],
+            "conformances": [
+              {
+                "kind": "Conformance",
+                "name": "Copyable",
+                "printedName": "Copyable",
+                "usr": "s:s8CopyableP",
+                "mangledName": "$ss8CopyableP"
+              },
+              {
+                "kind": "Conformance",
+                "name": "Escapable",
+                "printedName": "Escapable",
+                "usr": "s:s9EscapableP",
+                "mangledName": "$ss9EscapableP"
+              },
+              {
+                "kind": "Conformance",
+                "name": "Equatable",
+                "printedName": "Equatable",
+                "usr": "s:SQ",
+                "mangledName": "$sSQ"
+              },
+              {
+                "kind": "Conformance",
+                "name": "Hashable",
+                "printedName": "Hashable",
+                "usr": "s:SH",
+                "mangledName": "$sSH"
+              },
+              {
+                "kind": "Conformance",
+                "name": "Error",
+                "printedName": "Error",
+                "usr": "s:s5ErrorP",
+                "mangledName": "$ss5ErrorP"
+              },
+              {
+                "kind": "Conformance",
+                "name": "Sendable",
+                "printedName": "Sendable",
+                "usr": "s:s8SendableP",
+                "mangledName": "$ss8SendableP"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "blockSize",
+            "printedName": "blockSize",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk15StreamEncryptorC9blockSizeSivp",
+            "mangledName": "$s6MixSdk15StreamEncryptorC9blockSizeSivp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "Final",
+              "HasStorage",
+              "AccessControl",
+              "UsableFromInline"
+            ],
+            "isLet": true,
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk15StreamEncryptorC9blockSizeSivg",
+                "mangledName": "$s6MixSdk15StreamEncryptorC9blockSizeSivg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "declAttributes": [
+                  "Final"
+                ],
+                "accessorKind": "get"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "worker",
+            "printedName": "worker",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "CipherModeWorker",
+                "printedName": "any MixSdk.CipherModeWorker",
+                "usr": "s:6MixSdk16CipherModeWorkerP"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk15StreamEncryptorC6workerAA16CipherModeWorker_pvp",
+            "mangledName": "$s6MixSdk15StreamEncryptorC6workerAA16CipherModeWorker_pvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "Final",
+              "HasStorage",
+              "AccessControl",
+              "UsableFromInline"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "CipherModeWorker",
+                    "printedName": "any MixSdk.CipherModeWorker",
+                    "usr": "s:6MixSdk16CipherModeWorkerP"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk15StreamEncryptorC6workerAA16CipherModeWorker_pvg",
+                "mangledName": "$s6MixSdk15StreamEncryptorC6workerAA16CipherModeWorker_pvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "declAttributes": [
+                  "Final"
+                ],
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "CipherModeWorker",
+                    "printedName": "any MixSdk.CipherModeWorker",
+                    "usr": "s:6MixSdk16CipherModeWorkerP"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk15StreamEncryptorC6workerAA16CipherModeWorker_pvs",
+                "mangledName": "$s6MixSdk15StreamEncryptorC6workerAA16CipherModeWorker_pvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "declAttributes": [
+                  "Final"
+                ],
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk15StreamEncryptorC6workerAA16CipherModeWorker_pvM",
+                "mangledName": "$s6MixSdk15StreamEncryptorC6workerAA16CipherModeWorker_pvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "declAttributes": [
+                  "Final"
+                ],
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "padding",
+            "printedName": "padding",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Padding",
+                "printedName": "MixSdk.Padding",
+                "usr": "s:6MixSdk7PaddingO"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk15StreamEncryptorC7paddingAA7PaddingOvp",
+            "mangledName": "$s6MixSdk15StreamEncryptorC7paddingAA7PaddingOvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "Final",
+              "HasStorage",
+              "AccessControl",
+              "UsableFromInline"
+            ],
+            "isLet": true,
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Padding",
+                    "printedName": "MixSdk.Padding",
+                    "usr": "s:6MixSdk7PaddingO"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk15StreamEncryptorC7paddingAA7PaddingOvg",
+                "mangledName": "$s6MixSdk15StreamEncryptorC7paddingAA7PaddingOvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "declAttributes": [
+                  "Final"
+                ],
+                "accessorKind": "get"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "lastBlockRemainder",
+            "printedName": "lastBlockRemainder",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk15StreamEncryptorC18lastBlockRemainderSivp",
+            "mangledName": "$s6MixSdk15StreamEncryptorC18lastBlockRemainderSivp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "Final",
+              "HasStorage",
+              "AccessControl",
+              "UsableFromInline"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk15StreamEncryptorC18lastBlockRemainderSivg",
+                "mangledName": "$s6MixSdk15StreamEncryptorC18lastBlockRemainderSivg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "declAttributes": [
+                  "Final"
+                ],
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk15StreamEncryptorC18lastBlockRemainderSivs",
+                "mangledName": "$s6MixSdk15StreamEncryptorC18lastBlockRemainderSivs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "declAttributes": [
+                  "Final"
+                ],
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk15StreamEncryptorC18lastBlockRemainderSivM",
+                "mangledName": "$s6MixSdk15StreamEncryptorC18lastBlockRemainderSivM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "declAttributes": [
+                  "Final"
+                ],
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Constructor",
+            "name": "init",
+            "printedName": "init(blockSize:padding:_:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "StreamEncryptor",
+                "printedName": "MixSdk.StreamEncryptor",
+                "usr": "s:6MixSdk15StreamEncryptorC"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Padding",
+                "printedName": "MixSdk.Padding",
+                "usr": "s:6MixSdk7PaddingO"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "CipherModeWorker",
+                "printedName": "any MixSdk.CipherModeWorker",
+                "usr": "s:6MixSdk16CipherModeWorkerP"
+              }
+            ],
+            "declKind": "Constructor",
+            "usr": "s:6MixSdk15StreamEncryptorC9blockSize7padding_ACSi_AA7PaddingOAA16CipherModeWorker_ptKcfc",
+            "mangledName": "$s6MixSdk15StreamEncryptorC9blockSize7padding_ACSi_AA7PaddingOAA16CipherModeWorker_ptKcfc",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "UsableFromInline"
+            ],
+            "throwing": true,
+            "init_kind": "Designated"
+          },
+          {
+            "kind": "Function",
+            "name": "seek",
+            "printedName": "seek(to:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk15StreamEncryptorC4seek2toySi_tKF",
+            "mangledName": "$s6MixSdk15StreamEncryptorC4seek2toySi_tKF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "Final",
+              "UsableFromInline"
+            ],
+            "throwing": true,
+            "funcSelfKind": "NonMutating"
+          }
+        ],
+        "declKind": "Class",
+        "usr": "s:6MixSdk15StreamEncryptorC",
+        "mangledName": "$s6MixSdk15StreamEncryptorC",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "Final",
+          "UsableFromInline",
+          "RawDocComment"
+        ],
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "MSChatModel",
+        "printedName": "MSChatModel",
+        "children": [
+          {
+            "kind": "Var",
+            "name": "type",
+            "printedName": "type",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk11MSChatModelC4typeSSvp",
+            "mangledName": "$s6MixSdk11MSChatModelC4typeSSvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk11MSChatModelC4typeSSvg",
+                "mangledName": "$s6MixSdk11MSChatModelC4typeSSvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk11MSChatModelC4typeSSvs",
+                "mangledName": "$s6MixSdk11MSChatModelC4typeSSvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk11MSChatModelC4typeSSvM",
+                "mangledName": "$s6MixSdk11MSChatModelC4typeSSvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "content",
+            "printedName": "content",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Optional",
+                "printedName": "Swift.String?",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "usr": "s:Sq"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk11MSChatModelC7contentSSSgvp",
+            "mangledName": "$s6MixSdk11MSChatModelC7contentSSSgvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Optional",
+                    "printedName": "Swift.String?",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "String",
+                        "printedName": "Swift.String",
+                        "usr": "s:SS"
+                      }
+                    ],
+                    "usr": "s:Sq"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk11MSChatModelC7contentSSSgvg",
+                "mangledName": "$s6MixSdk11MSChatModelC7contentSSSgvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Optional",
+                    "printedName": "Swift.String?",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "String",
+                        "printedName": "Swift.String",
+                        "usr": "s:SS"
+                      }
+                    ],
+                    "usr": "s:Sq"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk11MSChatModelC7contentSSSgvs",
+                "mangledName": "$s6MixSdk11MSChatModelC7contentSSSgvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk11MSChatModelC7contentSSSgvM",
+                "mangledName": "$s6MixSdk11MSChatModelC7contentSSSgvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Constructor",
+            "name": "init",
+            "printedName": "init(from:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "MSChatModel",
+                "printedName": "MixSdk.MSChatModel",
+                "usr": "s:6MixSdk11MSChatModelC"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Decoder",
+                "printedName": "any Swift.Decoder",
+                "usr": "s:s7DecoderP"
+              }
+            ],
+            "declKind": "Constructor",
+            "usr": "s:6MixSdk11MSChatModelC4fromACs7Decoder_p_tKcfc",
+            "mangledName": "$s6MixSdk11MSChatModelC4fromACs7Decoder_p_tKcfc",
+            "moduleName": "MixSdk",
+            "implicit": true,
+            "declAttributes": [
+              "Required"
+            ],
+            "throwing": true,
+            "init_kind": "Designated"
+          },
+          {
+            "kind": "Function",
+            "name": "encode",
+            "printedName": "encode(to:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Encoder",
+                "printedName": "any Swift.Encoder",
+                "usr": "s:s7EncoderP"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk11MSChatModelC6encode2toys7Encoder_p_tKF",
+            "mangledName": "$s6MixSdk11MSChatModelC6encode2toys7Encoder_p_tKF",
+            "moduleName": "MixSdk",
+            "implicit": true,
+            "throwing": true,
+            "funcSelfKind": "NonMutating"
+          }
+        ],
+        "declKind": "Class",
+        "usr": "s:6MixSdk11MSChatModelC",
+        "mangledName": "$s6MixSdk11MSChatModelC",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "AccessControl",
+          "RawDocComment"
+        ],
+        "hasMissingDesignatedInitializers": true,
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Decodable",
+            "printedName": "Decodable",
+            "usr": "s:Se",
+            "mangledName": "$sSe"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Encodable",
+            "printedName": "Encodable",
+            "usr": "s:SE",
+            "mangledName": "$sSE"
+          }
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "MSTts",
+        "printedName": "MSTts",
+        "children": [
+          {
+            "kind": "Var",
+            "name": "eventCallBack",
+            "printedName": "eventCallBack",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Optional",
+                "printedName": "((MixSdk.MSTtsEvent) -> ())?",
+                "children": [
+                  {
+                    "kind": "TypeFunc",
+                    "name": "Function",
+                    "printedName": "(MixSdk.MSTtsEvent) -> ()",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Void",
+                        "printedName": "()"
+                      },
+                      {
+                        "kind": "TypeNominal",
+                        "name": "MSTtsEvent",
+                        "printedName": "MixSdk.MSTtsEvent",
+                        "usr": "s:6MixSdk10MSTtsEventC"
+                      }
+                    ]
+                  }
+                ],
+                "usr": "s:Sq"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk5MSTtsC13eventCallBackyAA0C5EventCcSgvp",
+            "mangledName": "$s6MixSdk5MSTtsC13eventCallBackyAA0C5EventCcSgvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Optional",
+                    "printedName": "((MixSdk.MSTtsEvent) -> ())?",
+                    "children": [
+                      {
+                        "kind": "TypeFunc",
+                        "name": "Function",
+                        "printedName": "(MixSdk.MSTtsEvent) -> ()",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "Void",
+                            "printedName": "()"
+                          },
+                          {
+                            "kind": "TypeNominal",
+                            "name": "MSTtsEvent",
+                            "printedName": "MixSdk.MSTtsEvent",
+                            "usr": "s:6MixSdk10MSTtsEventC"
+                          }
+                        ]
+                      }
+                    ],
+                    "usr": "s:Sq"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk5MSTtsC13eventCallBackyAA0C5EventCcSgvg",
+                "mangledName": "$s6MixSdk5MSTtsC13eventCallBackyAA0C5EventCcSgvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Optional",
+                    "printedName": "((MixSdk.MSTtsEvent) -> ())?",
+                    "children": [
+                      {
+                        "kind": "TypeFunc",
+                        "name": "Function",
+                        "printedName": "(MixSdk.MSTtsEvent) -> ()",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "Void",
+                            "printedName": "()"
+                          },
+                          {
+                            "kind": "TypeNominal",
+                            "name": "MSTtsEvent",
+                            "printedName": "MixSdk.MSTtsEvent",
+                            "usr": "s:6MixSdk10MSTtsEventC"
+                          }
+                        ]
+                      }
+                    ],
+                    "usr": "s:Sq"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk5MSTtsC13eventCallBackyAA0C5EventCcSgvs",
+                "mangledName": "$s6MixSdk5MSTtsC13eventCallBackyAA0C5EventCcSgvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk5MSTtsC13eventCallBackyAA0C5EventCcSgvM",
+                "mangledName": "$s6MixSdk5MSTtsC13eventCallBackyAA0C5EventCcSgvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "voiceCallBack",
+            "printedName": "voiceCallBack",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Optional",
+                "printedName": "((Foundation.Data) -> ())?",
+                "children": [
+                  {
+                    "kind": "TypeFunc",
+                    "name": "Function",
+                    "printedName": "(Foundation.Data) -> ()",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Void",
+                        "printedName": "()"
+                      },
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Data",
+                        "printedName": "Foundation.Data",
+                        "usr": "s:10Foundation4DataV"
+                      }
+                    ]
+                  }
+                ],
+                "usr": "s:Sq"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk5MSTtsC13voiceCallBacky10Foundation4DataVcSgvp",
+            "mangledName": "$s6MixSdk5MSTtsC13voiceCallBacky10Foundation4DataVcSgvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Optional",
+                    "printedName": "((Foundation.Data) -> ())?",
+                    "children": [
+                      {
+                        "kind": "TypeFunc",
+                        "name": "Function",
+                        "printedName": "(Foundation.Data) -> ()",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "Void",
+                            "printedName": "()"
+                          },
+                          {
+                            "kind": "TypeNominal",
+                            "name": "Data",
+                            "printedName": "Foundation.Data",
+                            "usr": "s:10Foundation4DataV"
+                          }
+                        ]
+                      }
+                    ],
+                    "usr": "s:Sq"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk5MSTtsC13voiceCallBacky10Foundation4DataVcSgvg",
+                "mangledName": "$s6MixSdk5MSTtsC13voiceCallBacky10Foundation4DataVcSgvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Optional",
+                    "printedName": "((Foundation.Data) -> ())?",
+                    "children": [
+                      {
+                        "kind": "TypeFunc",
+                        "name": "Function",
+                        "printedName": "(Foundation.Data) -> ()",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "Void",
+                            "printedName": "()"
+                          },
+                          {
+                            "kind": "TypeNominal",
+                            "name": "Data",
+                            "printedName": "Foundation.Data",
+                            "usr": "s:10Foundation4DataV"
+                          }
+                        ]
+                      }
+                    ],
+                    "usr": "s:Sq"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk5MSTtsC13voiceCallBacky10Foundation4DataVcSgvs",
+                "mangledName": "$s6MixSdk5MSTtsC13voiceCallBacky10Foundation4DataVcSgvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk5MSTtsC13voiceCallBacky10Foundation4DataVcSgvM",
+                "mangledName": "$s6MixSdk5MSTtsC13voiceCallBacky10Foundation4DataVcSgvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "connectStateCallBack",
+            "printedName": "connectStateCallBack",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Optional",
+                "printedName": "((MixSdk.MSConnectState) -> ())?",
+                "children": [
+                  {
+                    "kind": "TypeFunc",
+                    "name": "Function",
+                    "printedName": "(MixSdk.MSConnectState) -> ()",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Void",
+                        "printedName": "()"
+                      },
+                      {
+                        "kind": "TypeNominal",
+                        "name": "MSConnectState",
+                        "printedName": "MixSdk.MSConnectState",
+                        "usr": "s:6MixSdk14MSConnectStateO"
+                      }
+                    ]
+                  }
+                ],
+                "usr": "s:Sq"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk5MSTtsC20connectStateCallBackyAA09MSConnectE0OcSgvp",
+            "mangledName": "$s6MixSdk5MSTtsC20connectStateCallBackyAA09MSConnectE0OcSgvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Optional",
+                    "printedName": "((MixSdk.MSConnectState) -> ())?",
+                    "children": [
+                      {
+                        "kind": "TypeFunc",
+                        "name": "Function",
+                        "printedName": "(MixSdk.MSConnectState) -> ()",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "Void",
+                            "printedName": "()"
+                          },
+                          {
+                            "kind": "TypeNominal",
+                            "name": "MSConnectState",
+                            "printedName": "MixSdk.MSConnectState",
+                            "usr": "s:6MixSdk14MSConnectStateO"
+                          }
+                        ]
+                      }
+                    ],
+                    "usr": "s:Sq"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk5MSTtsC20connectStateCallBackyAA09MSConnectE0OcSgvg",
+                "mangledName": "$s6MixSdk5MSTtsC20connectStateCallBackyAA09MSConnectE0OcSgvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Optional",
+                    "printedName": "((MixSdk.MSConnectState) -> ())?",
+                    "children": [
+                      {
+                        "kind": "TypeFunc",
+                        "name": "Function",
+                        "printedName": "(MixSdk.MSConnectState) -> ()",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "Void",
+                            "printedName": "()"
+                          },
+                          {
+                            "kind": "TypeNominal",
+                            "name": "MSConnectState",
+                            "printedName": "MixSdk.MSConnectState",
+                            "usr": "s:6MixSdk14MSConnectStateO"
+                          }
+                        ]
+                      }
+                    ],
+                    "usr": "s:Sq"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk5MSTtsC20connectStateCallBackyAA09MSConnectE0OcSgvs",
+                "mangledName": "$s6MixSdk5MSTtsC20connectStateCallBackyAA09MSConnectE0OcSgvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk5MSTtsC20connectStateCallBackyAA09MSConnectE0OcSgvM",
+                "mangledName": "$s6MixSdk5MSTtsC20connectStateCallBackyAA09MSConnectE0OcSgvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "connectState",
+            "printedName": "connectState",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "MSConnectState",
+                "printedName": "MixSdk.MSConnectState",
+                "usr": "s:6MixSdk14MSConnectStateO"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk5MSTtsC12connectStateAA09MSConnectE0Ovp",
+            "mangledName": "$s6MixSdk5MSTtsC12connectStateAA09MSConnectE0Ovp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "MSConnectState",
+                    "printedName": "MixSdk.MSConnectState",
+                    "usr": "s:6MixSdk14MSConnectStateO"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk5MSTtsC12connectStateAA09MSConnectE0Ovg",
+                "mangledName": "$s6MixSdk5MSTtsC12connectStateAA09MSConnectE0Ovg",
+                "moduleName": "MixSdk",
+                "accessorKind": "get"
+              }
+            ]
+          },
+          {
+            "kind": "Function",
+            "name": "startSynthesis",
+            "printedName": "startSynthesis()",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk5MSTtsC14startSynthesisyyF",
+            "mangledName": "$s6MixSdk5MSTtsC14startSynthesisyyF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "RawDocComment"
+            ],
+            "isFromExtension": true,
+            "funcSelfKind": "NonMutating"
+          },
+          {
+            "kind": "Function",
+            "name": "stopSynthesis",
+            "printedName": "stopSynthesis()",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk5MSTtsC13stopSynthesisyyF",
+            "mangledName": "$s6MixSdk5MSTtsC13stopSynthesisyyF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "RawDocComment"
+            ],
+            "isFromExtension": true,
+            "funcSelfKind": "NonMutating"
+          },
+          {
+            "kind": "Function",
+            "name": "runSynthesis",
+            "printedName": "runSynthesis(text:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk5MSTtsC12runSynthesis4textySS_tF",
+            "mangledName": "$s6MixSdk5MSTtsC12runSynthesis4textySS_tF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "RawDocComment"
+            ],
+            "isFromExtension": true,
+            "funcSelfKind": "NonMutating"
+          },
+          {
+            "kind": "Function",
+            "name": "sendLongTextStream",
+            "printedName": "sendLongTextStream(text:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk5MSTtsC18sendLongTextStream4textySS_tF",
+            "mangledName": "$s6MixSdk5MSTtsC18sendLongTextStream4textySS_tF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "RawDocComment"
+            ],
+            "isFromExtension": true,
+            "funcSelfKind": "NonMutating"
+          }
+        ],
+        "declKind": "Class",
+        "usr": "s:6MixSdk5MSTtsC",
+        "mangledName": "$s6MixSdk5MSTtsC",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "AccessControl",
+          "RawDocComment"
+        ],
+        "hasMissingDesignatedInitializers": true,
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "UIKit",
+        "printedName": "UIKit",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "MSAigc",
+        "printedName": "MSAigc",
+        "children": [
+          {
+            "kind": "Function",
+            "name": "getStyle",
+            "printedName": "getStyle(type:completeHandler:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              },
+              {
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "([MixSdk.MSAigcStyle]?, MixSdk.MSError?) -> ()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Tuple",
+                    "printedName": "([MixSdk.MSAigcStyle]?, MixSdk.MSError?)",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Optional",
+                        "printedName": "[MixSdk.MSAigcStyle]?",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "Array",
+                            "printedName": "[MixSdk.MSAigcStyle]",
+                            "children": [
+                              {
+                                "kind": "TypeNominal",
+                                "name": "MSAigcStyle",
+                                "printedName": "MixSdk.MSAigcStyle",
+                                "usr": "s:6MixSdk11MSAigcStyleC"
+                              }
+                            ],
+                            "usr": "s:Sa"
+                          }
+                        ],
+                        "usr": "s:Sq"
+                      },
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Optional",
+                        "printedName": "MixSdk.MSError?",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "MSError",
+                            "printedName": "MixSdk.MSError",
+                            "usr": "s:6MixSdk7MSErrorO"
+                          }
+                        ],
+                        "usr": "s:Sq"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk6MSAigcC8getStyle4type15completeHandlerySi_ySayAA0cE0CGSg_AA7MSErrorOSgtctF",
+            "mangledName": "$s6MixSdk6MSAigcC8getStyle4type15completeHandlerySi_ySayAA0cE0CGSg_AA7MSErrorOSgtctF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "funcSelfKind": "NonMutating"
+          },
+          {
+            "kind": "Function",
+            "name": "getResult",
+            "printedName": "getResult(task:completeHandler:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "MSAigcSearchTask",
+                "printedName": "MixSdk.MSAigcSearchTask",
+                "usr": "s:6MixSdk16MSAigcSearchTaskC"
+              },
+              {
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "([Swift.String]?, MixSdk.MSError?) -> ()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Tuple",
+                    "printedName": "([Swift.String]?, MixSdk.MSError?)",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Optional",
+                        "printedName": "[Swift.String]?",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "Array",
+                            "printedName": "[Swift.String]",
+                            "children": [
+                              {
+                                "kind": "TypeNominal",
+                                "name": "String",
+                                "printedName": "Swift.String",
+                                "usr": "s:SS"
+                              }
+                            ],
+                            "usr": "s:Sa"
+                          }
+                        ],
+                        "usr": "s:Sq"
+                      },
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Optional",
+                        "printedName": "MixSdk.MSError?",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "MSError",
+                            "printedName": "MixSdk.MSError",
+                            "usr": "s:6MixSdk7MSErrorO"
+                          }
+                        ],
+                        "usr": "s:Sq"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk6MSAigcC9getResult4task15completeHandleryAA0C10SearchTaskC_ySaySSGSg_AA7MSErrorOSgtctF",
+            "mangledName": "$s6MixSdk6MSAigcC9getResult4task15completeHandleryAA0C10SearchTaskC_ySaySSGSg_AA7MSErrorOSgtctF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "funcSelfKind": "NonMutating"
+          },
+          {
+            "kind": "Function",
+            "name": "createTask",
+            "printedName": "createTask(_:completeHandler:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "MSAigcTask",
+                "printedName": "MixSdk.MSAigcTask",
+                "usr": "s:6MixSdk10MSAigcTaskC"
+              },
+              {
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(Swift.String?, MixSdk.MSError?) -> ()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Tuple",
+                    "printedName": "(Swift.String?, MixSdk.MSError?)",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Optional",
+                        "printedName": "Swift.String?",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "String",
+                            "printedName": "Swift.String",
+                            "usr": "s:SS"
+                          }
+                        ],
+                        "usr": "s:Sq"
+                      },
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Optional",
+                        "printedName": "MixSdk.MSError?",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "MSError",
+                            "printedName": "MixSdk.MSError",
+                            "usr": "s:6MixSdk7MSErrorO"
+                          }
+                        ],
+                        "usr": "s:Sq"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk6MSAigcC10createTask_15completeHandleryAA0cE0C_ySSSg_AA7MSErrorOSgtctF",
+            "mangledName": "$s6MixSdk6MSAigcC10createTask_15completeHandleryAA0cE0C_ySSSg_AA7MSErrorOSgtctF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "funcSelfKind": "NonMutating"
+          }
+        ],
+        "declKind": "Class",
+        "usr": "s:6MixSdk6MSAigcC",
+        "mangledName": "$s6MixSdk6MSAigcC",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "AccessControl",
+          "RawDocComment"
+        ],
+        "hasMissingDesignatedInitializers": true,
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
+        ]
+      },
+      {
+        "kind": "Function",
+        "name": "strideCount",
+        "printedName": "strideCount(from:to:by:)",
+        "children": [
+          {
+            "kind": "TypeNominal",
+            "name": "Int",
+            "printedName": "Swift.Int",
+            "usr": "s:Si"
+          },
+          {
+            "kind": "TypeNominal",
+            "name": "Int",
+            "printedName": "Swift.Int",
+            "usr": "s:Si"
+          },
+          {
+            "kind": "TypeNominal",
+            "name": "Int",
+            "printedName": "Swift.Int",
+            "usr": "s:Si"
+          },
+          {
+            "kind": "TypeNominal",
+            "name": "Int",
+            "printedName": "Swift.Int",
+            "usr": "s:Si"
+          }
+        ],
+        "declKind": "Func",
+        "usr": "s:6MixSdk11strideCount4from2to2byS2i_S2itF",
+        "mangledName": "$s6MixSdk11strideCount4from2to2byS2i_S2itF",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "UsableFromInline"
+        ],
+        "funcSelfKind": "NonMutating"
+      },
+      {
+        "kind": "Import",
+        "name": "Darwin",
+        "printedName": "Darwin",
+        "declKind": "Import",
+        "moduleName": "MixSdk"
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "MixTools",
+        "printedName": "MixTools",
+        "declKind": "Import",
+        "moduleName": "MixSdk"
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "MSAudioConvert",
+        "printedName": "MSAudioConvert",
+        "children": [
+          {
+            "kind": "Function",
+            "name": "sbcTopcm",
+            "printedName": "sbcTopcm(_:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Data",
+                "printedName": "Foundation.Data",
+                "usr": "s:10Foundation4DataV"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Data",
+                "printedName": "Foundation.Data",
+                "usr": "s:10Foundation4DataV"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk14MSAudioConvertC8sbcTopcmy10Foundation4DataVAGFZ",
+            "mangledName": "$s6MixSdk14MSAudioConvertC8sbcTopcmy10Foundation4DataVAGFZ",
+            "moduleName": "MixSdk",
+            "static": true,
+            "declAttributes": [
+              "Final",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "funcSelfKind": "NonMutating"
+          },
+          {
+            "kind": "Function",
+            "name": "sbcTopcm",
+            "printedName": "sbcTopcm(_:_:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Data",
+                "printedName": "Foundation.Data",
+                "usr": "s:10Foundation4DataV"
+              },
+              {
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(Foundation.Data) -> ()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Data",
+                    "printedName": "Foundation.Data",
+                    "usr": "s:10Foundation4DataV"
+                  }
+                ]
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk14MSAudioConvertC8sbcTopcmyy10Foundation4DataV_yAGctFZ",
+            "mangledName": "$s6MixSdk14MSAudioConvertC8sbcTopcmyy10Foundation4DataV_yAGctFZ",
+            "moduleName": "MixSdk",
+            "static": true,
+            "declAttributes": [
+              "Final",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "funcSelfKind": "NonMutating"
+          },
+          {
+            "kind": "Function",
+            "name": "pcmToMp3",
+            "printedName": "pcmToMp3(_:_:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Bool",
+                "printedName": "Swift.Bool",
+                "usr": "s:Sb"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk14MSAudioConvertC8pcmToMp3ySbSS_SStFZ",
+            "mangledName": "$s6MixSdk14MSAudioConvertC8pcmToMp3ySbSS_SStFZ",
+            "moduleName": "MixSdk",
+            "static": true,
+            "declAttributes": [
+              "Final",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "funcSelfKind": "NonMutating"
+          },
+          {
+            "kind": "Function",
+            "name": "pcmToMp3",
+            "printedName": "pcmToMp3(pcmPath:pcmSampleRate:mp3Path:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Bool",
+                "printedName": "Swift.Bool",
+                "usr": "s:Sb"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "hasDefaultArg": true,
+                "usr": "s:Si"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk14MSAudioConvertC8pcmToMp30E4Path0E10SampleRate03mp3H0SbSS_SiSStFZ",
+            "mangledName": "$s6MixSdk14MSAudioConvertC8pcmToMp30E4Path0E10SampleRate03mp3H0SbSS_SiSStFZ",
+            "moduleName": "MixSdk",
+            "static": true,
+            "declAttributes": [
+              "Final",
+              "AccessControl"
+            ],
+            "funcSelfKind": "NonMutating"
+          },
+          {
+            "kind": "Function",
+            "name": "sbcToPcm",
+            "printedName": "sbcToPcm(sbcPath:pcmPath:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Bool",
+                "printedName": "Swift.Bool",
+                "usr": "s:Sb"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk14MSAudioConvertC8sbcToPcm0E4Path03pcmH0SbSS_SStFZ",
+            "mangledName": "$s6MixSdk14MSAudioConvertC8sbcToPcm0E4Path03pcmH0SbSS_SStFZ",
+            "moduleName": "MixSdk",
+            "static": true,
+            "declAttributes": [
+              "Final",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "funcSelfKind": "NonMutating"
+          },
+          {
+            "kind": "Function",
+            "name": "sbcToMp3",
+            "printedName": "sbcToMp3(sbcPath:mp3Path:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Bool",
+                "printedName": "Swift.Bool",
+                "usr": "s:Sb"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk14MSAudioConvertC8sbcToMp30E4Path03mp3H0SbSS_SStFZ",
+            "mangledName": "$s6MixSdk14MSAudioConvertC8sbcToMp30E4Path03mp3H0SbSS_SStFZ",
+            "moduleName": "MixSdk",
+            "static": true,
+            "declAttributes": [
+              "Final",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "funcSelfKind": "NonMutating"
+          }
+        ],
+        "declKind": "Class",
+        "usr": "s:6MixSdk14MSAudioConvertC",
+        "mangledName": "$s6MixSdk14MSAudioConvertC",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "AccessControl",
+          "RawDocComment"
+        ],
+        "hasMissingDesignatedInitializers": true,
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Darwin",
+        "printedName": "Darwin",
+        "declKind": "Import",
+        "moduleName": "MixSdk"
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "MSTranslate",
+        "printedName": "MSTranslate",
+        "children": [
+          {
+            "kind": "Function",
+            "name": "translate",
+            "printedName": "translate(lang:text:completeHandler:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "MSTranslateLanguage",
+                "printedName": "MixSdk.MSTranslateLanguage",
+                "usr": "s:6MixSdk19MSTranslateLanguageC"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              },
+              {
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(Swift.String?, MixSdk.MSError?) -> ()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Tuple",
+                    "printedName": "(Swift.String?, MixSdk.MSError?)",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Optional",
+                        "printedName": "Swift.String?",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "String",
+                            "printedName": "Swift.String",
+                            "usr": "s:SS"
+                          }
+                        ],
+                        "usr": "s:Sq"
+                      },
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Optional",
+                        "printedName": "MixSdk.MSError?",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "MSError",
+                            "printedName": "MixSdk.MSError",
+                            "usr": "s:6MixSdk7MSErrorO"
+                          }
+                        ],
+                        "usr": "s:Sq"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk11MSTranslateC9translate4lang4text15completeHandleryAA0C8LanguageC_SSySSSg_AA7MSErrorOSgtctF",
+            "mangledName": "$s6MixSdk11MSTranslateC9translate4lang4text15completeHandleryAA0C8LanguageC_SSySSSg_AA7MSErrorOSgtctF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "funcSelfKind": "NonMutating"
+          },
+          {
+            "kind": "Function",
+            "name": "getSupportLanguages",
+            "printedName": "getSupportLanguages(completeHandler:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "([MixSdk.MSTranslateLanguage]?, MixSdk.MSError?) -> ()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Tuple",
+                    "printedName": "([MixSdk.MSTranslateLanguage]?, MixSdk.MSError?)",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Optional",
+                        "printedName": "[MixSdk.MSTranslateLanguage]?",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "Array",
+                            "printedName": "[MixSdk.MSTranslateLanguage]",
+                            "children": [
+                              {
+                                "kind": "TypeNominal",
+                                "name": "MSTranslateLanguage",
+                                "printedName": "MixSdk.MSTranslateLanguage",
+                                "usr": "s:6MixSdk19MSTranslateLanguageC"
+                              }
+                            ],
+                            "usr": "s:Sa"
+                          }
+                        ],
+                        "usr": "s:Sq"
+                      },
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Optional",
+                        "printedName": "MixSdk.MSError?",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "MSError",
+                            "printedName": "MixSdk.MSError",
+                            "usr": "s:6MixSdk7MSErrorO"
+                          }
+                        ],
+                        "usr": "s:Sq"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk11MSTranslateC19getSupportLanguages15completeHandleryySayAA0C8LanguageCGSg_AA7MSErrorOSgtc_tF",
+            "mangledName": "$s6MixSdk11MSTranslateC19getSupportLanguages15completeHandleryySayAA0C8LanguageCGSg_AA7MSErrorOSgtc_tF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "funcSelfKind": "NonMutating"
+          }
+        ],
+        "declKind": "Class",
+        "usr": "s:6MixSdk11MSTranslateC",
+        "mangledName": "$s6MixSdk11MSTranslateC",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "AccessControl",
+          "RawDocComment"
+        ],
+        "hasMissingDesignatedInitializers": true,
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "MSSttEvent",
+        "printedName": "MSSttEvent",
+        "children": [
+          {
+            "kind": "Var",
+            "name": "event",
+            "printedName": "event",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk10MSSttEventC5eventSSvp",
+            "mangledName": "$s6MixSdk10MSSttEventC5eventSSvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSSttEventC5eventSSvg",
+                "mangledName": "$s6MixSdk10MSSttEventC5eventSSvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSSttEventC5eventSSvs",
+                "mangledName": "$s6MixSdk10MSSttEventC5eventSSvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSSttEventC5eventSSvM",
+                "mangledName": "$s6MixSdk10MSSttEventC5eventSSvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "msg",
+            "printedName": "msg",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk10MSSttEventC3msgSSvp",
+            "mangledName": "$s6MixSdk10MSSttEventC3msgSSvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSSttEventC3msgSSvg",
+                "mangledName": "$s6MixSdk10MSSttEventC3msgSSvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSSttEventC3msgSSvs",
+                "mangledName": "$s6MixSdk10MSSttEventC3msgSSvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSSttEventC3msgSSvM",
+                "mangledName": "$s6MixSdk10MSSttEventC3msgSSvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "status",
+            "printedName": "status",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk10MSSttEventC6statusSivp",
+            "mangledName": "$s6MixSdk10MSSttEventC6statusSivp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSSttEventC6statusSivg",
+                "mangledName": "$s6MixSdk10MSSttEventC6statusSivg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSSttEventC6statusSivs",
+                "mangledName": "$s6MixSdk10MSSttEventC6statusSivs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSSttEventC6statusSivM",
+                "mangledName": "$s6MixSdk10MSSttEventC6statusSivM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "task_id",
+            "printedName": "task_id",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk10MSSttEventC7task_idSSvp",
+            "mangledName": "$s6MixSdk10MSSttEventC7task_idSSvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSSttEventC7task_idSSvg",
+                "mangledName": "$s6MixSdk10MSSttEventC7task_idSSvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSSttEventC7task_idSSvs",
+                "mangledName": "$s6MixSdk10MSSttEventC7task_idSSvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSSttEventC7task_idSSvM",
+                "mangledName": "$s6MixSdk10MSSttEventC7task_idSSvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "result",
+            "printedName": "result",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Optional",
+                "printedName": "MixSdk.MSSttResult?",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "MSSttResult",
+                    "printedName": "MixSdk.MSSttResult",
+                    "usr": "s:6MixSdk11MSSttResultC"
+                  }
+                ],
+                "usr": "s:Sq"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk10MSSttEventC6resultAA0C6ResultCSgvp",
+            "mangledName": "$s6MixSdk10MSSttEventC6resultAA0C6ResultCSgvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Optional",
+                    "printedName": "MixSdk.MSSttResult?",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "MSSttResult",
+                        "printedName": "MixSdk.MSSttResult",
+                        "usr": "s:6MixSdk11MSSttResultC"
+                      }
+                    ],
+                    "usr": "s:Sq"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSSttEventC6resultAA0C6ResultCSgvg",
+                "mangledName": "$s6MixSdk10MSSttEventC6resultAA0C6ResultCSgvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Optional",
+                    "printedName": "MixSdk.MSSttResult?",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "MSSttResult",
+                        "printedName": "MixSdk.MSSttResult",
+                        "usr": "s:6MixSdk11MSSttResultC"
+                      }
+                    ],
+                    "usr": "s:Sq"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSSttEventC6resultAA0C6ResultCSgvs",
+                "mangledName": "$s6MixSdk10MSSttEventC6resultAA0C6ResultCSgvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSSttEventC6resultAA0C6ResultCSgvM",
+                "mangledName": "$s6MixSdk10MSSttEventC6resultAA0C6ResultCSgvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Constructor",
+            "name": "init",
+            "printedName": "init(from:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "MSSttEvent",
+                "printedName": "MixSdk.MSSttEvent",
+                "usr": "s:6MixSdk10MSSttEventC"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Decoder",
+                "printedName": "any Swift.Decoder",
+                "usr": "s:s7DecoderP"
+              }
+            ],
+            "declKind": "Constructor",
+            "usr": "s:6MixSdk10MSSttEventC4fromACs7Decoder_p_tKcfc",
+            "mangledName": "$s6MixSdk10MSSttEventC4fromACs7Decoder_p_tKcfc",
+            "moduleName": "MixSdk",
+            "implicit": true,
+            "declAttributes": [
+              "Required"
+            ],
+            "throwing": true,
+            "init_kind": "Designated"
+          },
+          {
+            "kind": "Function",
+            "name": "encode",
+            "printedName": "encode(to:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Encoder",
+                "printedName": "any Swift.Encoder",
+                "usr": "s:s7EncoderP"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk10MSSttEventC6encode2toys7Encoder_p_tKF",
+            "mangledName": "$s6MixSdk10MSSttEventC6encode2toys7Encoder_p_tKF",
+            "moduleName": "MixSdk",
+            "implicit": true,
+            "throwing": true,
+            "funcSelfKind": "NonMutating"
+          }
+        ],
+        "declKind": "Class",
+        "usr": "s:6MixSdk10MSSttEventC",
+        "mangledName": "$s6MixSdk10MSSttEventC",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "AccessControl",
+          "RawDocComment"
+        ],
+        "hasMissingDesignatedInitializers": true,
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Decodable",
+            "printedName": "Decodable",
+            "usr": "s:Se",
+            "mangledName": "$sSe"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Encodable",
+            "printedName": "Encodable",
+            "usr": "s:SE",
+            "mangledName": "$sSE"
+          }
+        ]
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "MSSttResult",
+        "printedName": "MSSttResult",
+        "children": [
+          {
+            "kind": "Var",
+            "name": "result",
+            "printedName": "result",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk11MSSttResultC6resultSSvp",
+            "mangledName": "$s6MixSdk11MSSttResultC6resultSSvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk11MSSttResultC6resultSSvg",
+                "mangledName": "$s6MixSdk11MSSttResultC6resultSSvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk11MSSttResultC6resultSSvs",
+                "mangledName": "$s6MixSdk11MSSttResultC6resultSSvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk11MSSttResultC6resultSSvM",
+                "mangledName": "$s6MixSdk11MSSttResultC6resultSSvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "is_end",
+            "printedName": "is_end",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Bool",
+                "printedName": "Swift.Bool",
+                "usr": "s:Sb"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk11MSSttResultC6is_endSbvp",
+            "mangledName": "$s6MixSdk11MSSttResultC6is_endSbvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Bool",
+                    "printedName": "Swift.Bool",
+                    "usr": "s:Sb"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk11MSSttResultC6is_endSbvg",
+                "mangledName": "$s6MixSdk11MSSttResultC6is_endSbvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Bool",
+                    "printedName": "Swift.Bool",
+                    "usr": "s:Sb"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk11MSSttResultC6is_endSbvs",
+                "mangledName": "$s6MixSdk11MSSttResultC6is_endSbvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk11MSSttResultC6is_endSbvM",
+                "mangledName": "$s6MixSdk11MSSttResultC6is_endSbvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "sentence_id",
+            "printedName": "sentence_id",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk11MSSttResultC11sentence_idSSvp",
+            "mangledName": "$s6MixSdk11MSSttResultC11sentence_idSSvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk11MSSttResultC11sentence_idSSvg",
+                "mangledName": "$s6MixSdk11MSSttResultC11sentence_idSSvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk11MSSttResultC11sentence_idSSvs",
+                "mangledName": "$s6MixSdk11MSSttResultC11sentence_idSSvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk11MSSttResultC11sentence_idSSvM",
+                "mangledName": "$s6MixSdk11MSSttResultC11sentence_idSSvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "start_time",
+            "printedName": "start_time",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk11MSSttResultC10start_timeSivp",
+            "mangledName": "$s6MixSdk11MSSttResultC10start_timeSivp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk11MSSttResultC10start_timeSivg",
+                "mangledName": "$s6MixSdk11MSSttResultC10start_timeSivg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk11MSSttResultC10start_timeSivs",
+                "mangledName": "$s6MixSdk11MSSttResultC10start_timeSivs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk11MSSttResultC10start_timeSivM",
+                "mangledName": "$s6MixSdk11MSSttResultC10start_timeSivM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "end_time",
+            "printedName": "end_time",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk11MSSttResultC8end_timeSivp",
+            "mangledName": "$s6MixSdk11MSSttResultC8end_timeSivp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk11MSSttResultC8end_timeSivg",
+                "mangledName": "$s6MixSdk11MSSttResultC8end_timeSivg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk11MSSttResultC8end_timeSivs",
+                "mangledName": "$s6MixSdk11MSSttResultC8end_timeSivs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk11MSSttResultC8end_timeSivM",
+                "mangledName": "$s6MixSdk11MSSttResultC8end_timeSivM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Constructor",
+            "name": "init",
+            "printedName": "init(from:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "MSSttResult",
+                "printedName": "MixSdk.MSSttResult",
+                "usr": "s:6MixSdk11MSSttResultC"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Decoder",
+                "printedName": "any Swift.Decoder",
+                "usr": "s:s7DecoderP"
+              }
+            ],
+            "declKind": "Constructor",
+            "usr": "s:6MixSdk11MSSttResultC4fromACs7Decoder_p_tKcfc",
+            "mangledName": "$s6MixSdk11MSSttResultC4fromACs7Decoder_p_tKcfc",
+            "moduleName": "MixSdk",
+            "implicit": true,
+            "declAttributes": [
+              "Required"
+            ],
+            "throwing": true,
+            "init_kind": "Designated"
+          },
+          {
+            "kind": "Function",
+            "name": "encode",
+            "printedName": "encode(to:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Encoder",
+                "printedName": "any Swift.Encoder",
+                "usr": "s:s7EncoderP"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk11MSSttResultC6encode2toys7Encoder_p_tKF",
+            "mangledName": "$s6MixSdk11MSSttResultC6encode2toys7Encoder_p_tKF",
+            "moduleName": "MixSdk",
+            "implicit": true,
+            "throwing": true,
+            "funcSelfKind": "NonMutating"
+          }
+        ],
+        "declKind": "Class",
+        "usr": "s:6MixSdk11MSSttResultC",
+        "mangledName": "$s6MixSdk11MSSttResultC",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "AccessControl",
+          "RawDocComment"
+        ],
+        "hasMissingDesignatedInitializers": true,
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Decodable",
+            "printedName": "Decodable",
+            "usr": "s:Se",
+            "mangledName": "$sSe"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Encodable",
+            "printedName": "Encodable",
+            "usr": "s:SE",
+            "mangledName": "$sSE"
+          }
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "MSChat",
+        "printedName": "MSChat",
+        "children": [
+          {
+            "kind": "Var",
+            "name": "callBack",
+            "printedName": "callBack",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Optional",
+                "printedName": "((MixSdk.MSChatModel) -> ())?",
+                "children": [
+                  {
+                    "kind": "TypeFunc",
+                    "name": "Function",
+                    "printedName": "(MixSdk.MSChatModel) -> ()",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Void",
+                        "printedName": "()"
+                      },
+                      {
+                        "kind": "TypeNominal",
+                        "name": "MSChatModel",
+                        "printedName": "MixSdk.MSChatModel",
+                        "usr": "s:6MixSdk11MSChatModelC"
+                      }
+                    ]
+                  }
+                ],
+                "usr": "s:Sq"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk6MSChatC8callBackyAA0C5ModelCcSgvp",
+            "mangledName": "$s6MixSdk6MSChatC8callBackyAA0C5ModelCcSgvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Optional",
+                    "printedName": "((MixSdk.MSChatModel) -> ())?",
+                    "children": [
+                      {
+                        "kind": "TypeFunc",
+                        "name": "Function",
+                        "printedName": "(MixSdk.MSChatModel) -> ()",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "Void",
+                            "printedName": "()"
+                          },
+                          {
+                            "kind": "TypeNominal",
+                            "name": "MSChatModel",
+                            "printedName": "MixSdk.MSChatModel",
+                            "usr": "s:6MixSdk11MSChatModelC"
+                          }
+                        ]
+                      }
+                    ],
+                    "usr": "s:Sq"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk6MSChatC8callBackyAA0C5ModelCcSgvg",
+                "mangledName": "$s6MixSdk6MSChatC8callBackyAA0C5ModelCcSgvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Optional",
+                    "printedName": "((MixSdk.MSChatModel) -> ())?",
+                    "children": [
+                      {
+                        "kind": "TypeFunc",
+                        "name": "Function",
+                        "printedName": "(MixSdk.MSChatModel) -> ()",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "Void",
+                            "printedName": "()"
+                          },
+                          {
+                            "kind": "TypeNominal",
+                            "name": "MSChatModel",
+                            "printedName": "MixSdk.MSChatModel",
+                            "usr": "s:6MixSdk11MSChatModelC"
+                          }
+                        ]
+                      }
+                    ],
+                    "usr": "s:Sq"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk6MSChatC8callBackyAA0C5ModelCcSgvs",
+                "mangledName": "$s6MixSdk6MSChatC8callBackyAA0C5ModelCcSgvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk6MSChatC8callBackyAA0C5ModelCcSgvM",
+                "mangledName": "$s6MixSdk6MSChatC8callBackyAA0C5ModelCcSgvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "connectStateCallBack",
+            "printedName": "connectStateCallBack",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Optional",
+                "printedName": "((MixSdk.MSConnectState) -> ())?",
+                "children": [
+                  {
+                    "kind": "TypeFunc",
+                    "name": "Function",
+                    "printedName": "(MixSdk.MSConnectState) -> ()",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Void",
+                        "printedName": "()"
+                      },
+                      {
+                        "kind": "TypeNominal",
+                        "name": "MSConnectState",
+                        "printedName": "MixSdk.MSConnectState",
+                        "usr": "s:6MixSdk14MSConnectStateO"
+                      }
+                    ]
+                  }
+                ],
+                "usr": "s:Sq"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk6MSChatC20connectStateCallBackyAA09MSConnectE0OcSgvp",
+            "mangledName": "$s6MixSdk6MSChatC20connectStateCallBackyAA09MSConnectE0OcSgvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Optional",
+                    "printedName": "((MixSdk.MSConnectState) -> ())?",
+                    "children": [
+                      {
+                        "kind": "TypeFunc",
+                        "name": "Function",
+                        "printedName": "(MixSdk.MSConnectState) -> ()",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "Void",
+                            "printedName": "()"
+                          },
+                          {
+                            "kind": "TypeNominal",
+                            "name": "MSConnectState",
+                            "printedName": "MixSdk.MSConnectState",
+                            "usr": "s:6MixSdk14MSConnectStateO"
+                          }
+                        ]
+                      }
+                    ],
+                    "usr": "s:Sq"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk6MSChatC20connectStateCallBackyAA09MSConnectE0OcSgvg",
+                "mangledName": "$s6MixSdk6MSChatC20connectStateCallBackyAA09MSConnectE0OcSgvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Optional",
+                    "printedName": "((MixSdk.MSConnectState) -> ())?",
+                    "children": [
+                      {
+                        "kind": "TypeFunc",
+                        "name": "Function",
+                        "printedName": "(MixSdk.MSConnectState) -> ()",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "Void",
+                            "printedName": "()"
+                          },
+                          {
+                            "kind": "TypeNominal",
+                            "name": "MSConnectState",
+                            "printedName": "MixSdk.MSConnectState",
+                            "usr": "s:6MixSdk14MSConnectStateO"
+                          }
+                        ]
+                      }
+                    ],
+                    "usr": "s:Sq"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk6MSChatC20connectStateCallBackyAA09MSConnectE0OcSgvs",
+                "mangledName": "$s6MixSdk6MSChatC20connectStateCallBackyAA09MSConnectE0OcSgvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk6MSChatC20connectStateCallBackyAA09MSConnectE0OcSgvM",
+                "mangledName": "$s6MixSdk6MSChatC20connectStateCallBackyAA09MSConnectE0OcSgvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "connectState",
+            "printedName": "connectState",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "MSConnectState",
+                "printedName": "MixSdk.MSConnectState",
+                "usr": "s:6MixSdk14MSConnectStateO"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk6MSChatC12connectStateAA09MSConnectE0Ovp",
+            "mangledName": "$s6MixSdk6MSChatC12connectStateAA09MSConnectE0Ovp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "MSConnectState",
+                    "printedName": "MixSdk.MSConnectState",
+                    "usr": "s:6MixSdk14MSConnectStateO"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk6MSChatC12connectStateAA09MSConnectE0Ovg",
+                "mangledName": "$s6MixSdk6MSChatC12connectStateAA09MSConnectE0Ovg",
+                "moduleName": "MixSdk",
+                "accessorKind": "get"
+              }
+            ]
+          },
+          {
+            "kind": "Function",
+            "name": "reset",
+            "printedName": "reset()",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk6MSChatC5resetyyF",
+            "mangledName": "$s6MixSdk6MSChatC5resetyyF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "funcSelfKind": "NonMutating"
+          },
+          {
+            "kind": "Function",
+            "name": "send",
+            "printedName": "send(content:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk6MSChatC4send7contentySS_tF",
+            "mangledName": "$s6MixSdk6MSChatC4send7contentySS_tF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "funcSelfKind": "NonMutating"
+          }
+        ],
+        "declKind": "Class",
+        "usr": "s:6MixSdk6MSChatC",
+        "mangledName": "$s6MixSdk6MSChatC",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "AccessControl",
+          "RawDocComment"
+        ],
+        "hasMissingDesignatedInitializers": true,
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "MSChatGpt",
+        "printedName": "MSChatGpt",
+        "children": [
+          {
+            "kind": "Function",
+            "name": "transcription",
+            "printedName": "transcription(filePath:completeHandler:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              },
+              {
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(Swift.String?, MixSdk.MSChatGptError?) -> ()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Tuple",
+                    "printedName": "(Swift.String?, MixSdk.MSChatGptError?)",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Optional",
+                        "printedName": "Swift.String?",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "String",
+                            "printedName": "Swift.String",
+                            "usr": "s:SS"
+                          }
+                        ],
+                        "usr": "s:Sq"
+                      },
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Optional",
+                        "printedName": "MixSdk.MSChatGptError?",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "MSChatGptError",
+                            "printedName": "MixSdk.MSChatGptError",
+                            "usr": "s:6MixSdk14MSChatGptErrorC"
+                          }
+                        ],
+                        "usr": "s:Sq"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk9MSChatGptC13transcription8filePath15completeHandlerySS_ySSSg_AA0cD5ErrorCSgtctF",
+            "mangledName": "$s6MixSdk9MSChatGptC13transcription8filePath15completeHandlerySS_ySSSg_AA0cD5ErrorCSgtctF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "funcSelfKind": "NonMutating"
+          },
+          {
+            "kind": "Function",
+            "name": "changeModel",
+            "printedName": "changeModel(model:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk9MSChatGptC11changeModel5modelySS_tF",
+            "mangledName": "$s6MixSdk9MSChatGptC11changeModel5modelySS_tF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "funcSelfKind": "NonMutating"
+          },
+          {
+            "kind": "Function",
+            "name": "isValidKey",
+            "printedName": "isValidKey(_:completeHandler:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              },
+              {
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(Swift.Bool?, MixSdk.MSChatGptError?) -> ()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Tuple",
+                    "printedName": "(Swift.Bool?, MixSdk.MSChatGptError?)",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Optional",
+                        "printedName": "Swift.Bool?",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "Bool",
+                            "printedName": "Swift.Bool",
+                            "usr": "s:Sb"
+                          }
+                        ],
+                        "usr": "s:Sq"
+                      },
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Optional",
+                        "printedName": "MixSdk.MSChatGptError?",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "MSChatGptError",
+                            "printedName": "MixSdk.MSChatGptError",
+                            "usr": "s:6MixSdk14MSChatGptErrorC"
+                          }
+                        ],
+                        "usr": "s:Sq"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk9MSChatGptC10isValidKey_15completeHandlerySS_ySbSg_AA0cD5ErrorCSgtctF",
+            "mangledName": "$s6MixSdk9MSChatGptC10isValidKey_15completeHandlerySS_ySbSg_AA0cD5ErrorCSgtctF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "funcSelfKind": "NonMutating"
+          },
+          {
+            "kind": "Function",
+            "name": "send",
+            "printedName": "send(content:completeHandler:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              },
+              {
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(MixSdk.MSChatGptModel?, MixSdk.MSChatGptError?) -> ()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Tuple",
+                    "printedName": "(MixSdk.MSChatGptModel?, MixSdk.MSChatGptError?)",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Optional",
+                        "printedName": "MixSdk.MSChatGptModel?",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "MSChatGptModel",
+                            "printedName": "MixSdk.MSChatGptModel",
+                            "usr": "s:6MixSdk14MSChatGptModelC"
+                          }
+                        ],
+                        "usr": "s:Sq"
+                      },
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Optional",
+                        "printedName": "MixSdk.MSChatGptError?",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "MSChatGptError",
+                            "printedName": "MixSdk.MSChatGptError",
+                            "usr": "s:6MixSdk14MSChatGptErrorC"
+                          }
+                        ],
+                        "usr": "s:Sq"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk9MSChatGptC4send7content15completeHandlerySS_yAA0cD5ModelCSg_AA0cD5ErrorCSgtctF",
+            "mangledName": "$s6MixSdk9MSChatGptC4send7content15completeHandlerySS_yAA0cD5ModelCSg_AA0cD5ErrorCSgtctF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "funcSelfKind": "NonMutating"
+          }
+        ],
+        "declKind": "Class",
+        "usr": "s:6MixSdk9MSChatGptC",
+        "mangledName": "$s6MixSdk9MSChatGptC",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "AccessControl",
+          "RawDocComment"
+        ],
+        "hasMissingDesignatedInitializers": true,
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
+        ]
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "MSChatGptTranscription",
+        "printedName": "MSChatGptTranscription",
+        "children": [
+          {
+            "kind": "Function",
+            "name": "start",
+            "printedName": "start()",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk22MSChatGptTranscriptionC5startyyF",
+            "mangledName": "$s6MixSdk22MSChatGptTranscriptionC5startyyF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "funcSelfKind": "NonMutating"
+          },
+          {
+            "kind": "Function",
+            "name": "stop",
+            "printedName": "stop(completeHandler:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeFunc",
+                "name": "Function",
+                "printedName": "(Swift.String?, MixSdk.MSChatGptError?) -> ()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Tuple",
+                    "printedName": "(Swift.String?, MixSdk.MSChatGptError?)",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Optional",
+                        "printedName": "Swift.String?",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "String",
+                            "printedName": "Swift.String",
+                            "usr": "s:SS"
+                          }
+                        ],
+                        "usr": "s:Sq"
+                      },
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Optional",
+                        "printedName": "MixSdk.MSChatGptError?",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "MSChatGptError",
+                            "printedName": "MixSdk.MSChatGptError",
+                            "usr": "s:6MixSdk14MSChatGptErrorC"
+                          }
+                        ],
+                        "usr": "s:Sq"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk22MSChatGptTranscriptionC4stop15completeHandleryySSSg_AA0cD5ErrorCSgtc_tF",
+            "mangledName": "$s6MixSdk22MSChatGptTranscriptionC4stop15completeHandleryySSSg_AA0cD5ErrorCSgtc_tF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "funcSelfKind": "NonMutating"
+          },
+          {
+            "kind": "Function",
+            "name": "sendVoice",
+            "printedName": "sendVoice(pcmData:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Data",
+                "printedName": "Foundation.Data",
+                "usr": "s:10Foundation4DataV"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk22MSChatGptTranscriptionC9sendVoice7pcmDatay10Foundation0I0V_tF",
+            "mangledName": "$s6MixSdk22MSChatGptTranscriptionC9sendVoice7pcmDatay10Foundation0I0V_tF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "funcSelfKind": "NonMutating"
+          },
+          {
+            "kind": "Function",
+            "name": "sendVoice",
+            "printedName": "sendVoice(sbcData:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Data",
+                "printedName": "Foundation.Data",
+                "usr": "s:10Foundation4DataV"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk22MSChatGptTranscriptionC9sendVoice7sbcDatay10Foundation0I0V_tF",
+            "mangledName": "$s6MixSdk22MSChatGptTranscriptionC9sendVoice7sbcDatay10Foundation0I0V_tF",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "funcSelfKind": "NonMutating"
+          }
+        ],
+        "declKind": "Class",
+        "usr": "s:6MixSdk22MSChatGptTranscriptionC",
+        "mangledName": "$s6MixSdk22MSChatGptTranscriptionC",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "AccessControl",
+          "RawDocComment"
+        ],
+        "hasMissingDesignatedInitializers": true,
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          }
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "MSAigcStyle",
+        "printedName": "MSAigcStyle",
+        "children": [
+          {
+            "kind": "Var",
+            "name": "name",
+            "printedName": "name",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk11MSAigcStyleC4nameSSvp",
+            "mangledName": "$s6MixSdk11MSAigcStyleC4nameSSvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk11MSAigcStyleC4nameSSvg",
+                "mangledName": "$s6MixSdk11MSAigcStyleC4nameSSvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk11MSAigcStyleC4nameSSvs",
+                "mangledName": "$s6MixSdk11MSAigcStyleC4nameSSvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk11MSAigcStyleC4nameSSvM",
+                "mangledName": "$s6MixSdk11MSAigcStyleC4nameSSvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "url",
+            "printedName": "url",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk11MSAigcStyleC3urlSSvp",
+            "mangledName": "$s6MixSdk11MSAigcStyleC3urlSSvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk11MSAigcStyleC3urlSSvg",
+                "mangledName": "$s6MixSdk11MSAigcStyleC3urlSSvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk11MSAigcStyleC3urlSSvs",
+                "mangledName": "$s6MixSdk11MSAigcStyleC3urlSSvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk11MSAigcStyleC3urlSSvM",
+                "mangledName": "$s6MixSdk11MSAigcStyleC3urlSSvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "code",
+            "printedName": "code",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk11MSAigcStyleC4codeSSvp",
+            "mangledName": "$s6MixSdk11MSAigcStyleC4codeSSvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk11MSAigcStyleC4codeSSvg",
+                "mangledName": "$s6MixSdk11MSAigcStyleC4codeSSvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk11MSAigcStyleC4codeSSvs",
+                "mangledName": "$s6MixSdk11MSAigcStyleC4codeSSvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk11MSAigcStyleC4codeSSvM",
+                "mangledName": "$s6MixSdk11MSAigcStyleC4codeSSvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Constructor",
+            "name": "init",
+            "printedName": "init(from:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "MSAigcStyle",
+                "printedName": "MixSdk.MSAigcStyle",
+                "usr": "s:6MixSdk11MSAigcStyleC"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Decoder",
+                "printedName": "any Swift.Decoder",
+                "usr": "s:s7DecoderP"
+              }
+            ],
+            "declKind": "Constructor",
+            "usr": "s:6MixSdk11MSAigcStyleC4fromACs7Decoder_p_tKcfc",
+            "mangledName": "$s6MixSdk11MSAigcStyleC4fromACs7Decoder_p_tKcfc",
+            "moduleName": "MixSdk",
+            "implicit": true,
+            "declAttributes": [
+              "Required"
+            ],
+            "throwing": true,
+            "init_kind": "Designated"
+          },
+          {
+            "kind": "Function",
+            "name": "encode",
+            "printedName": "encode(to:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Encoder",
+                "printedName": "any Swift.Encoder",
+                "usr": "s:s7EncoderP"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk11MSAigcStyleC6encode2toys7Encoder_p_tKF",
+            "mangledName": "$s6MixSdk11MSAigcStyleC6encode2toys7Encoder_p_tKF",
+            "moduleName": "MixSdk",
+            "implicit": true,
+            "throwing": true,
+            "funcSelfKind": "NonMutating"
+          }
+        ],
+        "declKind": "Class",
+        "usr": "s:6MixSdk11MSAigcStyleC",
+        "mangledName": "$s6MixSdk11MSAigcStyleC",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "AccessControl",
+          "RawDocComment"
+        ],
+        "hasMissingDesignatedInitializers": true,
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Decodable",
+            "printedName": "Decodable",
+            "usr": "s:Se",
+            "mangledName": "$sSe"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Encodable",
+            "printedName": "Encodable",
+            "usr": "s:SE",
+            "mangledName": "$sSE"
+          }
+        ]
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "MSAigcTask",
+        "printedName": "MSAigcTask",
+        "children": [
+          {
+            "kind": "Var",
+            "name": "type",
+            "printedName": "type",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk10MSAigcTaskC4typeSivp",
+            "mangledName": "$s6MixSdk10MSAigcTaskC4typeSivp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSAigcTaskC4typeSivg",
+                "mangledName": "$s6MixSdk10MSAigcTaskC4typeSivg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSAigcTaskC4typeSivs",
+                "mangledName": "$s6MixSdk10MSAigcTaskC4typeSivs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSAigcTaskC4typeSivM",
+                "mangledName": "$s6MixSdk10MSAigcTaskC4typeSivM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "subject",
+            "printedName": "subject",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Optional",
+                "printedName": "Swift.String?",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "usr": "s:Sq"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk10MSAigcTaskC7subjectSSSgvp",
+            "mangledName": "$s6MixSdk10MSAigcTaskC7subjectSSSgvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Optional",
+                    "printedName": "Swift.String?",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "String",
+                        "printedName": "Swift.String",
+                        "usr": "s:SS"
+                      }
+                    ],
+                    "usr": "s:Sq"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSAigcTaskC7subjectSSSgvg",
+                "mangledName": "$s6MixSdk10MSAigcTaskC7subjectSSSgvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Optional",
+                    "printedName": "Swift.String?",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "String",
+                        "printedName": "Swift.String",
+                        "usr": "s:SS"
+                      }
+                    ],
+                    "usr": "s:Sq"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSAigcTaskC7subjectSSSgvs",
+                "mangledName": "$s6MixSdk10MSAigcTaskC7subjectSSSgvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSAigcTaskC7subjectSSSgvM",
+                "mangledName": "$s6MixSdk10MSAigcTaskC7subjectSSSgvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "algorithm",
+            "printedName": "algorithm",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk10MSAigcTaskC9algorithmSSvp",
+            "mangledName": "$s6MixSdk10MSAigcTaskC9algorithmSSvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSAigcTaskC9algorithmSSvg",
+                "mangledName": "$s6MixSdk10MSAigcTaskC9algorithmSSvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSAigcTaskC9algorithmSSvs",
+                "mangledName": "$s6MixSdk10MSAigcTaskC9algorithmSSvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSAigcTaskC9algorithmSSvM",
+                "mangledName": "$s6MixSdk10MSAigcTaskC9algorithmSSvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "image_base64",
+            "printedName": "image_base64",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Optional",
+                "printedName": "Swift.String?",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "usr": "s:Sq"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk10MSAigcTaskC12image_base64SSSgvp",
+            "mangledName": "$s6MixSdk10MSAigcTaskC12image_base64SSSgvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Optional",
+                    "printedName": "Swift.String?",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "String",
+                        "printedName": "Swift.String",
+                        "usr": "s:SS"
+                      }
+                    ],
+                    "usr": "s:Sq"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSAigcTaskC12image_base64SSSgvg",
+                "mangledName": "$s6MixSdk10MSAigcTaskC12image_base64SSSgvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Optional",
+                    "printedName": "Swift.String?",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "String",
+                        "printedName": "Swift.String",
+                        "usr": "s:SS"
+                      }
+                    ],
+                    "usr": "s:Sq"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSAigcTaskC12image_base64SSSgvs",
+                "mangledName": "$s6MixSdk10MSAigcTaskC12image_base64SSSgvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSAigcTaskC12image_base64SSSgvM",
+                "mangledName": "$s6MixSdk10MSAigcTaskC12image_base64SSSgvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "amount",
+            "printedName": "amount",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk10MSAigcTaskC6amountSivp",
+            "mangledName": "$s6MixSdk10MSAigcTaskC6amountSivp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSAigcTaskC6amountSivg",
+                "mangledName": "$s6MixSdk10MSAigcTaskC6amountSivg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSAigcTaskC6amountSivs",
+                "mangledName": "$s6MixSdk10MSAigcTaskC6amountSivs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk10MSAigcTaskC6amountSivM",
+                "mangledName": "$s6MixSdk10MSAigcTaskC6amountSivM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Constructor",
+            "name": "init",
+            "printedName": "init()",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "MSAigcTask",
+                "printedName": "MixSdk.MSAigcTask",
+                "usr": "s:6MixSdk10MSAigcTaskC"
+              }
+            ],
+            "declKind": "Constructor",
+            "usr": "s:6MixSdk10MSAigcTaskCACycfc",
+            "mangledName": "$s6MixSdk10MSAigcTaskCACycfc",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "AccessControl"
+            ],
+            "init_kind": "Designated"
+          },
+          {
+            "kind": "Constructor",
+            "name": "init",
+            "printedName": "init(from:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "MSAigcTask",
+                "printedName": "MixSdk.MSAigcTask",
+                "usr": "s:6MixSdk10MSAigcTaskC"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Decoder",
+                "printedName": "any Swift.Decoder",
+                "usr": "s:s7DecoderP"
+              }
+            ],
+            "declKind": "Constructor",
+            "usr": "s:6MixSdk10MSAigcTaskC4fromACs7Decoder_p_tKcfc",
+            "mangledName": "$s6MixSdk10MSAigcTaskC4fromACs7Decoder_p_tKcfc",
+            "moduleName": "MixSdk",
+            "implicit": true,
+            "declAttributes": [
+              "Required"
+            ],
+            "throwing": true,
+            "init_kind": "Designated"
+          },
+          {
+            "kind": "Function",
+            "name": "encode",
+            "printedName": "encode(to:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Encoder",
+                "printedName": "any Swift.Encoder",
+                "usr": "s:s7EncoderP"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk10MSAigcTaskC6encode2toys7Encoder_p_tKF",
+            "mangledName": "$s6MixSdk10MSAigcTaskC6encode2toys7Encoder_p_tKF",
+            "moduleName": "MixSdk",
+            "implicit": true,
+            "throwing": true,
+            "funcSelfKind": "NonMutating"
+          }
+        ],
+        "declKind": "Class",
+        "usr": "s:6MixSdk10MSAigcTaskC",
+        "mangledName": "$s6MixSdk10MSAigcTaskC",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "AccessControl",
+          "RawDocComment"
+        ],
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Decodable",
+            "printedName": "Decodable",
+            "usr": "s:Se",
+            "mangledName": "$sSe"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Encodable",
+            "printedName": "Encodable",
+            "usr": "s:SE",
+            "mangledName": "$sSE"
+          }
+        ]
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "MSAigcSearchTask",
+        "printedName": "MSAigcSearchTask",
+        "children": [
+          {
+            "kind": "Var",
+            "name": "task_id",
+            "printedName": "task_id",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk16MSAigcSearchTaskC7task_idSSvp",
+            "mangledName": "$s6MixSdk16MSAigcSearchTaskC7task_idSSvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk16MSAigcSearchTaskC7task_idSSvg",
+                "mangledName": "$s6MixSdk16MSAigcSearchTaskC7task_idSSvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk16MSAigcSearchTaskC7task_idSSvs",
+                "mangledName": "$s6MixSdk16MSAigcSearchTaskC7task_idSSvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk16MSAigcSearchTaskC7task_idSSvM",
+                "mangledName": "$s6MixSdk16MSAigcSearchTaskC7task_idSSvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "bit_depth",
+            "printedName": "bit_depth",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk16MSAigcSearchTaskC9bit_depthSivp",
+            "mangledName": "$s6MixSdk16MSAigcSearchTaskC9bit_depthSivp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk16MSAigcSearchTaskC9bit_depthSivg",
+                "mangledName": "$s6MixSdk16MSAigcSearchTaskC9bit_depthSivg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk16MSAigcSearchTaskC9bit_depthSivs",
+                "mangledName": "$s6MixSdk16MSAigcSearchTaskC9bit_depthSivs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk16MSAigcSearchTaskC9bit_depthSivM",
+                "mangledName": "$s6MixSdk16MSAigcSearchTaskC9bit_depthSivM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "compression_quality",
+            "printedName": "compression_quality",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk16MSAigcSearchTaskC19compression_qualitySivp",
+            "mangledName": "$s6MixSdk16MSAigcSearchTaskC19compression_qualitySivp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk16MSAigcSearchTaskC19compression_qualitySivg",
+                "mangledName": "$s6MixSdk16MSAigcSearchTaskC19compression_qualitySivg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk16MSAigcSearchTaskC19compression_qualitySivs",
+                "mangledName": "$s6MixSdk16MSAigcSearchTaskC19compression_qualitySivs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk16MSAigcSearchTaskC19compression_qualitySivM",
+                "mangledName": "$s6MixSdk16MSAigcSearchTaskC19compression_qualitySivM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "format",
+            "printedName": "format",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "String",
+                "printedName": "Swift.String",
+                "usr": "s:SS"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk16MSAigcSearchTaskC6formatSSvp",
+            "mangledName": "$s6MixSdk16MSAigcSearchTaskC6formatSSvp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk16MSAigcSearchTaskC6formatSSvg",
+                "mangledName": "$s6MixSdk16MSAigcSearchTaskC6formatSSvg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "String",
+                    "printedName": "Swift.String",
+                    "usr": "s:SS"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk16MSAigcSearchTaskC6formatSSvs",
+                "mangledName": "$s6MixSdk16MSAigcSearchTaskC6formatSSvs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk16MSAigcSearchTaskC6formatSSvM",
+                "mangledName": "$s6MixSdk16MSAigcSearchTaskC6formatSSvM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "height",
+            "printedName": "height",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk16MSAigcSearchTaskC6heightSivp",
+            "mangledName": "$s6MixSdk16MSAigcSearchTaskC6heightSivp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk16MSAigcSearchTaskC6heightSivg",
+                "mangledName": "$s6MixSdk16MSAigcSearchTaskC6heightSivg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk16MSAigcSearchTaskC6heightSivs",
+                "mangledName": "$s6MixSdk16MSAigcSearchTaskC6heightSivs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk16MSAigcSearchTaskC6heightSivM",
+                "mangledName": "$s6MixSdk16MSAigcSearchTaskC6heightSivM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Var",
+            "name": "width",
+            "printedName": "width",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Int",
+                "printedName": "Swift.Int",
+                "usr": "s:Si"
+              }
+            ],
+            "declKind": "Var",
+            "usr": "s:6MixSdk16MSAigcSearchTaskC5widthSivp",
+            "mangledName": "$s6MixSdk16MSAigcSearchTaskC5widthSivp",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "HasInitialValue",
+              "HasStorage",
+              "AccessControl",
+              "RawDocComment"
+            ],
+            "hasStorage": true,
+            "accessors": [
+              {
+                "kind": "Accessor",
+                "name": "Get",
+                "printedName": "Get()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk16MSAigcSearchTaskC5widthSivg",
+                "mangledName": "$s6MixSdk16MSAigcSearchTaskC5widthSivg",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "get"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Set",
+                "printedName": "Set()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  },
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk16MSAigcSearchTaskC5widthSivs",
+                "mangledName": "$s6MixSdk16MSAigcSearchTaskC5widthSivs",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "set"
+              },
+              {
+                "kind": "Accessor",
+                "name": "Modify",
+                "printedName": "Modify()",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Void",
+                    "printedName": "()"
+                  }
+                ],
+                "declKind": "Accessor",
+                "usr": "s:6MixSdk16MSAigcSearchTaskC5widthSivM",
+                "mangledName": "$s6MixSdk16MSAigcSearchTaskC5widthSivM",
+                "moduleName": "MixSdk",
+                "implicit": true,
+                "accessorKind": "_modify"
+              }
+            ]
+          },
+          {
+            "kind": "Constructor",
+            "name": "init",
+            "printedName": "init()",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "MSAigcSearchTask",
+                "printedName": "MixSdk.MSAigcSearchTask",
+                "usr": "s:6MixSdk16MSAigcSearchTaskC"
+              }
+            ],
+            "declKind": "Constructor",
+            "usr": "s:6MixSdk16MSAigcSearchTaskCACycfc",
+            "mangledName": "$s6MixSdk16MSAigcSearchTaskCACycfc",
+            "moduleName": "MixSdk",
+            "declAttributes": [
+              "AccessControl"
+            ],
+            "init_kind": "Designated"
+          },
+          {
+            "kind": "Constructor",
+            "name": "init",
+            "printedName": "init(from:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "MSAigcSearchTask",
+                "printedName": "MixSdk.MSAigcSearchTask",
+                "usr": "s:6MixSdk16MSAigcSearchTaskC"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Decoder",
+                "printedName": "any Swift.Decoder",
+                "usr": "s:s7DecoderP"
+              }
+            ],
+            "declKind": "Constructor",
+            "usr": "s:6MixSdk16MSAigcSearchTaskC4fromACs7Decoder_p_tKcfc",
+            "mangledName": "$s6MixSdk16MSAigcSearchTaskC4fromACs7Decoder_p_tKcfc",
+            "moduleName": "MixSdk",
+            "implicit": true,
+            "declAttributes": [
+              "Required"
+            ],
+            "throwing": true,
+            "init_kind": "Designated"
+          },
+          {
+            "kind": "Function",
+            "name": "encode",
+            "printedName": "encode(to:)",
+            "children": [
+              {
+                "kind": "TypeNominal",
+                "name": "Void",
+                "printedName": "()"
+              },
+              {
+                "kind": "TypeNominal",
+                "name": "Encoder",
+                "printedName": "any Swift.Encoder",
+                "usr": "s:s7EncoderP"
+              }
+            ],
+            "declKind": "Func",
+            "usr": "s:6MixSdk16MSAigcSearchTaskC6encode2toys7Encoder_p_tKF",
+            "mangledName": "$s6MixSdk16MSAigcSearchTaskC6encode2toys7Encoder_p_tKF",
+            "moduleName": "MixSdk",
+            "implicit": true,
+            "throwing": true,
+            "funcSelfKind": "NonMutating"
+          }
+        ],
+        "declKind": "Class",
+        "usr": "s:6MixSdk16MSAigcSearchTaskC",
+        "mangledName": "$s6MixSdk16MSAigcSearchTaskC",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "AccessControl",
+          "RawDocComment"
+        ],
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Decodable",
+            "printedName": "Decodable",
+            "usr": "s:Se",
+            "mangledName": "$sSe"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Encodable",
+            "printedName": "Encodable",
+            "usr": "s:SE",
+            "mangledName": "$sSE"
+          }
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "Import",
+        "name": "Foundation",
+        "printedName": "Foundation",
+        "declKind": "Import",
+        "moduleName": "MixSdk",
+        "declAttributes": [
+          "RawDocComment"
+        ]
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "Array",
+        "printedName": "Array",
+        "declKind": "Struct",
+        "usr": "s:Sa",
+        "mangledName": "$sSa",
+        "moduleName": "Swift",
+        "genericSig": "<τ_0_0>",
+        "sugared_genericSig": "<Element>",
+        "declAttributes": [
+          "EagerMove",
+          "Frozen"
+        ],
+        "isExternal": true,
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "_DestructorSafeContainer",
+            "printedName": "_DestructorSafeContainer",
+            "usr": "s:s24_DestructorSafeContainerP",
+            "mangledName": "$ss24_DestructorSafeContainerP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "_ArrayProtocol",
+            "printedName": "_ArrayProtocol",
+            "children": [
+              {
+                "kind": "TypeWitness",
+                "name": "_Buffer",
+                "printedName": "_Buffer",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "_ArrayBuffer",
+                    "printedName": "Swift._ArrayBuffer<τ_0_0>",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "GenericTypeParam",
+                        "printedName": "τ_0_0"
+                      }
+                    ],
+                    "usr": "s:s12_ArrayBufferV"
+                  }
+                ]
+              }
+            ],
+            "usr": "s:s14_ArrayProtocolP",
+            "mangledName": "$ss14_ArrayProtocolP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "RandomAccessCollection",
+            "printedName": "RandomAccessCollection",
+            "children": [
+              {
+                "kind": "TypeWitness",
+                "name": "Element",
+                "printedName": "Element",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "GenericTypeParam",
+                    "printedName": "τ_0_0"
+                  }
+                ]
+              },
+              {
+                "kind": "TypeWitness",
+                "name": "Index",
+                "printedName": "Index",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ]
+              },
+              {
+                "kind": "TypeWitness",
+                "name": "SubSequence",
+                "printedName": "SubSequence",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "ArraySlice",
+                    "printedName": "Swift.ArraySlice<τ_0_0>",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "GenericTypeParam",
+                        "printedName": "τ_0_0"
+                      }
+                    ],
+                    "usr": "s:s10ArraySliceV"
+                  }
+                ]
+              },
+              {
+                "kind": "TypeWitness",
+                "name": "Indices",
+                "printedName": "Indices",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Range",
+                    "printedName": "Swift.Range<Swift.Int>",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Int",
+                        "printedName": "Swift.Int",
+                        "usr": "s:Si"
+                      }
+                    ],
+                    "usr": "s:Sn"
+                  }
+                ]
+              }
+            ],
+            "usr": "s:Sk",
+            "mangledName": "$sSk"
+          },
+          {
+            "kind": "Conformance",
+            "name": "MutableCollection",
+            "printedName": "MutableCollection",
+            "children": [
+              {
+                "kind": "TypeWitness",
+                "name": "Element",
+                "printedName": "Element",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "GenericTypeParam",
+                    "printedName": "τ_0_0"
+                  }
+                ]
+              },
+              {
+                "kind": "TypeWitness",
+                "name": "Index",
+                "printedName": "Index",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ]
+              },
+              {
+                "kind": "TypeWitness",
+                "name": "SubSequence",
+                "printedName": "SubSequence",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "ArraySlice",
+                    "printedName": "Swift.ArraySlice<τ_0_0>",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "GenericTypeParam",
+                        "printedName": "τ_0_0"
+                      }
+                    ],
+                    "usr": "s:s10ArraySliceV"
+                  }
+                ]
+              }
+            ],
+            "usr": "s:SM",
+            "mangledName": "$sSM"
+          },
+          {
+            "kind": "Conformance",
+            "name": "BidirectionalCollection",
+            "printedName": "BidirectionalCollection",
+            "children": [
+              {
+                "kind": "TypeWitness",
+                "name": "Element",
+                "printedName": "Element",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "GenericTypeParam",
+                    "printedName": "τ_0_0"
+                  }
+                ]
+              },
+              {
+                "kind": "TypeWitness",
+                "name": "Index",
+                "printedName": "Index",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ]
+              },
+              {
+                "kind": "TypeWitness",
+                "name": "SubSequence",
+                "printedName": "SubSequence",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "ArraySlice",
+                    "printedName": "Swift.ArraySlice<τ_0_0>",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "GenericTypeParam",
+                        "printedName": "τ_0_0"
+                      }
+                    ],
+                    "usr": "s:s10ArraySliceV"
+                  }
+                ]
+              },
+              {
+                "kind": "TypeWitness",
+                "name": "Indices",
+                "printedName": "Indices",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Range",
+                    "printedName": "Swift.Range<Swift.Int>",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Int",
+                        "printedName": "Swift.Int",
+                        "usr": "s:Si"
+                      }
+                    ],
+                    "usr": "s:Sn"
+                  }
+                ]
+              }
+            ],
+            "usr": "s:SK",
+            "mangledName": "$sSK"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Collection",
+            "printedName": "Collection",
+            "children": [
+              {
+                "kind": "TypeWitness",
+                "name": "Element",
+                "printedName": "Element",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "GenericTypeParam",
+                    "printedName": "τ_0_0"
+                  }
+                ]
+              },
+              {
+                "kind": "TypeWitness",
+                "name": "Index",
+                "printedName": "Index",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ]
+              },
+              {
+                "kind": "TypeWitness",
+                "name": "Iterator",
+                "printedName": "Iterator",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "IndexingIterator",
+                    "printedName": "Swift.IndexingIterator<[τ_0_0]>",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Array",
+                        "printedName": "[τ_0_0]",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "GenericTypeParam",
+                            "printedName": "τ_0_0"
+                          }
+                        ],
+                        "usr": "s:Sa"
+                      }
+                    ],
+                    "usr": "s:s16IndexingIteratorV"
+                  }
+                ]
+              },
+              {
+                "kind": "TypeWitness",
+                "name": "SubSequence",
+                "printedName": "SubSequence",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "ArraySlice",
+                    "printedName": "Swift.ArraySlice<τ_0_0>",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "GenericTypeParam",
+                        "printedName": "τ_0_0"
+                      }
+                    ],
+                    "usr": "s:s10ArraySliceV"
+                  }
+                ]
+              },
+              {
+                "kind": "TypeWitness",
+                "name": "Indices",
+                "printedName": "Indices",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Range",
+                    "printedName": "Swift.Range<Swift.Int>",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Int",
+                        "printedName": "Swift.Int",
+                        "usr": "s:Si"
+                      }
+                    ],
+                    "usr": "s:Sn"
+                  }
+                ]
+              }
+            ],
+            "usr": "s:Sl",
+            "mangledName": "$sSl"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Sequence",
+            "printedName": "Sequence",
+            "children": [
+              {
+                "kind": "TypeWitness",
+                "name": "Element",
+                "printedName": "Element",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "GenericTypeParam",
+                    "printedName": "τ_0_0"
+                  }
+                ]
+              },
+              {
+                "kind": "TypeWitness",
+                "name": "Iterator",
+                "printedName": "Iterator",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "IndexingIterator",
+                    "printedName": "Swift.IndexingIterator<[τ_0_0]>",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Array",
+                        "printedName": "[τ_0_0]",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "GenericTypeParam",
+                            "printedName": "τ_0_0"
+                          }
+                        ],
+                        "usr": "s:Sa"
+                      }
+                    ],
+                    "usr": "s:s16IndexingIteratorV"
+                  }
+                ]
+              }
+            ],
+            "usr": "s:ST",
+            "mangledName": "$sST"
+          },
+          {
+            "kind": "Conformance",
+            "name": "ExpressibleByArrayLiteral",
+            "printedName": "ExpressibleByArrayLiteral",
+            "children": [
+              {
+                "kind": "TypeWitness",
+                "name": "ArrayLiteralElement",
+                "printedName": "ArrayLiteralElement",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "GenericTypeParam",
+                    "printedName": "τ_0_0"
+                  }
+                ]
+              }
+            ],
+            "usr": "s:s25ExpressibleByArrayLiteralP",
+            "mangledName": "$ss25ExpressibleByArrayLiteralP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "RangeReplaceableCollection",
+            "printedName": "RangeReplaceableCollection",
+            "children": [
+              {
+                "kind": "TypeWitness",
+                "name": "SubSequence",
+                "printedName": "SubSequence",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "ArraySlice",
+                    "printedName": "Swift.ArraySlice<τ_0_0>",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "GenericTypeParam",
+                        "printedName": "τ_0_0"
+                      }
+                    ],
+                    "usr": "s:s10ArraySliceV"
+                  }
+                ]
+              }
+            ],
+            "usr": "s:Sm",
+            "mangledName": "$sSm"
+          },
+          {
+            "kind": "Conformance",
+            "name": "CustomReflectable",
+            "printedName": "CustomReflectable",
+            "usr": "s:s17CustomReflectableP",
+            "mangledName": "$ss17CustomReflectableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "CustomStringConvertible",
+            "printedName": "CustomStringConvertible",
+            "usr": "s:s23CustomStringConvertibleP",
+            "mangledName": "$ss23CustomStringConvertibleP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "CustomDebugStringConvertible",
+            "printedName": "CustomDebugStringConvertible",
+            "usr": "s:s28CustomDebugStringConvertibleP",
+            "mangledName": "$ss28CustomDebugStringConvertibleP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Equatable",
+            "printedName": "Equatable",
+            "usr": "s:SQ",
+            "mangledName": "$sSQ"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Hashable",
+            "printedName": "Hashable",
+            "usr": "s:SH",
+            "mangledName": "$sSH"
+          },
+          {
+            "kind": "Conformance",
+            "name": "_HasCustomAnyHashableRepresentation",
+            "printedName": "_HasCustomAnyHashableRepresentation",
+            "usr": "s:s35_HasCustomAnyHashableRepresentationP",
+            "mangledName": "$ss35_HasCustomAnyHashableRepresentationP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Sendable",
+            "printedName": "Sendable",
+            "usr": "s:s8SendableP",
+            "mangledName": "$ss8SendableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Encodable",
+            "printedName": "Encodable",
+            "usr": "s:SE",
+            "mangledName": "$sSE"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Decodable",
+            "printedName": "Decodable",
+            "usr": "s:Se",
+            "mangledName": "$sSe"
+          },
+          {
+            "kind": "Conformance",
+            "name": "_HasContiguousBytes",
+            "printedName": "_HasContiguousBytes",
+            "usr": "s:s19_HasContiguousBytesP",
+            "mangledName": "$ss19_HasContiguousBytesP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "_ObjectiveCBridgeable",
+            "printedName": "_ObjectiveCBridgeable",
+            "children": [
+              {
+                "kind": "TypeWitness",
+                "name": "_ObjectiveCType",
+                "printedName": "_ObjectiveCType",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "NSArray",
+                    "printedName": "Foundation.NSArray",
+                    "usr": "c:objc(cs)NSArray"
+                  }
+                ]
+              }
+            ],
+            "usr": "s:s21_ObjectiveCBridgeableP",
+            "mangledName": "$ss21_ObjectiveCBridgeableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "CVarArg",
+            "printedName": "CVarArg",
+            "usr": "s:s7CVarArgP",
+            "mangledName": "$ss7CVarArgP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "ContiguousBytes",
+            "printedName": "ContiguousBytes",
+            "usr": "s:10Foundation15ContiguousBytesP",
+            "mangledName": "$s10Foundation15ContiguousBytesP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "EncodableWithConfiguration",
+            "printedName": "EncodableWithConfiguration",
+            "children": [
+              {
+                "kind": "TypeWitness",
+                "name": "EncodingConfiguration",
+                "printedName": "EncodingConfiguration",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "DependentMember",
+                    "printedName": "τ_0_0.EncodingConfiguration"
+                  }
+                ]
+              }
+            ],
+            "usr": "s:10Foundation26EncodableWithConfigurationP",
+            "mangledName": "$s10Foundation26EncodableWithConfigurationP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "DecodableWithConfiguration",
+            "printedName": "DecodableWithConfiguration",
+            "children": [
+              {
+                "kind": "TypeWitness",
+                "name": "DecodingConfiguration",
+                "printedName": "DecodingConfiguration",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "DependentMember",
+                    "printedName": "τ_0_0.DecodingConfiguration"
+                  }
+                ]
+              }
+            ],
+            "usr": "s:10Foundation26DecodableWithConfigurationP",
+            "mangledName": "$s10Foundation26DecodableWithConfigurationP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "DataProtocol",
+            "printedName": "DataProtocol",
+            "children": [
+              {
+                "kind": "TypeWitness",
+                "name": "Regions",
+                "printedName": "Regions",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "CollectionOfOne",
+                    "printedName": "Swift.CollectionOfOne<[Swift.UInt8]>",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Array",
+                        "printedName": "[Swift.UInt8]",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "UInt8",
+                            "printedName": "Swift.UInt8",
+                            "usr": "s:s5UInt8V"
+                          }
+                        ],
+                        "usr": "s:Sa"
+                      }
+                    ],
+                    "usr": "s:s15CollectionOfOneV"
+                  }
+                ]
+              }
+            ],
+            "usr": "s:10Foundation12DataProtocolP",
+            "mangledName": "$s10Foundation12DataProtocolP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "MutableDataProtocol",
+            "printedName": "MutableDataProtocol",
+            "usr": "s:10Foundation19MutableDataProtocolP",
+            "mangledName": "$s10Foundation19MutableDataProtocolP"
+          }
+        ]
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "UInt8",
+        "printedName": "UInt8",
+        "declKind": "Struct",
+        "usr": "s:s5UInt8V",
+        "mangledName": "$ss5UInt8V",
+        "moduleName": "Swift",
+        "declAttributes": [
+          "Frozen"
+        ],
+        "isExternal": true,
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "FixedWidthInteger",
+            "printedName": "FixedWidthInteger",
+            "usr": "s:s17FixedWidthIntegerP",
+            "mangledName": "$ss17FixedWidthIntegerP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "UnsignedInteger",
+            "printedName": "UnsignedInteger",
+            "usr": "s:SU",
+            "mangledName": "$sSU"
+          },
+          {
+            "kind": "Conformance",
+            "name": "_ExpressibleByBuiltinIntegerLiteral",
+            "printedName": "_ExpressibleByBuiltinIntegerLiteral",
+            "usr": "s:s35_ExpressibleByBuiltinIntegerLiteralP",
+            "mangledName": "$ss35_ExpressibleByBuiltinIntegerLiteralP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "BinaryInteger",
+            "printedName": "BinaryInteger",
+            "children": [
+              {
+                "kind": "TypeWitness",
+                "name": "Words",
+                "printedName": "Words",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Words",
+                    "printedName": "Swift.UInt8.Words",
+                    "usr": "s:s5UInt8V5WordsV"
+                  }
+                ]
+              }
+            ],
+            "usr": "s:Sz",
+            "mangledName": "$sSz"
+          },
+          {
+            "kind": "Conformance",
+            "name": "LosslessStringConvertible",
+            "printedName": "LosslessStringConvertible",
+            "usr": "s:s25LosslessStringConvertibleP",
+            "mangledName": "$ss25LosslessStringConvertibleP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "CustomStringConvertible",
+            "printedName": "CustomStringConvertible",
+            "usr": "s:s23CustomStringConvertibleP",
+            "mangledName": "$ss23CustomStringConvertibleP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Numeric",
+            "printedName": "Numeric",
+            "children": [
+              {
+                "kind": "TypeWitness",
+                "name": "Magnitude",
+                "printedName": "Magnitude",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "UInt8",
+                    "printedName": "Swift.UInt8",
+                    "usr": "s:s5UInt8V"
+                  }
+                ]
+              }
+            ],
+            "usr": "s:Sj",
+            "mangledName": "$sSj"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Strideable",
+            "printedName": "Strideable",
+            "children": [
+              {
+                "kind": "TypeWitness",
+                "name": "Stride",
+                "printedName": "Stride",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ]
+              }
+            ],
+            "usr": "s:Sx",
+            "mangledName": "$sSx"
+          },
+          {
+            "kind": "Conformance",
+            "name": "AdditiveArithmetic",
+            "printedName": "AdditiveArithmetic",
+            "usr": "s:s18AdditiveArithmeticP",
+            "mangledName": "$ss18AdditiveArithmeticP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "ExpressibleByIntegerLiteral",
+            "printedName": "ExpressibleByIntegerLiteral",
+            "children": [
+              {
+                "kind": "TypeWitness",
+                "name": "IntegerLiteralType",
+                "printedName": "IntegerLiteralType",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "UInt8",
+                    "printedName": "Swift.UInt8",
+                    "usr": "s:s5UInt8V"
+                  }
+                ]
+              }
+            ],
+            "usr": "s:s27ExpressibleByIntegerLiteralP",
+            "mangledName": "$ss27ExpressibleByIntegerLiteralP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Comparable",
+            "printedName": "Comparable",
+            "usr": "s:SL",
+            "mangledName": "$sSL"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Decodable",
+            "printedName": "Decodable",
+            "usr": "s:Se",
+            "mangledName": "$sSe"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Encodable",
+            "printedName": "Encodable",
+            "usr": "s:SE",
+            "mangledName": "$sSE"
+          },
+          {
+            "kind": "Conformance",
+            "name": "CustomReflectable",
+            "printedName": "CustomReflectable",
+            "usr": "s:s17CustomReflectableP",
+            "mangledName": "$ss17CustomReflectableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "_CustomPlaygroundQuickLookable",
+            "printedName": "_CustomPlaygroundQuickLookable",
+            "usr": "s:s30_CustomPlaygroundQuickLookableP",
+            "mangledName": "$ss30_CustomPlaygroundQuickLookableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "_StringElement",
+            "printedName": "_StringElement",
+            "usr": "s:s14_StringElementP",
+            "mangledName": "$ss14_StringElementP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "CVarArg",
+            "printedName": "CVarArg",
+            "usr": "s:s7CVarArgP",
+            "mangledName": "$ss7CVarArgP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Hashable",
+            "printedName": "Hashable",
+            "usr": "s:SH",
+            "mangledName": "$sSH"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Equatable",
+            "printedName": "Equatable",
+            "usr": "s:SQ",
+            "mangledName": "$sSQ"
+          },
+          {
+            "kind": "Conformance",
+            "name": "_HasCustomAnyHashableRepresentation",
+            "printedName": "_HasCustomAnyHashableRepresentation",
+            "usr": "s:s35_HasCustomAnyHashableRepresentationP",
+            "mangledName": "$ss35_HasCustomAnyHashableRepresentationP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Sendable",
+            "printedName": "Sendable",
+            "usr": "s:s8SendableP",
+            "mangledName": "$ss8SendableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "SIMDScalar",
+            "printedName": "SIMDScalar",
+            "children": [
+              {
+                "kind": "TypeWitness",
+                "name": "SIMDMaskScalar",
+                "printedName": "SIMDMaskScalar",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int8",
+                    "printedName": "Swift.Int8",
+                    "usr": "s:s4Int8V"
+                  }
+                ]
+              },
+              {
+                "kind": "TypeWitness",
+                "name": "SIMD2Storage",
+                "printedName": "SIMD2Storage",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "SIMD2Storage",
+                    "printedName": "Swift.UInt8.SIMD2Storage",
+                    "usr": "s:s5UInt8V12SIMD2StorageV"
+                  }
+                ]
+              },
+              {
+                "kind": "TypeWitness",
+                "name": "SIMD4Storage",
+                "printedName": "SIMD4Storage",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "SIMD4Storage",
+                    "printedName": "Swift.UInt8.SIMD4Storage",
+                    "usr": "s:s5UInt8V12SIMD4StorageV"
+                  }
+                ]
+              },
+              {
+                "kind": "TypeWitness",
+                "name": "SIMD8Storage",
+                "printedName": "SIMD8Storage",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "SIMD8Storage",
+                    "printedName": "Swift.UInt8.SIMD8Storage",
+                    "usr": "s:s5UInt8V12SIMD8StorageV"
+                  }
+                ]
+              },
+              {
+                "kind": "TypeWitness",
+                "name": "SIMD16Storage",
+                "printedName": "SIMD16Storage",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "SIMD16Storage",
+                    "printedName": "Swift.UInt8.SIMD16Storage",
+                    "usr": "s:s5UInt8V13SIMD16StorageV"
+                  }
+                ]
+              },
+              {
+                "kind": "TypeWitness",
+                "name": "SIMD32Storage",
+                "printedName": "SIMD32Storage",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "SIMD32Storage",
+                    "printedName": "Swift.UInt8.SIMD32Storage",
+                    "usr": "s:s5UInt8V13SIMD32StorageV"
+                  }
+                ]
+              },
+              {
+                "kind": "TypeWitness",
+                "name": "SIMD64Storage",
+                "printedName": "SIMD64Storage",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "SIMD64Storage",
+                    "printedName": "Swift.UInt8.SIMD64Storage",
+                    "usr": "s:s5UInt8V13SIMD64StorageV"
+                  }
+                ]
+              }
+            ],
+            "usr": "s:s10SIMDScalarP",
+            "mangledName": "$ss10SIMDScalarP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "BitwiseCopyable",
+            "printedName": "BitwiseCopyable",
+            "usr": "s:s15BitwiseCopyableP",
+            "mangledName": "$ss15BitwiseCopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "_FormatSpecifiable",
+            "printedName": "_FormatSpecifiable",
+            "children": [
+              {
+                "kind": "TypeWitness",
+                "name": "_Arg",
+                "printedName": "_Arg",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "UInt32",
+                    "printedName": "Swift.UInt32",
+                    "usr": "s:s6UInt32V"
+                  }
+                ]
+              }
+            ],
+            "usr": "s:10Foundation18_FormatSpecifiableP",
+            "mangledName": "$s10Foundation18_FormatSpecifiableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "_ObjectiveCBridgeable",
+            "printedName": "_ObjectiveCBridgeable",
+            "children": [
+              {
+                "kind": "TypeWitness",
+                "name": "_ObjectiveCType",
+                "printedName": "_ObjectiveCType",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "NSNumber",
+                    "printedName": "Foundation.NSNumber",
+                    "usr": "c:objc(cs)NSNumber"
+                  }
+                ]
+              }
+            ],
+            "usr": "s:s21_ObjectiveCBridgeableP",
+            "mangledName": "$ss21_ObjectiveCBridgeableP"
+          }
+        ]
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "Dictionary",
+        "printedName": "Dictionary",
+        "declKind": "Struct",
+        "usr": "s:SD",
+        "mangledName": "$sSD",
+        "moduleName": "Swift",
+        "genericSig": "<τ_0_0, τ_0_1 where τ_0_0 : Swift.Hashable>",
+        "sugared_genericSig": "<Key, Value where Key : Swift.Hashable>",
+        "declAttributes": [
+          "EagerMove",
+          "Frozen"
+        ],
+        "isExternal": true,
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Equatable",
+            "printedName": "Equatable",
+            "usr": "s:SQ",
+            "mangledName": "$sSQ"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Encodable",
+            "printedName": "Encodable",
+            "usr": "s:SE",
+            "mangledName": "$sSE"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Decodable",
+            "printedName": "Decodable",
+            "usr": "s:Se",
+            "mangledName": "$sSe"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Sequence",
+            "printedName": "Sequence",
+            "children": [
+              {
+                "kind": "TypeWitness",
+                "name": "Element",
+                "printedName": "Element",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Tuple",
+                    "printedName": "(key: τ_0_0, value: τ_0_1)",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "GenericTypeParam",
+                        "printedName": "τ_0_0"
+                      },
+                      {
+                        "kind": "TypeNominal",
+                        "name": "GenericTypeParam",
+                        "printedName": "τ_0_1"
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "kind": "TypeWitness",
+                "name": "Iterator",
+                "printedName": "Iterator",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Iterator",
+                    "printedName": "Swift.Dictionary<τ_0_0, τ_0_1>.Iterator",
+                    "usr": "s:SD8IteratorV"
+                  }
+                ]
+              }
+            ],
+            "usr": "s:ST",
+            "mangledName": "$sST"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Collection",
+            "printedName": "Collection",
+            "children": [
+              {
+                "kind": "TypeWitness",
+                "name": "Element",
+                "printedName": "Element",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Tuple",
+                    "printedName": "(key: τ_0_0, value: τ_0_1)",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "GenericTypeParam",
+                        "printedName": "τ_0_0"
+                      },
+                      {
+                        "kind": "TypeNominal",
+                        "name": "GenericTypeParam",
+                        "printedName": "τ_0_1"
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "kind": "TypeWitness",
+                "name": "Index",
+                "printedName": "Index",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Index",
+                    "printedName": "Swift.Dictionary<τ_0_0, τ_0_1>.Index",
+                    "usr": "s:SD5IndexV"
+                  }
+                ]
+              },
+              {
+                "kind": "TypeWitness",
+                "name": "Iterator",
+                "printedName": "Iterator",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Iterator",
+                    "printedName": "Swift.Dictionary<τ_0_0, τ_0_1>.Iterator",
+                    "usr": "s:SD8IteratorV"
+                  }
+                ]
+              },
+              {
+                "kind": "TypeWitness",
+                "name": "SubSequence",
+                "printedName": "SubSequence",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Slice",
+                    "printedName": "Swift.Slice<[τ_0_0 : τ_0_1]>",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Dictionary",
+                        "printedName": "[τ_0_0 : τ_0_1]",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "GenericTypeParam",
+                            "printedName": "τ_0_0"
+                          },
+                          {
+                            "kind": "TypeNominal",
+                            "name": "GenericTypeParam",
+                            "printedName": "τ_0_1"
+                          }
+                        ],
+                        "usr": "s:SD"
+                      }
+                    ],
+                    "usr": "s:s5SliceV"
+                  }
+                ]
+              },
+              {
+                "kind": "TypeWitness",
+                "name": "Indices",
+                "printedName": "Indices",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "DefaultIndices",
+                    "printedName": "Swift.DefaultIndices<[τ_0_0 : τ_0_1]>",
+                    "children": [
+                      {
+                        "kind": "TypeNominal",
+                        "name": "Dictionary",
+                        "printedName": "[τ_0_0 : τ_0_1]",
+                        "children": [
+                          {
+                            "kind": "TypeNominal",
+                            "name": "GenericTypeParam",
+                            "printedName": "τ_0_0"
+                          },
+                          {
+                            "kind": "TypeNominal",
+                            "name": "GenericTypeParam",
+                            "printedName": "τ_0_1"
+                          }
+                        ],
+                        "usr": "s:SD"
+                      }
+                    ],
+                    "usr": "s:SI"
+                  }
+                ]
+              }
+            ],
+            "usr": "s:Sl",
+            "mangledName": "$sSl"
+          },
+          {
+            "kind": "Conformance",
+            "name": "ExpressibleByDictionaryLiteral",
+            "printedName": "ExpressibleByDictionaryLiteral",
+            "children": [
+              {
+                "kind": "TypeWitness",
+                "name": "Key",
+                "printedName": "Key",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "GenericTypeParam",
+                    "printedName": "τ_0_0"
+                  }
+                ]
+              },
+              {
+                "kind": "TypeWitness",
+                "name": "Value",
+                "printedName": "Value",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "GenericTypeParam",
+                    "printedName": "τ_0_1"
+                  }
+                ]
+              }
+            ],
+            "usr": "s:s30ExpressibleByDictionaryLiteralP",
+            "mangledName": "$ss30ExpressibleByDictionaryLiteralP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Hashable",
+            "printedName": "Hashable",
+            "usr": "s:SH",
+            "mangledName": "$sSH"
+          },
+          {
+            "kind": "Conformance",
+            "name": "_HasCustomAnyHashableRepresentation",
+            "printedName": "_HasCustomAnyHashableRepresentation",
+            "usr": "s:s35_HasCustomAnyHashableRepresentationP",
+            "mangledName": "$ss35_HasCustomAnyHashableRepresentationP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "CustomStringConvertible",
+            "printedName": "CustomStringConvertible",
+            "usr": "s:s23CustomStringConvertibleP",
+            "mangledName": "$ss23CustomStringConvertibleP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "CustomDebugStringConvertible",
+            "printedName": "CustomDebugStringConvertible",
+            "usr": "s:s28CustomDebugStringConvertibleP",
+            "mangledName": "$ss28CustomDebugStringConvertibleP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "CustomReflectable",
+            "printedName": "CustomReflectable",
+            "usr": "s:s17CustomReflectableP",
+            "mangledName": "$ss17CustomReflectableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Sendable",
+            "printedName": "Sendable",
+            "usr": "s:s8SendableP",
+            "mangledName": "$ss8SendableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "_ObjectiveCBridgeable",
+            "printedName": "_ObjectiveCBridgeable",
+            "children": [
+              {
+                "kind": "TypeWitness",
+                "name": "_ObjectiveCType",
+                "printedName": "_ObjectiveCType",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "NSDictionary",
+                    "printedName": "Foundation.NSDictionary",
+                    "usr": "c:objc(cs)NSDictionary"
+                  }
+                ]
+              }
+            ],
+            "usr": "s:s21_ObjectiveCBridgeableP",
+            "mangledName": "$ss21_ObjectiveCBridgeableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "CVarArg",
+            "printedName": "CVarArg",
+            "usr": "s:s7CVarArgP",
+            "mangledName": "$ss7CVarArgP"
+          }
+        ]
+      },
+      {
+        "kind": "TypeDecl",
+        "name": "UInt32",
+        "printedName": "UInt32",
+        "declKind": "Struct",
+        "usr": "s:s6UInt32V",
+        "mangledName": "$ss6UInt32V",
+        "moduleName": "Swift",
+        "declAttributes": [
+          "Frozen"
+        ],
+        "isExternal": true,
+        "conformances": [
+          {
+            "kind": "Conformance",
+            "name": "FixedWidthInteger",
+            "printedName": "FixedWidthInteger",
+            "usr": "s:s17FixedWidthIntegerP",
+            "mangledName": "$ss17FixedWidthIntegerP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "UnsignedInteger",
+            "printedName": "UnsignedInteger",
+            "usr": "s:SU",
+            "mangledName": "$sSU"
+          },
+          {
+            "kind": "Conformance",
+            "name": "_ExpressibleByBuiltinIntegerLiteral",
+            "printedName": "_ExpressibleByBuiltinIntegerLiteral",
+            "usr": "s:s35_ExpressibleByBuiltinIntegerLiteralP",
+            "mangledName": "$ss35_ExpressibleByBuiltinIntegerLiteralP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "BinaryInteger",
+            "printedName": "BinaryInteger",
+            "children": [
+              {
+                "kind": "TypeWitness",
+                "name": "Words",
+                "printedName": "Words",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Words",
+                    "printedName": "Swift.UInt32.Words",
+                    "usr": "s:s6UInt32V5WordsV"
+                  }
+                ]
+              }
+            ],
+            "usr": "s:Sz",
+            "mangledName": "$sSz"
+          },
+          {
+            "kind": "Conformance",
+            "name": "LosslessStringConvertible",
+            "printedName": "LosslessStringConvertible",
+            "usr": "s:s25LosslessStringConvertibleP",
+            "mangledName": "$ss25LosslessStringConvertibleP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "CustomStringConvertible",
+            "printedName": "CustomStringConvertible",
+            "usr": "s:s23CustomStringConvertibleP",
+            "mangledName": "$ss23CustomStringConvertibleP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Numeric",
+            "printedName": "Numeric",
+            "children": [
+              {
+                "kind": "TypeWitness",
+                "name": "Magnitude",
+                "printedName": "Magnitude",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "UInt32",
+                    "printedName": "Swift.UInt32",
+                    "usr": "s:s6UInt32V"
+                  }
+                ]
+              }
+            ],
+            "usr": "s:Sj",
+            "mangledName": "$sSj"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Strideable",
+            "printedName": "Strideable",
+            "children": [
+              {
+                "kind": "TypeWitness",
+                "name": "Stride",
+                "printedName": "Stride",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int",
+                    "printedName": "Swift.Int",
+                    "usr": "s:Si"
+                  }
+                ]
+              }
+            ],
+            "usr": "s:Sx",
+            "mangledName": "$sSx"
+          },
+          {
+            "kind": "Conformance",
+            "name": "AdditiveArithmetic",
+            "printedName": "AdditiveArithmetic",
+            "usr": "s:s18AdditiveArithmeticP",
+            "mangledName": "$ss18AdditiveArithmeticP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "ExpressibleByIntegerLiteral",
+            "printedName": "ExpressibleByIntegerLiteral",
+            "children": [
+              {
+                "kind": "TypeWitness",
+                "name": "IntegerLiteralType",
+                "printedName": "IntegerLiteralType",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "UInt32",
+                    "printedName": "Swift.UInt32",
+                    "usr": "s:s6UInt32V"
+                  }
+                ]
+              }
+            ],
+            "usr": "s:s27ExpressibleByIntegerLiteralP",
+            "mangledName": "$ss27ExpressibleByIntegerLiteralP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Comparable",
+            "printedName": "Comparable",
+            "usr": "s:SL",
+            "mangledName": "$sSL"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Copyable",
+            "printedName": "Copyable",
+            "usr": "s:s8CopyableP",
+            "mangledName": "$ss8CopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Escapable",
+            "printedName": "Escapable",
+            "usr": "s:s9EscapableP",
+            "mangledName": "$ss9EscapableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Decodable",
+            "printedName": "Decodable",
+            "usr": "s:Se",
+            "mangledName": "$sSe"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Encodable",
+            "printedName": "Encodable",
+            "usr": "s:SE",
+            "mangledName": "$sSE"
+          },
+          {
+            "kind": "Conformance",
+            "name": "CustomReflectable",
+            "printedName": "CustomReflectable",
+            "usr": "s:s17CustomReflectableP",
+            "mangledName": "$ss17CustomReflectableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "_CustomPlaygroundQuickLookable",
+            "printedName": "_CustomPlaygroundQuickLookable",
+            "usr": "s:s30_CustomPlaygroundQuickLookableP",
+            "mangledName": "$ss30_CustomPlaygroundQuickLookableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "CVarArg",
+            "printedName": "CVarArg",
+            "usr": "s:s7CVarArgP",
+            "mangledName": "$ss7CVarArgP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Hashable",
+            "printedName": "Hashable",
+            "usr": "s:SH",
+            "mangledName": "$sSH"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Equatable",
+            "printedName": "Equatable",
+            "usr": "s:SQ",
+            "mangledName": "$sSQ"
+          },
+          {
+            "kind": "Conformance",
+            "name": "_HasCustomAnyHashableRepresentation",
+            "printedName": "_HasCustomAnyHashableRepresentation",
+            "usr": "s:s35_HasCustomAnyHashableRepresentationP",
+            "mangledName": "$ss35_HasCustomAnyHashableRepresentationP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "Sendable",
+            "printedName": "Sendable",
+            "usr": "s:s8SendableP",
+            "mangledName": "$ss8SendableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "SIMDScalar",
+            "printedName": "SIMDScalar",
+            "children": [
+              {
+                "kind": "TypeWitness",
+                "name": "SIMDMaskScalar",
+                "printedName": "SIMDMaskScalar",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "Int32",
+                    "printedName": "Swift.Int32",
+                    "usr": "s:s5Int32V"
+                  }
+                ]
+              },
+              {
+                "kind": "TypeWitness",
+                "name": "SIMD2Storage",
+                "printedName": "SIMD2Storage",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "SIMD2Storage",
+                    "printedName": "Swift.UInt32.SIMD2Storage",
+                    "usr": "s:s6UInt32V12SIMD2StorageV"
+                  }
+                ]
+              },
+              {
+                "kind": "TypeWitness",
+                "name": "SIMD4Storage",
+                "printedName": "SIMD4Storage",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "SIMD4Storage",
+                    "printedName": "Swift.UInt32.SIMD4Storage",
+                    "usr": "s:s6UInt32V12SIMD4StorageV"
+                  }
+                ]
+              },
+              {
+                "kind": "TypeWitness",
+                "name": "SIMD8Storage",
+                "printedName": "SIMD8Storage",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "SIMD8Storage",
+                    "printedName": "Swift.UInt32.SIMD8Storage",
+                    "usr": "s:s6UInt32V12SIMD8StorageV"
+                  }
+                ]
+              },
+              {
+                "kind": "TypeWitness",
+                "name": "SIMD16Storage",
+                "printedName": "SIMD16Storage",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "SIMD16Storage",
+                    "printedName": "Swift.UInt32.SIMD16Storage",
+                    "usr": "s:s6UInt32V13SIMD16StorageV"
+                  }
+                ]
+              },
+              {
+                "kind": "TypeWitness",
+                "name": "SIMD32Storage",
+                "printedName": "SIMD32Storage",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "SIMD32Storage",
+                    "printedName": "Swift.UInt32.SIMD32Storage",
+                    "usr": "s:s6UInt32V13SIMD32StorageV"
+                  }
+                ]
+              },
+              {
+                "kind": "TypeWitness",
+                "name": "SIMD64Storage",
+                "printedName": "SIMD64Storage",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "SIMD64Storage",
+                    "printedName": "Swift.UInt32.SIMD64Storage",
+                    "usr": "s:s6UInt32V13SIMD64StorageV"
+                  }
+                ]
+              }
+            ],
+            "usr": "s:s10SIMDScalarP",
+            "mangledName": "$ss10SIMDScalarP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "BitwiseCopyable",
+            "printedName": "BitwiseCopyable",
+            "usr": "s:s15BitwiseCopyableP",
+            "mangledName": "$ss15BitwiseCopyableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "_FormatSpecifiable",
+            "printedName": "_FormatSpecifiable",
+            "children": [
+              {
+                "kind": "TypeWitness",
+                "name": "_Arg",
+                "printedName": "_Arg",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "UInt32",
+                    "printedName": "Swift.UInt32",
+                    "usr": "s:s6UInt32V"
+                  }
+                ]
+              }
+            ],
+            "usr": "s:10Foundation18_FormatSpecifiableP",
+            "mangledName": "$s10Foundation18_FormatSpecifiableP"
+          },
+          {
+            "kind": "Conformance",
+            "name": "_ObjectiveCBridgeable",
+            "printedName": "_ObjectiveCBridgeable",
+            "children": [
+              {
+                "kind": "TypeWitness",
+                "name": "_ObjectiveCType",
+                "printedName": "_ObjectiveCType",
+                "children": [
+                  {
+                    "kind": "TypeNominal",
+                    "name": "NSNumber",
+                    "printedName": "Foundation.NSNumber",
+                    "usr": "c:objc(cs)NSNumber"
+                  }
+                ]
+              }
+            ],
+            "usr": "s:s21_ObjectiveCBridgeableP",
+            "mangledName": "$ss21_ObjectiveCBridgeableP"
+          }
+        ]
+      }
+    ],
+    "json_format_version": 8
+  },
+  "ConstValues": [
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/BlockMode\/OCB.swift",
+      "kind": "IntegerLiteral",
+      "offset": 2229,
+      "length": 2,
+      "value": "16"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/BlockMode\/OCB.swift",
+      "kind": "IntegerLiteral",
+      "offset": 3742,
+      "length": 2,
+      "value": "16"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CMAC.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1091,
+      "length": 2,
+      "value": "16"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CMAC.swift",
+      "kind": "Array",
+      "offset": 1137,
+      "length": 96,
+      "value": "[0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CMAC.swift",
+      "kind": "Array",
+      "offset": 1274,
+      "length": 96,
+      "value": "[0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSAuth.swift",
+      "kind": "BooleanLiteral",
+      "offset": 440,
+      "length": 5,
+      "value": "false"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSAuth.swift",
+      "kind": "StringLiteral",
+      "offset": 473,
+      "length": 2,
+      "value": "\"\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/ASN1\/ASN1Scanner.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1226,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/ASN1\/ASN1.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1498,
+      "length": 4,
+      "value": "0x30"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/ASN1\/ASN1.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1523,
+      "length": 4,
+      "value": "0x02"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/ASN1\/ASN1.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1548,
+      "length": 4,
+      "value": "0x06"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/ASN1\/ASN1.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1569,
+      "length": 4,
+      "value": "0x05"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/ASN1\/ASN1.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1595,
+      "length": 4,
+      "value": "0x03"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/ASN1\/ASN1.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1623,
+      "length": 4,
+      "value": "0x04"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/MSTool.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1650,
+      "length": 2,
+      "value": "16"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/MSTool.swift",
+      "kind": "IntegerLiteral",
+      "offset": 2084,
+      "length": 2,
+      "value": "16"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 311,
+      "length": 6,
+      "value": "0x2000"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1970,
+      "length": 3,
+      "value": "0x0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1982,
+      "length": 3,
+      "value": "0x1"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1996,
+      "length": 3,
+      "value": "0x2"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 2009,
+      "length": 3,
+      "value": "0x8"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 2021,
+      "length": 3,
+      "value": "0x9"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 2033,
+      "length": 3,
+      "value": "0xA"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 4702,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 4777,
+      "length": 1,
+      "value": "1"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 4851,
+      "length": 1,
+      "value": "2"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 4927,
+      "length": 1,
+      "value": "3"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 5431,
+      "length": 2,
+      "value": "15"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "BooleanLiteral",
+      "offset": 5693,
+      "length": 5,
+      "value": "false"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "BooleanLiteral",
+      "offset": 5764,
+      "length": 5,
+      "value": "false"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 6054,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "StringLiteral",
+      "offset": 6941,
+      "length": 20,
+      "value": "\"streamStatus.atEnd\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "StringLiteral",
+      "offset": 6991,
+      "length": 60,
+      "value": "\"The operation couldn’t be completed. Operation timed out\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 7099,
+      "length": 2,
+      "value": "30"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "StringLiteral",
+      "offset": 8663,
+      "length": 2,
+      "value": "\"\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 8691,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 8746,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 8815,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 8863,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "BooleanLiteral",
+      "offset": 11798,
+      "length": 5,
+      "value": "false"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 11913,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "BooleanLiteral",
+      "offset": 11935,
+      "length": 4,
+      "value": "true"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 14299,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 14336,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 14428,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 14466,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 14690,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 14724,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 14761,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 14812,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "Array",
+      "offset": 14900,
+      "length": 24,
+      "value": "[0x00, 0x00, 0xFF, 0xFF]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 16974,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 16995,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "Array",
+      "offset": 19373,
+      "length": 2,
+      "value": "[]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 19545,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 19580,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 19616,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 19699,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 19733,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 19768,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "BooleanLiteral",
+      "offset": 19845,
+      "length": 5,
+      "value": "false"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "StringLiteral",
+      "offset": 19961,
+      "length": 2,
+      "value": "\"\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "BooleanLiteral",
+      "offset": 20040,
+      "length": 5,
+      "value": "false"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 20311,
+      "length": 2,
+      "value": "-1"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "Array",
+      "offset": 22227,
+      "length": 2,
+      "value": "[]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "Array",
+      "offset": 22778,
+      "length": 2,
+      "value": "[]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "BooleanLiteral",
+      "offset": 22796,
+      "length": 5,
+      "value": "false"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 23356,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 23515,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 24870,
+      "length": 12,
+      "value": "1"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 24896,
+      "length": 12,
+      "value": "2"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 24922,
+      "length": 9,
+      "value": "3"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 24945,
+      "length": 3,
+      "value": "4"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "BooleanLiteral",
+      "offset": 25055,
+      "length": 5,
+      "value": "false"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 25088,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "StringLiteral",
+      "offset": 25113,
+      "length": 2,
+      "value": "\"\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "BooleanLiteral",
+      "offset": 25137,
+      "length": 5,
+      "value": "false"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "BooleanLiteral",
+      "offset": 25164,
+      "length": 5,
+      "value": "false"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "BooleanLiteral",
+      "offset": 25213,
+      "length": 5,
+      "value": "false"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "BooleanLiteral",
+      "offset": 25234,
+      "length": 4,
+      "value": "true"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "BooleanLiteral",
+      "offset": 25404,
+      "length": 5,
+      "value": "false"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "BooleanLiteral",
+      "offset": 29321,
+      "length": 4,
+      "value": "true"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "BooleanLiteral",
+      "offset": 29443,
+      "length": 4,
+      "value": "true"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 30013,
+      "length": 4,
+      "value": "1006"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "StringLiteral",
+      "offset": 30027,
+      "length": 18,
+      "value": "\"Abnormal Closure\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "BooleanLiteral",
+      "offset": 30083,
+      "length": 4,
+      "value": "true"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 30248,
+      "length": 4,
+      "value": "1002"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "StringLiteral",
+      "offset": 30262,
+      "length": 16,
+      "value": "\"Protocol error\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 30368,
+      "length": 4,
+      "value": "1007"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "StringLiteral",
+      "offset": 30382,
+      "length": 15,
+      "value": "\"Payload error\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 30576,
+      "length": 4,
+      "value": "1006"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "StringLiteral",
+      "offset": 30590,
+      "length": 18,
+      "value": "\"Abnormal Closure\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 30710,
+      "length": 4,
+      "value": "1007"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 30994,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "BooleanLiteral",
+      "offset": 34087,
+      "length": 5,
+      "value": "false"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "BooleanLiteral",
+      "offset": 34153,
+      "length": 5,
+      "value": "false"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "BooleanLiteral",
+      "offset": 46725,
+      "length": 5,
+      "value": "false"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 46759,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "BooleanLiteral",
+      "offset": 46788,
+      "length": 5,
+      "value": "false"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 46817,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "BooleanLiteral",
+      "offset": 46842,
+      "length": 5,
+      "value": "false"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 47039,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 47071,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 47109,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 53322,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 53332,
+      "length": 4,
+      "value": "0xFF"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 55966,
+      "length": 4,
+      "value": "1000"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "StringLiteral",
+      "offset": 55990,
+      "length": 16,
+      "value": "\"Normal Closure\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "StringLiteral",
+      "offset": 58312,
+      "length": 24,
+      "value": "\"SwiftWebSocketInstance\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "Array",
+      "offset": 58350,
+      "length": 2,
+      "value": "[]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 58502,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "Array",
+      "offset": 62671,
+      "length": 2,
+      "value": "[]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "Array",
+      "offset": 66458,
+      "length": 2,
+      "value": "[]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "IntegerLiteral",
+      "offset": 67397,
+      "length": 4,
+      "value": "1000"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/SwiftWebSocket.swift",
+      "kind": "StringLiteral",
+      "offset": 67421,
+      "length": 16,
+      "value": "\"Normal Closure\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/Poly1305.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1418,
+      "length": 2,
+      "value": "16"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/String+Extension.swift",
+      "kind": "BooleanLiteral",
+      "offset": 1771,
+      "length": 4,
+      "value": "true"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/String+Extension.swift",
+      "kind": "BooleanLiteral",
+      "offset": 1930,
+      "length": 4,
+      "value": "true"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/Blowfish.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1364,
+      "length": 1,
+      "value": "8"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/Blowfish.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1584,
+      "length": 2,
+      "value": "16"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/Blowfish.swift",
+      "kind": "Array",
+      "offset": 1703,
+      "length": 236,
+      "value": "[0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344, 0xa4093822, 0x299f31d0, 0x082efa98, 0xec4e6c89, 0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c, 0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917, 0x9216d5d9, 0x8979fb1b]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/Blowfish.swift",
+      "kind": "Array",
+      "offset": 1985,
+      "length": 13876,
+      "value": "[[0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7, 0xb8e1afed, 0x6a267e96, 0xba7c9045, 0xf12c7f99, 0x24a19947, 0xb3916cf7, 0x0801f2e2, 0x858efc16, 0x636920d8, 0x71574e69, 0xa458fea3, 0xf4933d7e, 0x0d95748f, 0x728eb658, 0x718bcd58, 0x82154aee, 0x7b54a41d, 0xc25a59b5, 0x9c30d539, 0x2af26013, 0xc5d1b023, 0x286085f0, 0xca417918, 0xb8db38ef, 0x8e79dcb0, 0x603a180e, 0x6c9e0e8b, 0xb01e8a3e, 0xd71577c1, 0xbd314b27, 0x78af2fda, 0x55605c60, 0xe65525f3, 0xaa55ab94, 0x57489862, 0x63e81440, 0x55ca396a, 0x2aab10b6, 0xb4cc5c34, 0x1141e8ce, 0xa15486af, 0x7c72e993, 0xb3ee1411, 0x636fbc2a, 0x2ba9c55d, 0x741831f6, 0xce5c3e16, 0x9b87931e, 0xafd6ba33, 0x6c24cf5c, 0x7a325381, 0x28958677, 0x3b8f4898, 0x6b4bb9af, 0xc4bfe81b, 0x66282193, 0x61d809cc, 0xfb21a991, 0x487cac60, 0x5dec8032, 0xef845d5d, 0xe98575b1, 0xdc262302, 0xeb651b88, 0x23893e81, 0xd396acc5, 0x0f6d6ff3, 0x83f44239, 0x2e0b4482, 0xa4842004, 0x69c8f04a, 0x9e1f9b5e, 0x21c66842, 0xf6e96c9a, 0x670c9c61, 0xabd388f0, 0x6a51a0d2, 0xd8542f68, 0x960fa728, 0xab5133a3, 0x6eef0b6c, 0x137a3be4, 0xba3bf050, 0x7efb2a98, 0xa1f1651d, 0x39af0176, 0x66ca593e, 0x82430e88, 0x8cee8619, 0x456f9fb4, 0x7d84a5c3, 0x3b8b5ebe, 0xe06f75d8, 0x85c12073, 0x401a449f, 0x56c16aa6, 0x4ed3aa62, 0x363f7706, 0x1bfedf72, 0x429b023d, 0x37d0d724, 0xd00a1248, 0xdb0fead3, 0x49f1c09b, 0x075372c9, 0x80991b7b, 0x25d479d8, 0xf6e8def7, 0xe3fe501a, 0xb6794c3b, 0x976ce0bd, 0x04c006ba, 0xc1a94fb6, 0x409f60c4, 0x5e5c9ec2, 0x196a2463, 0x68fb6faf, 0x3e6c53b5, 0x1339b2eb, 0x3b52ec6f, 0x6dfc511f, 0x9b30952c, 0xcc814544, 0xaf5ebd09, 0xbee3d004, 0xde334afd, 0x660f2807, 0x192e4bb3, 0xc0cba857, 0x45c8740f, 0xd20b5f39, 0xb9d3fbdb, 0x5579c0bd, 0x1a60320a, 0xd6a100c6, 0x402c7279, 0x679f25fe, 0xfb1fa3cc, 0x8ea5e9f8, 0xdb3222f8, 0x3c7516df, 0xfd616b15, 0x2f501ec8, 0xad0552ab, 0x323db5fa, 0xfd238760, 0x53317b48, 0x3e00df82, 0x9e5c57bb, 0xca6f8ca0, 0x1a87562e, 0xdf1769db, 0xd542a8f6, 0x287effc3, 0xac6732c6, 0x8c4f5573, 0x695b27b0, 0xbbca58c8, 0xe1ffa35d, 0xb8f011a0, 0x10fa3d98, 0xfd2183b8, 0x4afcb56c, 0x2dd1d35b, 0x9a53e479, 0xb6f84565, 0xd28e49bc, 0x4bfb9790, 0xe1ddf2da, 0xa4cb7e33, 0x62fb1341, 0xcee4c6e8, 0xef20cada, 0x36774c01, 0xd07e9efe, 0x2bf11fb4, 0x95dbda4d, 0xae909198, 0xeaad8e71, 0x6b93d5a0, 0xd08ed1d0, 0xafc725e0, 0x8e3c5b2f, 0x8e7594b7, 0x8ff6e2fb, 0xf2122b64, 0x8888b812, 0x900df01c, 0x4fad5ea0, 0x688fc31c, 0xd1cff191, 0xb3a8c1ad, 0x2f2f2218, 0xbe0e1777, 0xea752dfe, 0x8b021fa1, 0xe5a0cc0f, 0xb56f74e8, 0x18acf3d6, 0xce89e299, 0xb4a84fe0, 0xfd13e0b7, 0x7cc43b81, 0xd2ada8d9, 0x165fa266, 0x80957705, 0x93cc7314, 0x211a1477, 0xe6ad2065, 0x77b5fa86, 0xc75442f5, 0xfb9d35cf, 0xebcdaf0c, 0x7b3e89a0, 0xd6411bd3, 0xae1e7e49, 0x00250e2d, 0x2071b35e, 0x226800bb, 0x57b8e0af, 0x2464369b, 0xf009b91e, 0x5563911d, 0x59dfa6aa, 0x78c14389, 0xd95a537f, 0x207d5ba2, 0x02e5b9c5, 0x83260376, 0x6295cfa9, 0x11c81968, 0x4e734a41, 0xb3472dca, 0x7b14a94a, 0x1b510052, 0x9a532915, 0xd60f573f, 0xbc9bc6e4, 0x2b60a476, 0x81e67400, 0x08ba6fb5, 0x571be91f, 0xf296ec6b, 0x2a0dd915, 0xb6636521, 0xe7b9f9b6, 0xff34052e, 0xc5855664, 0x53b02d5d, 0xa99f8fa1, 0x08ba4799, 0x6e85076a], [0x4b7a70e9, 0xb5b32944, 0xdb75092e, 0xc4192623, 0xad6ea6b0, 0x49a7df7d, 0x9cee60b8, 0x8fedb266, 0xecaa8c71, 0x699a17ff, 0x5664526c, 0xc2b19ee1, 0x193602a5, 0x75094c29, 0xa0591340, 0xe4183a3e, 0x3f54989a, 0x5b429d65, 0x6b8fe4d6, 0x99f73fd6, 0xa1d29c07, 0xefe830f5, 0x4d2d38e6, 0xf0255dc1, 0x4cdd2086, 0x8470eb26, 0x6382e9c6, 0x021ecc5e, 0x09686b3f, 0x3ebaefc9, 0x3c971814, 0x6b6a70a1, 0x687f3584, 0x52a0e286, 0xb79c5305, 0xaa500737, 0x3e07841c, 0x7fdeae5c, 0x8e7d44ec, 0x5716f2b8, 0xb03ada37, 0xf0500c0d, 0xf01c1f04, 0x0200b3ff, 0xae0cf51a, 0x3cb574b2, 0x25837a58, 0xdc0921bd, 0xd19113f9, 0x7ca92ff6, 0x94324773, 0x22f54701, 0x3ae5e581, 0x37c2dadc, 0xc8b57634, 0x9af3dda7, 0xa9446146, 0x0fd0030e, 0xecc8c73e, 0xa4751e41, 0xe238cd99, 0x3bea0e2f, 0x3280bba1, 0x183eb331, 0x4e548b38, 0x4f6db908, 0x6f420d03, 0xf60a04bf, 0x2cb81290, 0x24977c79, 0x5679b072, 0xbcaf89af, 0xde9a771f, 0xd9930810, 0xb38bae12, 0xdccf3f2e, 0x5512721f, 0x2e6b7124, 0x501adde6, 0x9f84cd87, 0x7a584718, 0x7408da17, 0xbc9f9abc, 0xe94b7d8c, 0xec7aec3a, 0xdb851dfa, 0x63094366, 0xc464c3d2, 0xef1c1847, 0x3215d908, 0xdd433b37, 0x24c2ba16, 0x12a14d43, 0x2a65c451, 0x50940002, 0x133ae4dd, 0x71dff89e, 0x10314e55, 0x81ac77d6, 0x5f11199b, 0x043556f1, 0xd7a3c76b, 0x3c11183b, 0x5924a509, 0xf28fe6ed, 0x97f1fbfa, 0x9ebabf2c, 0x1e153c6e, 0x86e34570, 0xeae96fb1, 0x860e5e0a, 0x5a3e2ab3, 0x771fe71c, 0x4e3d06fa, 0x2965dcb9, 0x99e71d0f, 0x803e89d6, 0x5266c825, 0x2e4cc978, 0x9c10b36a, 0xc6150eba, 0x94e2ea78, 0xa5fc3c53, 0x1e0a2df4, 0xf2f74ea7, 0x361d2b3d, 0x1939260f, 0x19c27960, 0x5223a708, 0xf71312b6, 0xebadfe6e, 0xeac31f66, 0xe3bc4595, 0xa67bc883, 0xb17f37d1, 0x018cff28, 0xc332ddef, 0xbe6c5aa5, 0x65582185, 0x68ab9802, 0xeecea50f, 0xdb2f953b, 0x2aef7dad, 0x5b6e2f84, 0x1521b628, 0x29076170, 0xecdd4775, 0x619f1510, 0x13cca830, 0xeb61bd96, 0x0334fe1e, 0xaa0363cf, 0xb5735c90, 0x4c70a239, 0xd59e9e0b, 0xcbaade14, 0xeecc86bc, 0x60622ca7, 0x9cab5cab, 0xb2f3846e, 0x648b1eaf, 0x19bdf0ca, 0xa02369b9, 0x655abb50, 0x40685a32, 0x3c2ab4b3, 0x319ee9d5, 0xc021b8f7, 0x9b540b19, 0x875fa099, 0x95f7997e, 0x623d7da8, 0xf837889a, 0x97e32d77, 0x11ed935f, 0x16681281, 0x0e358829, 0xc7e61fd6, 0x96dedfa1, 0x7858ba99, 0x57f584a5, 0x1b227263, 0x9b83c3ff, 0x1ac24696, 0xcdb30aeb, 0x532e3054, 0x8fd948e4, 0x6dbc3128, 0x58ebf2ef, 0x34c6ffea, 0xfe28ed61, 0xee7c3c73, 0x5d4a14d9, 0xe864b7e3, 0x42105d14, 0x203e13e0, 0x45eee2b6, 0xa3aaabea, 0xdb6c4f15, 0xfacb4fd0, 0xc742f442, 0xef6abbb5, 0x654f3b1d, 0x41cd2105, 0xd81e799e, 0x86854dc7, 0xe44b476a, 0x3d816250, 0xcf62a1f2, 0x5b8d2646, 0xfc8883a0, 0xc1c7b6a3, 0x7f1524c3, 0x69cb7492, 0x47848a0b, 0x5692b285, 0x095bbf00, 0xad19489d, 0x1462b174, 0x23820e00, 0x58428d2a, 0x0c55f5ea, 0x1dadf43e, 0x233f7061, 0x3372f092, 0x8d937e41, 0xd65fecf1, 0x6c223bdb, 0x7cde3759, 0xcbee7460, 0x4085f2a7, 0xce77326e, 0xa6078084, 0x19f8509e, 0xe8efd855, 0x61d99735, 0xa969a7aa, 0xc50c06c2, 0x5a04abfc, 0x800bcadc, 0x9e447a2e, 0xc3453484, 0xfdd56705, 0x0e1e9ec9, 0xdb73dbd3, 0x105588cd, 0x675fda79, 0xe3674340, 0xc5c43465, 0x713e38d8, 0x3d28f89e, 0xf16dff20, 0x153e21e7, 0x8fb03d4a, 0xe6e39f2b, 0xdb83adf7], [0xe93d5a68, 0x948140f7, 0xf64c261c, 0x94692934, 0x411520f7, 0x7602d4f7, 0xbcf46b2e, 0xd4a20068, 0xd4082471, 0x3320f46a, 0x43b7d4b7, 0x500061af, 0x1e39f62e, 0x97244546, 0x14214f74, 0xbf8b8840, 0x4d95fc1d, 0x96b591af, 0x70f4ddd3, 0x66a02f45, 0xbfbc09ec, 0x03bd9785, 0x7fac6dd0, 0x31cb8504, 0x96eb27b3, 0x55fd3941, 0xda2547e6, 0xabca0a9a, 0x28507825, 0x530429f4, 0x0a2c86da, 0xe9b66dfb, 0x68dc1462, 0xd7486900, 0x680ec0a4, 0x27a18dee, 0x4f3ffea2, 0xe887ad8c, 0xb58ce006, 0x7af4d6b6, 0xaace1e7c, 0xd3375fec, 0xce78a399, 0x406b2a42, 0x20fe9e35, 0xd9f385b9, 0xee39d7ab, 0x3b124e8b, 0x1dc9faf7, 0x4b6d1856, 0x26a36631, 0xeae397b2, 0x3a6efa74, 0xdd5b4332, 0x6841e7f7, 0xca7820fb, 0xfb0af54e, 0xd8feb397, 0x454056ac, 0xba489527, 0x55533a3a, 0x20838d87, 0xfe6ba9b7, 0xd096954b, 0x55a867bc, 0xa1159a58, 0xcca92963, 0x99e1db33, 0xa62a4a56, 0x3f3125f9, 0x5ef47e1c, 0x9029317c, 0xfdf8e802, 0x04272f70, 0x80bb155c, 0x05282ce3, 0x95c11548, 0xe4c66d22, 0x48c1133f, 0xc70f86dc, 0x07f9c9ee, 0x41041f0f, 0x404779a4, 0x5d886e17, 0x325f51eb, 0xd59bc0d1, 0xf2bcc18f, 0x41113564, 0x257b7834, 0x602a9c60, 0xdff8e8a3, 0x1f636c1b, 0x0e12b4c2, 0x02e1329e, 0xaf664fd1, 0xcad18115, 0x6b2395e0, 0x333e92e1, 0x3b240b62, 0xeebeb922, 0x85b2a20e, 0xe6ba0d99, 0xde720c8c, 0x2da2f728, 0xd0127845, 0x95b794fd, 0x647d0862, 0xe7ccf5f0, 0x5449a36f, 0x877d48fa, 0xc39dfd27, 0xf33e8d1e, 0x0a476341, 0x992eff74, 0x3a6f6eab, 0xf4f8fd37, 0xa812dc60, 0xa1ebddf8, 0x991be14c, 0xdb6e6b0d, 0xc67b5510, 0x6d672c37, 0x2765d43b, 0xdcd0e804, 0xf1290dc7, 0xcc00ffa3, 0xb5390f92, 0x690fed0b, 0x667b9ffb, 0xcedb7d9c, 0xa091cf0b, 0xd9155ea3, 0xbb132f88, 0x515bad24, 0x7b9479bf, 0x763bd6eb, 0x37392eb3, 0xcc115979, 0x8026e297, 0xf42e312d, 0x6842ada7, 0xc66a2b3b, 0x12754ccc, 0x782ef11c, 0x6a124237, 0xb79251e7, 0x06a1bbe6, 0x4bfb6350, 0x1a6b1018, 0x11caedfa, 0x3d25bdd8, 0xe2e1c3c9, 0x44421659, 0x0a121386, 0xd90cec6e, 0xd5abea2a, 0x64af674e, 0xda86a85f, 0xbebfe988, 0x64e4c3fe, 0x9dbc8057, 0xf0f7c086, 0x60787bf8, 0x6003604d, 0xd1fd8346, 0xf6381fb0, 0x7745ae04, 0xd736fccc, 0x83426b33, 0xf01eab71, 0xb0804187, 0x3c005e5f, 0x77a057be, 0xbde8ae24, 0x55464299, 0xbf582e61, 0x4e58f48f, 0xf2ddfda2, 0xf474ef38, 0x8789bdc2, 0x5366f9c3, 0xc8b38e74, 0xb475f255, 0x46fcd9b9, 0x7aeb2661, 0x8b1ddf84, 0x846a0e79, 0x915f95e2, 0x466e598e, 0x20b45770, 0x8cd55591, 0xc902de4c, 0xb90bace1, 0xbb8205d0, 0x11a86248, 0x7574a99e, 0xb77f19b6, 0xe0a9dc09, 0x662d09a1, 0xc4324633, 0xe85a1f02, 0x09f0be8c, 0x4a99a025, 0x1d6efe10, 0x1ab93d1d, 0x0ba5a4df, 0xa186f20f, 0x2868f169, 0xdcb7da83, 0x573906fe, 0xa1e2ce9b, 0x4fcd7f52, 0x50115e01, 0xa70683fa, 0xa002b5c4, 0x0de6d027, 0x9af88c27, 0x773f8641, 0xc3604c06, 0x61a806b5, 0xf0177a28, 0xc0f586e0, 0x006058aa, 0x30dc7d62, 0x11e69ed7, 0x2338ea63, 0x53c2dd94, 0xc2c21634, 0xbbcbee56, 0x90bcb6de, 0xebfc7da1, 0xce591d76, 0x6f05e409, 0x4b7c0188, 0x39720a3d, 0x7c927c24, 0x86e3725f, 0x724d9db9, 0x1ac15bb4, 0xd39eb8fc, 0xed545578, 0x08fca5b5, 0xd83d7cd3, 0x4dad0fc4, 0x1e50ef5e, 0xb161e6f8, 0xa28514d9, 0x6c51133c, 0x6fd5c7e7, 0x56e14ec4, 0x362abfce, 0xddc6c837, 0xd79a3234, 0x92638212, 0x670efa8e, 0x406000e0], [0x3a39ce37, 0xd3faf5cf, 0xabc27737, 0x5ac52d1b, 0x5cb0679e, 0x4fa33742, 0xd3822740, 0x99bc9bbe, 0xd5118e9d, 0xbf0f7315, 0xd62d1c7e, 0xc700c47b, 0xb78c1b6b, 0x21a19045, 0xb26eb1be, 0x6a366eb4, 0x5748ab2f, 0xbc946e79, 0xc6a376d2, 0x6549c2c8, 0x530ff8ee, 0x468dde7d, 0xd5730a1d, 0x4cd04dc6, 0x2939bbdb, 0xa9ba4650, 0xac9526e8, 0xbe5ee304, 0xa1fad5f0, 0x6a2d519a, 0x63ef8ce2, 0x9a86ee22, 0xc089c2b8, 0x43242ef6, 0xa51e03aa, 0x9cf2d0a4, 0x83c061ba, 0x9be96a4d, 0x8fe51550, 0xba645bd6, 0x2826a2f9, 0xa73a3ae1, 0x4ba99586, 0xef5562e9, 0xc72fefd3, 0xf752f7da, 0x3f046f69, 0x77fa0a59, 0x80e4a915, 0x87b08601, 0x9b09e6ad, 0x3b3ee593, 0xe990fd5a, 0x9e34d797, 0x2cf0b7d9, 0x022b8b51, 0x96d5ac3a, 0x017da67d, 0xd1cf3ed6, 0x7c7d2d28, 0x1f9f25cf, 0xadf2b89b, 0x5ad6b472, 0x5a88f54c, 0xe029ac71, 0xe019a5e6, 0x47b0acfd, 0xed93fa9b, 0xe8d3c48d, 0x283b57cc, 0xf8d56629, 0x79132e28, 0x785f0191, 0xed756055, 0xf7960e44, 0xe3d35e8c, 0x15056dd4, 0x88f46dba, 0x03a16125, 0x0564f0bd, 0xc3eb9e15, 0x3c9057a2, 0x97271aec, 0xa93a072a, 0x1b3f6d9b, 0x1e6321f5, 0xf59c66fb, 0x26dcf319, 0x7533d928, 0xb155fdf5, 0x03563482, 0x8aba3cbb, 0x28517711, 0xc20ad9f8, 0xabcc5167, 0xccad925f, 0x4de81751, 0x3830dc8e, 0x379d5862, 0x9320f991, 0xea7a90c2, 0xfb3e7bce, 0x5121ce64, 0x774fbe32, 0xa8b6e37e, 0xc3293d46, 0x48de5369, 0x6413e680, 0xa2ae0810, 0xdd6db224, 0x69852dfd, 0x09072166, 0xb39a460a, 0x6445c0dd, 0x586cdecf, 0x1c20c8ae, 0x5bbef7dd, 0x1b588d40, 0xccd2017f, 0x6bb4e3bb, 0xdda26a7e, 0x3a59ff45, 0x3e350a44, 0xbcb4cdd5, 0x72eacea8, 0xfa6484bb, 0x8d6612ae, 0xbf3c6f47, 0xd29be463, 0x542f5d9e, 0xaec2771b, 0xf64e6370, 0x740e0d8d, 0xe75b1357, 0xf8721671, 0xaf537d5d, 0x4040cb08, 0x4eb4e2cc, 0x34d2466a, 0x0115af84, 0xe1b00428, 0x95983a1d, 0x06b89fb4, 0xce6ea048, 0x6f3f3b82, 0x3520ab82, 0x011a1d4b, 0x277227f8, 0x611560b1, 0xe7933fdc, 0xbb3a792b, 0x344525bd, 0xa08839e1, 0x51ce794b, 0x2f32c9b7, 0xa01fbac9, 0xe01cc87e, 0xbcc7d1f6, 0xcf0111c3, 0xa1e8aac7, 0x1a908749, 0xd44fbd9a, 0xd0dadecb, 0xd50ada38, 0x0339c32a, 0xc6913667, 0x8df9317c, 0xe0b12b4f, 0xf79e59b7, 0x43f5bb3a, 0xf2d519ff, 0x27d9459c, 0xbf97222c, 0x15e6fc2a, 0x0f91fc71, 0x9b941525, 0xfae59361, 0xceb69ceb, 0xc2a86459, 0x12baa8d1, 0xb6c1075e, 0xe3056a0c, 0x10d25065, 0xcb03a442, 0xe0ec6e0e, 0x1698db3b, 0x4c98a0be, 0x3278e964, 0x9f1f9532, 0xe0d392df, 0xd3a0342b, 0x8971f21e, 0x1b0a7441, 0x4ba3348c, 0xc5be7120, 0xc37632d8, 0xdf359f8d, 0x9b992f2e, 0xe60b6f47, 0x0fe3f11d, 0xe54cda54, 0x1edad891, 0xce6279cf, 0xcd3e7e6f, 0x1618b166, 0xfd2c1d05, 0x848fd2c5, 0xf6fb2299, 0xf523f357, 0xa6327623, 0x93a83531, 0x56cccd02, 0xacf08162, 0x5a75ebb5, 0x6e163697, 0x88d273cc, 0xde966292, 0x81b949d0, 0x4c50901b, 0x71c65614, 0xe6c6c7bd, 0x327a140a, 0x45e1d006, 0xc3f27b9a, 0xc9aa53fd, 0x62a80f00, 0xbb25bfe2, 0x35bdd2f6, 0x71126905, 0xb2040222, 0xb6cbcf7c, 0xcd769c2b, 0x53113ec0, 0x1640e3d3, 0x38abbd60, 0x2547adf0, 0xba38209c, 0xf746ce76, 0x77afa1c5, 0x20756060, 0x85cbfe4e, 0x8ae88dd8, 0x7aaaf9b0, 0x4cf9aa7e, 0x1948c25c, 0x02fb8a8c, 0x01c36ae4, 0xd6ebe1f9, 0x90d4f869, 0xa65cdea0, 0x3f09252d, 0xc208e69f, 0xb74e6132, 0xce77e25b, 0x578fdfe3, 0x3ac372e6]]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/Blowfish.swift",
+      "kind": "IntegerLiteral",
+      "offset": 15953,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/MD5.swift",
+      "kind": "IntegerLiteral",
+      "offset": 985,
+      "length": 2,
+      "value": "64"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/MD5.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1021,
+      "length": 2,
+      "value": "16"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/MD5.swift",
+      "kind": "Array",
+      "offset": 1094,
+      "length": 48,
+      "value": "[0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/MD5.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1241,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/MD5.swift",
+      "kind": "Array",
+      "offset": 1396,
+      "length": 256,
+      "value": "[7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/MD5.swift",
+      "kind": "Array",
+      "offset": 1751,
+      "length": 834,
+      "value": "[0xd76aa478, 0xe8c7b756, 0x242070db, 0xc1bdceee, 0xf57c0faf, 0x4787c62a, 0xa8304613, 0xfd469501, 0x698098d8, 0x8b44f7af, 0xffff5bb1, 0x895cd7be, 0x6b901122, 0xfd987193, 0xa679438e, 0x49b40821, 0xf61e2562, 0xc040b340, 0x265e5a51, 0xe9b6c7aa, 0xd62f105d, 0x2441453, 0xd8a1e681, 0xe7d3fbc8, 0x21e1cde6, 0xc33707d6, 0xf4d50d87, 0x455a14ed, 0xa9e3e905, 0xfcefa3f8, 0x676f02d9, 0x8d2a4c8a, 0xfffa3942, 0x8771f681, 0x6d9d6122, 0xfde5380c, 0xa4beea44, 0x4bdecfa9, 0xf6bb4b60, 0xbebfbc70, 0x289b7ec6, 0xeaa127fa, 0xd4ef3085, 0x4881d05, 0xd9d4d039, 0xe6db99e5, 0x1fa27cf8, 0xc4ac5665, 0xf4292244, 0x432aff97, 0xab9423a7, 0xfc93a039, 0x655b59c3, 0x8f0ccc92, 0xffeff47d, 0x85845dd1, 0x6fa87e4f, 0xfe2ce6e0, 0xa3014314, 0x4e0811a1, 0xf7537e82, 0xbd3af235, 0x2ad7d2bb, 0xeb86d391]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/MD5.swift",
+      "kind": "BooleanLiteral",
+      "offset": 4564,
+      "length": 5,
+      "value": "false"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/Logger.swift",
+      "kind": "BooleanLiteral",
+      "offset": 148,
+      "length": 5,
+      "value": "false"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/Logger.swift",
+      "kind": "Array",
+      "offset": 502,
+      "length": 2,
+      "value": "[]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/Logger.swift",
+      "kind": "StringLiteral",
+      "offset": 1274,
+      "length": 3,
+      "value": "\" \""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/Logger.swift",
+      "kind": "StringLiteral",
+      "offset": 1300,
+      "length": 4,
+      "value": "\"\n\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/SHA2.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1325,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/SHA2.swift",
+      "kind": "BooleanLiteral",
+      "offset": 10632,
+      "length": 5,
+      "value": "false"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSTtsModel.swift",
+      "kind": "StringLiteral",
+      "offset": 545,
+      "length": 2,
+      "value": "\"\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSTtsModel.swift",
+      "kind": "StringLiteral",
+      "offset": 592,
+      "length": 2,
+      "value": "\"\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSTtsModel.swift",
+      "kind": "IntegerLiteral",
+      "offset": 641,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSTtsModel.swift",
+      "kind": "StringLiteral",
+      "offset": 692,
+      "length": 2,
+      "value": "\"\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/Foundation\/Array+Foundation.swift",
+      "kind": "Array",
+      "offset": 1039,
+      "length": 2,
+      "value": "[]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/BlockDecryptor.swift",
+      "kind": "BooleanLiteral",
+      "offset": 1486,
+      "length": 5,
+      "value": "false"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/BlockMode\/CCM.swift",
+      "kind": "IntegerLiteral",
+      "offset": 4323,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/BlockMode\/CCM.swift",
+      "kind": "IntegerLiteral",
+      "offset": 4592,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/BlockMode\/CCM.swift",
+      "kind": "Array",
+      "offset": 4670,
+      "length": 2,
+      "value": "[]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/BlockMode\/CCM.swift",
+      "kind": "Array",
+      "offset": 4713,
+      "length": 2,
+      "value": "[]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/BlockMode\/CCM.swift",
+      "kind": "Array",
+      "offset": 8132,
+      "length": 2,
+      "value": "[]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/PrimeTest.swift",
+      "kind": "Array",
+      "offset": 261,
+      "length": 48,
+      "value": "[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/PrimeTest.swift",
+      "kind": "Array",
+      "offset": 625,
+      "length": 435,
+      "value": "[2047, 1373653, 25326001, 3215031751, 2152302898747, 3474749660383, 341550071728321, 341550071728321, 3825123056546413051, 3825123056546413051, 3825123056546413051, \"318665857834031151167461\", \"3317044064679887385961981\"]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/PrimeTest.swift",
+      "kind": "IntegerLiteral",
+      "offset": 2928,
+      "length": 2,
+      "value": "10"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/PrimeTest.swift",
+      "kind": "IntegerLiteral",
+      "offset": 5647,
+      "length": 2,
+      "value": "10"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/BlockMode\/BlockModeOptions.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1124,
+      "length": 1,
+      "value": "1"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/BlockMode\/BlockModeOptions.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1129,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/BlockMode\/BlockModeOptions.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1223,
+      "length": 1,
+      "value": "1"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/BlockMode\/BlockModeOptions.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1228,
+      "length": 1,
+      "value": "1"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/BlockMode\/BlockModeOptions.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1309,
+      "length": 1,
+      "value": "1"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/BlockMode\/BlockModeOptions.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1314,
+      "length": 1,
+      "value": "2"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/BlockMode\/BlockModeOptions.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1399,
+      "length": 1,
+      "value": "1"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/BlockMode\/BlockModeOptions.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1404,
+      "length": 1,
+      "value": "3"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSStt.swift",
+      "kind": "IntegerLiteral",
+      "offset": 206,
+      "length": 12,
+      "value": "1"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/Addition.swift",
+      "kind": "IntegerLiteral",
+      "offset": 426,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/Addition.swift",
+      "kind": "IntegerLiteral",
+      "offset": 944,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/Addition.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1293,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/Addition.swift",
+      "kind": "IntegerLiteral",
+      "offset": 2065,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/Addition.swift",
+      "kind": "IntegerLiteral",
+      "offset": 2389,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/StreamDecryptor.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1342,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/Operation.swift",
+      "kind": "BooleanLiteral",
+      "offset": 5836,
+      "length": 5,
+      "value": "false"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/Operation.swift",
+      "kind": "IntegerLiteral",
+      "offset": 19533,
+      "length": 1,
+      "value": "5"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/Scrypt.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1396,
+      "length": 2,
+      "value": "64"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/Scrypt.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1411,
+      "length": 2,
+      "value": "64"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/AEAD\/AEADChaCha20Poly1305.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1110,
+      "length": 2,
+      "value": "32"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/AEAD\/AEADChaCha20Poly1305.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1170,
+      "length": 2,
+      "value": "12"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/AEAD\/AEADChaCha20Poly1305.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1175,
+      "length": 2,
+      "value": "12"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/BlockMode\/ECB.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1542,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/SHA3.swift",
+      "kind": "Array",
+      "offset": 1226,
+      "length": 508,
+      "value": "[0x0000000000000001, 0x0000000000008082, 0x800000000000808a, 0x8000000080008000, 0x000000000000808b, 0x0000000080000001, 0x8000000080008081, 0x8000000000008009, 0x000000000000008a, 0x0000000000000088, 0x0000000080008009, 0x000000008000000a, 0x000000008000808b, 0x800000000000008b, 0x8000000000008089, 0x8000000000008003, 0x8000000000008002, 0x8000000000000080, 0x000000000000800a, 0x800000008000000a, 0x8000000080008081, 0x8000000000008080, 0x0000000080000001, 0x8000000080008008]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/SHA3.swift",
+      "kind": "BooleanLiteral",
+      "offset": 8297,
+      "length": 5,
+      "value": "false"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSAuthModel.swift",
+      "kind": "StringLiteral",
+      "offset": 507,
+      "length": 2,
+      "value": "\"\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSAuthModel.swift",
+      "kind": "StringLiteral",
+      "offset": 564,
+      "length": 2,
+      "value": "\"\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSAuthModel.swift",
+      "kind": "StringLiteral",
+      "offset": 635,
+      "length": 2,
+      "value": "\"\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSChatGptModel.swift",
+      "kind": "StringLiteral",
+      "offset": 211,
+      "length": 16,
+      "value": "\"response error\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSChatGptModel.swift",
+      "kind": "StringLiteral",
+      "offset": 275,
+      "length": 17,
+      "value": "\"invalid_request\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSChatGptModel.swift",
+      "kind": "StringLiteral",
+      "offset": 372,
+      "length": 2,
+      "value": "\"\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSChatGptModel.swift",
+      "kind": "StringLiteral",
+      "offset": 414,
+      "length": 2,
+      "value": "\"\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSChatGptModel.swift",
+      "kind": "IntegerLiteral",
+      "offset": 482,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSChatGptModel.swift",
+      "kind": "StringLiteral",
+      "offset": 538,
+      "length": 2,
+      "value": "\"\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSChatGptModel.swift",
+      "kind": "Array",
+      "offset": 603,
+      "length": 2,
+      "value": "[]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSChatGptModel.swift",
+      "kind": "IntegerLiteral",
+      "offset": 780,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSChatGptModel.swift",
+      "kind": "StringLiteral",
+      "offset": 929,
+      "length": 2,
+      "value": "\"\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSChatGptModel.swift",
+      "kind": "StringLiteral",
+      "offset": 1041,
+      "length": 2,
+      "value": "\"\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSChatGptModel.swift",
+      "kind": "StringLiteral",
+      "offset": 1091,
+      "length": 2,
+      "value": "\"\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSChatGptModel.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1191,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSChatGptModel.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1232,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSChatGptModel.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1268,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/BlockEncryptor.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1250,
+      "length": 2,
+      "value": "16"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/BlockEncryptor.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1290,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/HTTPSecurity.swift",
+      "kind": "BooleanLiteral",
+      "offset": 756,
+      "length": 4,
+      "value": "true"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/HTTPSecurity.swift",
+      "kind": "BooleanLiteral",
+      "offset": 823,
+      "length": 5,
+      "value": "false"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/HTTPSecurity.swift",
+      "kind": "BooleanLiteral",
+      "offset": 965,
+      "length": 5,
+      "value": "false"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/HTTPSecurity.swift",
+      "kind": "BooleanLiteral",
+      "offset": 1287,
+      "length": 5,
+      "value": "false"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/AEAD\/AEADXChaCha20Poly1305.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1425,
+      "length": 2,
+      "value": "32"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/AEAD\/AEADXChaCha20Poly1305.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1578,
+      "length": 2,
+      "value": "12"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/AEAD\/AEADXChaCha20Poly1305.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1583,
+      "length": 2,
+      "value": "12"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/BlockMode\/CTR.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1314,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/BlockMode\/CTR.swift",
+      "kind": "IntegerLiteral",
+      "offset": 2865,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/BlockMode\/CTR.swift",
+      "kind": "IntegerLiteral",
+      "offset": 3150,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/PKCS\/PBKDF2.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1948,
+      "length": 4,
+      "value": "4096"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/Multiplication.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1579,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/Multiplication.swift",
+      "kind": "IntegerLiteral",
+      "offset": 3101,
+      "length": 4,
+      "value": "1024"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/Request.swift",
+      "kind": "StringLiteral",
+      "offset": 957,
+      "length": 5,
+      "value": "\"GET\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/Request.swift",
+      "kind": "StringLiteral",
+      "offset": 979,
+      "length": 6,
+      "value": "\"POST\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/Request.swift",
+      "kind": "StringLiteral",
+      "offset": 1001,
+      "length": 5,
+      "value": "\"PUT\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/Request.swift",
+      "kind": "StringLiteral",
+      "offset": 1023,
+      "length": 6,
+      "value": "\"HEAD\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/Request.swift",
+      "kind": "StringLiteral",
+      "offset": 1048,
+      "length": 8,
+      "value": "\"DELETE\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/Request.swift",
+      "kind": "StringLiteral",
+      "offset": 1074,
+      "length": 7,
+      "value": "\"PATCH\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/Request.swift",
+      "kind": "StringLiteral",
+      "offset": 1101,
+      "length": 9,
+      "value": "\"OPTIONS\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/Request.swift",
+      "kind": "StringLiteral",
+      "offset": 1128,
+      "length": 7,
+      "value": "\"TRACE\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/Request.swift",
+      "kind": "StringLiteral",
+      "offset": 1155,
+      "length": 9,
+      "value": "\"CONNECT\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/Request.swift",
+      "kind": "StringLiteral",
+      "offset": 1184,
+      "length": 9,
+      "value": "\"UNKNOWN\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/Request.swift",
+      "kind": "BooleanLiteral",
+      "offset": 2521,
+      "length": 5,
+      "value": "false"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/Request.swift",
+      "kind": "IntegerLiteral",
+      "offset": 4840,
+      "length": 2,
+      "value": "60"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MixSdk.swift",
+      "kind": "StringLiteral",
+      "offset": 1138,
+      "length": 24,
+      "value": "\"ws:\/\/amp.raisound.com\/\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MixSdk.swift",
+      "kind": "StringLiteral",
+      "offset": 1192,
+      "length": 27,
+      "value": "\"https:\/\/amp.raisound.com\/\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MixSdk.swift",
+      "kind": "StringLiteral",
+      "offset": 1313,
+      "length": 33,
+      "value": "\"http:\/\/dmp.raisound.com\/bz-api\/\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MixSdk.swift",
+      "kind": "FloatLiteral",
+      "offset": 1444,
+      "length": 3,
+      "value": "5.0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MixSdk.swift",
+      "kind": "StringLiteral",
+      "offset": 4349,
+      "length": 12,
+      "value": "\"2025010201\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MixSdk.swift",
+      "kind": "StringLiteral",
+      "offset": 4530,
+      "length": 17,
+      "value": "\"MixSdk version:\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MixSdk.swift",
+      "kind": "BooleanLiteral",
+      "offset": 4417,
+      "length": 5,
+      "value": "false"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MixSdk.swift",
+      "kind": "StringLiteral",
+      "offset": 5769,
+      "length": 2,
+      "value": "\"\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MsTranslateModel.swift",
+      "kind": "IntegerLiteral",
+      "offset": 156,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MsTranslateModel.swift",
+      "kind": "Array",
+      "offset": 195,
+      "length": 2,
+      "value": "[]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MsTranslateModel.swift",
+      "kind": "StringLiteral",
+      "offset": 317,
+      "length": 2,
+      "value": "\"\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MsTranslateModel.swift",
+      "kind": "StringLiteral",
+      "offset": 368,
+      "length": 2,
+      "value": "\"\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MsTranslateModel.swift",
+      "kind": "StringLiteral",
+      "offset": 415,
+      "length": 2,
+      "value": "\"\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/StreamEncryptor.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1277,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/BlockMode\/GCM.swift",
+      "kind": "IntegerLiteral",
+      "offset": 2513,
+      "length": 2,
+      "value": "16"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/BlockMode\/GCM.swift",
+      "kind": "IntegerLiteral",
+      "offset": 4021,
+      "length": 2,
+      "value": "12"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/BlockMode\/GCM.swift",
+      "kind": "IntegerLiteral",
+      "offset": 4156,
+      "length": 2,
+      "value": "16"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/BlockMode\/GCM.swift",
+      "kind": "IntegerLiteral",
+      "offset": 9505,
+      "length": 18,
+      "value": "0xE100000000000000"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/BlockMode\/GCM.swift",
+      "kind": "IntegerLiteral",
+      "offset": 9528,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/BlockMode\/GCM.swift",
+      "kind": "IntegerLiteral",
+      "offset": 10594,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSChatModel.swift",
+      "kind": "StringLiteral",
+      "offset": 208,
+      "length": 2,
+      "value": "\"\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/Subtraction.swift",
+      "kind": "IntegerLiteral",
+      "offset": 648,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/Subtraction.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1462,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/Subtraction.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1952,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/Subtraction.swift",
+      "kind": "IntegerLiteral",
+      "offset": 2368,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/Subtraction.swift",
+      "kind": "IntegerLiteral",
+      "offset": 2957,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/Subtraction.swift",
+      "kind": "IntegerLiteral",
+      "offset": 4984,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/Subtraction.swift",
+      "kind": "IntegerLiteral",
+      "offset": 5397,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/Subtraction.swift",
+      "kind": "IntegerLiteral",
+      "offset": 5686,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/Array+Extension.swift",
+      "kind": "BooleanLiteral",
+      "offset": 3588,
+      "length": 4,
+      "value": "true"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/Array+Extension.swift",
+      "kind": "BooleanLiteral",
+      "offset": 3726,
+      "length": 4,
+      "value": "true"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/BlockMode\/OFB.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1816,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/PKCS\/PBKDF1.swift",
+      "kind": "IntegerLiteral",
+      "offset": 2280,
+      "length": 4,
+      "value": "4096"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/Date.swift",
+      "kind": "StringLiteral",
+      "offset": 402,
+      "length": 10,
+      "value": "\"HH:mm:ss\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/Date.swift",
+      "kind": "StringLiteral",
+      "offset": 491,
+      "length": 7,
+      "value": "\"HH:mm\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/Date.swift",
+      "kind": "StringLiteral",
+      "offset": 572,
+      "length": 7,
+      "value": "\"MM-dd\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/Date.swift",
+      "kind": "StringLiteral",
+      "offset": 659,
+      "length": 12,
+      "value": "\"MM月dd日\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/Date.swift",
+      "kind": "StringLiteral",
+      "offset": 751,
+      "length": 12,
+      "value": "\"yyyy-MM-dd\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/Date.swift",
+      "kind": "StringLiteral",
+      "offset": 851,
+      "length": 18,
+      "value": "\"yyy年MM月dd日\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/Date.swift",
+      "kind": "StringLiteral",
+      "offset": 956,
+      "length": 18,
+      "value": "\"yyyy-MM-dd HH:mm\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/Date.swift",
+      "kind": "StringLiteral",
+      "offset": 1069,
+      "length": 24,
+      "value": "\"yyy年MM月dd日 HH:mm\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/Date.swift",
+      "kind": "StringLiteral",
+      "offset": 1181,
+      "length": 21,
+      "value": "\"yyyy-MM-dd HH:mm:ss\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/Date.swift",
+      "kind": "StringLiteral",
+      "offset": 1298,
+      "length": 28,
+      "value": "\"yyyy年MM月dd日 HH:mm:ss\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/Date.swift",
+      "kind": "StringLiteral",
+      "offset": 1418,
+      "length": 25,
+      "value": "\"yyyy-MM-dd HH:mm:ss.SSS\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/Date.swift",
+      "kind": "StringLiteral",
+      "offset": 1543,
+      "length": 32,
+      "value": "\"yyyy年MM月dd日 HH:mm:ss.SSS\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/Date.swift",
+      "kind": "IntegerLiteral",
+      "offset": 2353,
+      "length": 1,
+      "value": "1"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/Date.swift",
+      "kind": "IntegerLiteral",
+      "offset": 2390,
+      "length": 3,
+      "value": "2"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/Date.swift",
+      "kind": "IntegerLiteral",
+      "offset": 2429,
+      "length": 3,
+      "value": "3"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/Date.swift",
+      "kind": "IntegerLiteral",
+      "offset": 2468,
+      "length": 3,
+      "value": "4"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/Date.swift",
+      "kind": "IntegerLiteral",
+      "offset": 2507,
+      "length": 4,
+      "value": "5"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/Date.swift",
+      "kind": "IntegerLiteral",
+      "offset": 2547,
+      "length": 3,
+      "value": "6"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/Date.swift",
+      "kind": "IntegerLiteral",
+      "offset": 2586,
+      "length": 3,
+      "value": "7"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSAudioConvert.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1381,
+      "length": 5,
+      "value": "16000"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/Updatable.swift",
+      "kind": "BooleanLiteral",
+      "offset": 1952,
+      "length": 5,
+      "value": "false"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/Updatable.swift",
+      "kind": "BooleanLiteral",
+      "offset": 2223,
+      "length": 5,
+      "value": "false"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/Updatable.swift",
+      "kind": "BooleanLiteral",
+      "offset": 2395,
+      "length": 5,
+      "value": "false"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/Updatable.swift",
+      "kind": "BooleanLiteral",
+      "offset": 2573,
+      "length": 5,
+      "value": "false"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/BlockMode\/CFB.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1132,
+      "length": 1,
+      "value": "1"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/BlockMode\/CFB.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1177,
+      "length": 2,
+      "value": "16"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/BlockMode\/CFB.swift",
+      "kind": "IntegerLiteral",
+      "offset": 2209,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/StringConversion.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1633,
+      "length": 2,
+      "value": "10"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/StringConversion.swift",
+      "kind": "IntegerLiteral",
+      "offset": 3373,
+      "length": 2,
+      "value": "10"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/StringConversion.swift",
+      "kind": "BooleanLiteral",
+      "offset": 4655,
+      "length": 5,
+      "value": "false"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/StringConversion.swift",
+      "kind": "IntegerLiteral",
+      "offset": 6099,
+      "length": 2,
+      "value": "10"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/StringConversion.swift",
+      "kind": "BooleanLiteral",
+      "offset": 6121,
+      "length": 5,
+      "value": "false"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/Bit.swift",
+      "kind": "IntegerLiteral",
+      "offset": 960,
+      "length": 3,
+      "value": "1"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/Utils.swift",
+      "kind": "IntegerLiteral",
+      "offset": 3447,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/ChaCha20.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1145,
+      "length": 2,
+      "value": "64"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/ChaCha20.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1470,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/ChaCha20.swift",
+      "kind": "BooleanLiteral",
+      "offset": 8581,
+      "length": 5,
+      "value": "false"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/ChaCha20.swift",
+      "kind": "IntegerLiteral",
+      "offset": 9318,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/ChaCha20.swift",
+      "kind": "IntegerLiteral",
+      "offset": 9358,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/ChaCha20.swift",
+      "kind": "BooleanLiteral",
+      "offset": 9542,
+      "length": 4,
+      "value": "true"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/AES.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1311,
+      "length": 1,
+      "value": "1"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/AES.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1314,
+      "length": 6,
+      "value": "2"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/AES.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1322,
+      "length": 6,
+      "value": "3"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/AES.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1692,
+      "length": 2,
+      "value": "16"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/AES.swift",
+      "kind": "Array",
+      "offset": 2480,
+      "length": 1604,
+      "value": "[0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/AES.swift",
+      "kind": "Array",
+      "offset": 4137,
+      "length": 3050,
+      "value": "[0xa56363c6, 0x847c7cf8, 0x997777ee, 0x8d7b7bf6, 0xdf2f2ff, 0xbd6b6bd6, 0xb16f6fde, 0x54c5c591, 0x50303060, 0x3010102, 0xa96767ce, 0x7d2b2b56, 0x19fefee7, 0x62d7d7b5, 0xe6abab4d, 0x9a7676ec, 0x45caca8f, 0x9d82821f, 0x40c9c989, 0x877d7dfa, 0x15fafaef, 0xeb5959b2, 0xc947478e, 0xbf0f0fb, 0xecadad41, 0x67d4d4b3, 0xfda2a25f, 0xeaafaf45, 0xbf9c9c23, 0xf7a4a453, 0x967272e4, 0x5bc0c09b, 0xc2b7b775, 0x1cfdfde1, 0xae93933d, 0x6a26264c, 0x5a36366c, 0x413f3f7e, 0x2f7f7f5, 0x4fcccc83, 0x5c343468, 0xf4a5a551, 0x34e5e5d1, 0x8f1f1f9, 0x937171e2, 0x73d8d8ab, 0x53313162, 0x3f15152a, 0xc040408, 0x52c7c795, 0x65232346, 0x5ec3c39d, 0x28181830, 0xa1969637, 0xf05050a, 0xb59a9a2f, 0x907070e, 0x36121224, 0x9b80801b, 0x3de2e2df, 0x26ebebcd, 0x6927274e, 0xcdb2b27f, 0x9f7575ea, 0x1b090912, 0x9e83831d, 0x742c2c58, 0x2e1a1a34, 0x2d1b1b36, 0xb26e6edc, 0xee5a5ab4, 0xfba0a05b, 0xf65252a4, 0x4d3b3b76, 0x61d6d6b7, 0xceb3b37d, 0x7b292952, 0x3ee3e3dd, 0x712f2f5e, 0x97848413, 0xf55353a6, 0x68d1d1b9, 0x0, 0x2cededc1, 0x60202040, 0x1ffcfce3, 0xc8b1b179, 0xed5b5bb6, 0xbe6a6ad4, 0x46cbcb8d, 0xd9bebe67, 0x4b393972, 0xde4a4a94, 0xd44c4c98, 0xe85858b0, 0x4acfcf85, 0x6bd0d0bb, 0x2aefefc5, 0xe5aaaa4f, 0x16fbfbed, 0xc5434386, 0xd74d4d9a, 0x55333366, 0x94858511, 0xcf45458a, 0x10f9f9e9, 0x6020204, 0x817f7ffe, 0xf05050a0, 0x443c3c78, 0xba9f9f25, 0xe3a8a84b, 0xf35151a2, 0xfea3a35d, 0xc0404080, 0x8a8f8f05, 0xad92923f, 0xbc9d9d21, 0x48383870, 0x4f5f5f1, 0xdfbcbc63, 0xc1b6b677, 0x75dadaaf, 0x63212142, 0x30101020, 0x1affffe5, 0xef3f3fd, 0x6dd2d2bf, 0x4ccdcd81, 0x140c0c18, 0x35131326, 0x2fececc3, 0xe15f5fbe, 0xa2979735, 0xcc444488, 0x3917172e, 0x57c4c493, 0xf2a7a755, 0x827e7efc, 0x473d3d7a, 0xac6464c8, 0xe75d5dba, 0x2b191932, 0x957373e6, 0xa06060c0, 0x98818119, 0xd14f4f9e, 0x7fdcdca3, 0x66222244, 0x7e2a2a54, 0xab90903b, 0x8388880b, 0xca46468c, 0x29eeeec7, 0xd3b8b86b, 0x3c141428, 0x79dedea7, 0xe25e5ebc, 0x1d0b0b16, 0x76dbdbad, 0x3be0e0db, 0x56323264, 0x4e3a3a74, 0x1e0a0a14, 0xdb494992, 0xa06060c, 0x6c242448, 0xe45c5cb8, 0x5dc2c29f, 0x6ed3d3bd, 0xefacac43, 0xa66262c4, 0xa8919139, 0xa4959531, 0x37e4e4d3, 0x8b7979f2, 0x32e7e7d5, 0x43c8c88b, 0x5937376e, 0xb76d6dda, 0x8c8d8d01, 0x64d5d5b1, 0xd24e4e9c, 0xe0a9a949, 0xb46c6cd8, 0xfa5656ac, 0x7f4f4f3, 0x25eaeacf, 0xaf6565ca, 0x8e7a7af4, 0xe9aeae47, 0x18080810, 0xd5baba6f, 0x887878f0, 0x6f25254a, 0x722e2e5c, 0x241c1c38, 0xf1a6a657, 0xc7b4b473, 0x51c6c697, 0x23e8e8cb, 0x7cdddda1, 0x9c7474e8, 0x211f1f3e, 0xdd4b4b96, 0xdcbdbd61, 0x868b8b0d, 0x858a8a0f, 0x907070e0, 0x423e3e7c, 0xc4b5b571, 0xaa6666cc, 0xd8484890, 0x5030306, 0x1f6f6f7, 0x120e0e1c, 0xa36161c2, 0x5f35356a, 0xf95757ae, 0xd0b9b969, 0x91868617, 0x58c1c199, 0x271d1d3a, 0xb99e9e27, 0x38e1e1d9, 0x13f8f8eb, 0xb398982b, 0x33111122, 0xbb6969d2, 0x70d9d9a9, 0x898e8e07, 0xa7949433, 0xb69b9b2d, 0x221e1e3c, 0x92878715, 0x20e9e9c9, 0x49cece87, 0xff5555aa, 0x78282850, 0x7adfdfa5, 0x8f8c8c03, 0xf8a1a159, 0x80898909, 0x170d0d1a, 0xdabfbf65, 0x31e6e6d7, 0xc6424284, 0xb86868d0, 0xc3414182, 0xb0999929, 0x772d2d5a, 0x110f0f1e, 0xcbb0b07b, 0xfc5454a8, 0xd6bbbb6d, 0x3a16162c]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/AES.swift",
+      "kind": "Array",
+      "offset": 7243,
+      "length": 3050,
+      "value": "[0x50a7f451, 0x5365417e, 0xc3a4171a, 0x965e273a, 0xcb6bab3b, 0xf1459d1f, 0xab58faac, 0x9303e34b, 0x55fa3020, 0xf66d76ad, 0x9176cc88, 0x254c02f5, 0xfcd7e54f, 0xd7cb2ac5, 0x80443526, 0x8fa362b5, 0x495ab1de, 0x671bba25, 0x980eea45, 0xe1c0fe5d, 0x2752fc3, 0x12f04c81, 0xa397468d, 0xc6f9d36b, 0xe75f8f03, 0x959c9215, 0xeb7a6dbf, 0xda595295, 0x2d83bed4, 0xd3217458, 0x2969e049, 0x44c8c98e, 0x6a89c275, 0x78798ef4, 0x6b3e5899, 0xdd71b927, 0xb64fe1be, 0x17ad88f0, 0x66ac20c9, 0xb43ace7d, 0x184adf63, 0x82311ae5, 0x60335197, 0x457f5362, 0xe07764b1, 0x84ae6bbb, 0x1ca081fe, 0x942b08f9, 0x58684870, 0x19fd458f, 0x876cde94, 0xb7f87b52, 0x23d373ab, 0xe2024b72, 0x578f1fe3, 0x2aab5566, 0x728ebb2, 0x3c2b52f, 0x9a7bc586, 0xa50837d3, 0xf2872830, 0xb2a5bf23, 0xba6a0302, 0x5c8216ed, 0x2b1ccf8a, 0x92b479a7, 0xf0f207f3, 0xa1e2694e, 0xcdf4da65, 0xd5be0506, 0x1f6234d1, 0x8afea6c4, 0x9d532e34, 0xa055f3a2, 0x32e18a05, 0x75ebf6a4, 0x39ec830b, 0xaaef6040, 0x69f715e, 0x51106ebd, 0xf98a213e, 0x3d06dd96, 0xae053edd, 0x46bde64d, 0xb58d5491, 0x55dc471, 0x6fd40604, 0xff155060, 0x24fb9819, 0x97e9bdd6, 0xcc434089, 0x779ed967, 0xbd42e8b0, 0x888b8907, 0x385b19e7, 0xdbeec879, 0x470a7ca1, 0xe90f427c, 0xc91e84f8, 0x0, 0x83868009, 0x48ed2b32, 0xac70111e, 0x4e725a6c, 0xfbff0efd, 0x5638850f, 0x1ed5ae3d, 0x27392d36, 0x64d90f0a, 0x21a65c68, 0xd1545b9b, 0x3a2e3624, 0xb1670a0c, 0xfe75793, 0xd296eeb4, 0x9e919b1b, 0x4fc5c080, 0xa220dc61, 0x694b775a, 0x161a121c, 0xaba93e2, 0xe52aa0c0, 0x43e0223c, 0x1d171b12, 0xb0d090e, 0xadc78bf2, 0xb9a8b62d, 0xc8a91e14, 0x8519f157, 0x4c0775af, 0xbbdd99ee, 0xfd607fa3, 0x9f2601f7, 0xbcf5725c, 0xc53b6644, 0x347efb5b, 0x7629438b, 0xdcc623cb, 0x68fcedb6, 0x63f1e4b8, 0xcadc31d7, 0x10856342, 0x40229713, 0x2011c684, 0x7d244a85, 0xf83dbbd2, 0x1132f9ae, 0x6da129c7, 0x4b2f9e1d, 0xf330b2dc, 0xec52860d, 0xd0e3c177, 0x6c16b32b, 0x99b970a9, 0xfa489411, 0x2264e947, 0xc48cfca8, 0x1a3ff0a0, 0xd82c7d56, 0xef903322, 0xc74e4987, 0xc1d138d9, 0xfea2ca8c, 0x360bd498, 0xcf81f5a6, 0x28de7aa5, 0x268eb7da, 0xa4bfad3f, 0xe49d3a2c, 0xd927850, 0x9bcc5f6a, 0x62467e54, 0xc2138df6, 0xe8b8d890, 0x5ef7392e, 0xf5afc382, 0xbe805d9f, 0x7c93d069, 0xa92dd56f, 0xb31225cf, 0x3b99acc8, 0xa77d1810, 0x6e639ce8, 0x7bbb3bdb, 0x97826cd, 0xf418596e, 0x1b79aec, 0xa89a4f83, 0x656e95e6, 0x7ee6ffaa, 0x8cfbc21, 0xe6e815ef, 0xd99be7ba, 0xce366f4a, 0xd4099fea, 0xd67cb029, 0xafb2a431, 0x31233f2a, 0x3094a5c6, 0xc066a235, 0x37bc4e74, 0xa6ca82fc, 0xb0d090e0, 0x15d8a733, 0x4a9804f1, 0xf7daec41, 0xe50cd7f, 0x2ff69117, 0x8dd64d76, 0x4db0ef43, 0x544daacc, 0xdf0496e4, 0xe3b5d19e, 0x1b886a4c, 0xb81f2cc1, 0x7f516546, 0x4ea5e9d, 0x5d358c01, 0x737487fa, 0x2e410bfb, 0x5a1d67b3, 0x52d2db92, 0x335610e9, 0x1347d66d, 0x8c61d79a, 0x7a0ca137, 0x8e14f859, 0x893c13eb, 0xee27a9ce, 0x35c961b7, 0xede51ce1, 0x3cb1477a, 0x59dfd29c, 0x3f73f255, 0x79ce1418, 0xbf37c773, 0xeacdf753, 0x5baafd5f, 0x146f3ddf, 0x86db4478, 0x81f3afca, 0x3ec468b9, 0x2c342438, 0x5f40a3c2, 0x72c31d16, 0xc25e2bc, 0x8b493c28, 0x41950dff, 0x7101a839, 0xdeb30c08, 0x9ce4b4d8, 0x90c15664, 0x6184cb7b, 0x70b632d5, 0x745c6c48, 0x4257b8d0]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/AES.swift",
+      "kind": "Array",
+      "offset": 10345,
+      "length": 3050,
+      "value": "[0x6363c6a5, 0x7c7cf884, 0x7777ee99, 0x7b7bf68d, 0xf2f2ff0d, 0x6b6bd6bd, 0x6f6fdeb1, 0xc5c59154, 0x30306050, 0x1010203, 0x6767cea9, 0x2b2b567d, 0xfefee719, 0xd7d7b562, 0xabab4de6, 0x7676ec9a, 0xcaca8f45, 0x82821f9d, 0xc9c98940, 0x7d7dfa87, 0xfafaef15, 0x5959b2eb, 0x47478ec9, 0xf0f0fb0b, 0xadad41ec, 0xd4d4b367, 0xa2a25ffd, 0xafaf45ea, 0x9c9c23bf, 0xa4a453f7, 0x7272e496, 0xc0c09b5b, 0xb7b775c2, 0xfdfde11c, 0x93933dae, 0x26264c6a, 0x36366c5a, 0x3f3f7e41, 0xf7f7f502, 0xcccc834f, 0x3434685c, 0xa5a551f4, 0xe5e5d134, 0xf1f1f908, 0x7171e293, 0xd8d8ab73, 0x31316253, 0x15152a3f, 0x404080c, 0xc7c79552, 0x23234665, 0xc3c39d5e, 0x18183028, 0x969637a1, 0x5050a0f, 0x9a9a2fb5, 0x7070e09, 0x12122436, 0x80801b9b, 0xe2e2df3d, 0xebebcd26, 0x27274e69, 0xb2b27fcd, 0x7575ea9f, 0x909121b, 0x83831d9e, 0x2c2c5874, 0x1a1a342e, 0x1b1b362d, 0x6e6edcb2, 0x5a5ab4ee, 0xa0a05bfb, 0x5252a4f6, 0x3b3b764d, 0xd6d6b761, 0xb3b37dce, 0x2929527b, 0xe3e3dd3e, 0x2f2f5e71, 0x84841397, 0x5353a6f5, 0xd1d1b968, 0x0, 0xededc12c, 0x20204060, 0xfcfce31f, 0xb1b179c8, 0x5b5bb6ed, 0x6a6ad4be, 0xcbcb8d46, 0xbebe67d9, 0x3939724b, 0x4a4a94de, 0x4c4c98d4, 0x5858b0e8, 0xcfcf854a, 0xd0d0bb6b, 0xefefc52a, 0xaaaa4fe5, 0xfbfbed16, 0x434386c5, 0x4d4d9ad7, 0x33336655, 0x85851194, 0x45458acf, 0xf9f9e910, 0x2020406, 0x7f7ffe81, 0x5050a0f0, 0x3c3c7844, 0x9f9f25ba, 0xa8a84be3, 0x5151a2f3, 0xa3a35dfe, 0x404080c0, 0x8f8f058a, 0x92923fad, 0x9d9d21bc, 0x38387048, 0xf5f5f104, 0xbcbc63df, 0xb6b677c1, 0xdadaaf75, 0x21214263, 0x10102030, 0xffffe51a, 0xf3f3fd0e, 0xd2d2bf6d, 0xcdcd814c, 0xc0c1814, 0x13132635, 0xececc32f, 0x5f5fbee1, 0x979735a2, 0x444488cc, 0x17172e39, 0xc4c49357, 0xa7a755f2, 0x7e7efc82, 0x3d3d7a47, 0x6464c8ac, 0x5d5dbae7, 0x1919322b, 0x7373e695, 0x6060c0a0, 0x81811998, 0x4f4f9ed1, 0xdcdca37f, 0x22224466, 0x2a2a547e, 0x90903bab, 0x88880b83, 0x46468cca, 0xeeeec729, 0xb8b86bd3, 0x1414283c, 0xdedea779, 0x5e5ebce2, 0xb0b161d, 0xdbdbad76, 0xe0e0db3b, 0x32326456, 0x3a3a744e, 0xa0a141e, 0x494992db, 0x6060c0a, 0x2424486c, 0x5c5cb8e4, 0xc2c29f5d, 0xd3d3bd6e, 0xacac43ef, 0x6262c4a6, 0x919139a8, 0x959531a4, 0xe4e4d337, 0x7979f28b, 0xe7e7d532, 0xc8c88b43, 0x37376e59, 0x6d6ddab7, 0x8d8d018c, 0xd5d5b164, 0x4e4e9cd2, 0xa9a949e0, 0x6c6cd8b4, 0x5656acfa, 0xf4f4f307, 0xeaeacf25, 0x6565caaf, 0x7a7af48e, 0xaeae47e9, 0x8081018, 0xbaba6fd5, 0x7878f088, 0x25254a6f, 0x2e2e5c72, 0x1c1c3824, 0xa6a657f1, 0xb4b473c7, 0xc6c69751, 0xe8e8cb23, 0xdddda17c, 0x7474e89c, 0x1f1f3e21, 0x4b4b96dd, 0xbdbd61dc, 0x8b8b0d86, 0x8a8a0f85, 0x7070e090, 0x3e3e7c42, 0xb5b571c4, 0x6666ccaa, 0x484890d8, 0x3030605, 0xf6f6f701, 0xe0e1c12, 0x6161c2a3, 0x35356a5f, 0x5757aef9, 0xb9b969d0, 0x86861791, 0xc1c19958, 0x1d1d3a27, 0x9e9e27b9, 0xe1e1d938, 0xf8f8eb13, 0x98982bb3, 0x11112233, 0x6969d2bb, 0xd9d9a970, 0x8e8e0789, 0x949433a7, 0x9b9b2db6, 0x1e1e3c22, 0x87871592, 0xe9e9c920, 0xcece8749, 0x5555aaff, 0x28285078, 0xdfdfa57a, 0x8c8c038f, 0xa1a159f8, 0x89890980, 0xd0d1a17, 0xbfbf65da, 0xe6e6d731, 0x424284c6, 0x6868d0b8, 0x414182c3, 0x999929b0, 0x2d2d5a77, 0xf0f1e11, 0xb0b07bcb, 0x5454a8fc, 0xbbbb6dd6, 0x16162c3a]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/AES.swift",
+      "kind": "Array",
+      "offset": 13451,
+      "length": 3050,
+      "value": "[0xa7f45150, 0x65417e53, 0xa4171ac3, 0x5e273a96, 0x6bab3bcb, 0x459d1ff1, 0x58faacab, 0x3e34b93, 0xfa302055, 0x6d76adf6, 0x76cc8891, 0x4c02f525, 0xd7e54ffc, 0xcb2ac5d7, 0x44352680, 0xa362b58f, 0x5ab1de49, 0x1bba2567, 0xeea4598, 0xc0fe5de1, 0x752fc302, 0xf04c8112, 0x97468da3, 0xf9d36bc6, 0x5f8f03e7, 0x9c921595, 0x7a6dbfeb, 0x595295da, 0x83bed42d, 0x217458d3, 0x69e04929, 0xc8c98e44, 0x89c2756a, 0x798ef478, 0x3e58996b, 0x71b927dd, 0x4fe1beb6, 0xad88f017, 0xac20c966, 0x3ace7db4, 0x4adf6318, 0x311ae582, 0x33519760, 0x7f536245, 0x7764b1e0, 0xae6bbb84, 0xa081fe1c, 0x2b08f994, 0x68487058, 0xfd458f19, 0x6cde9487, 0xf87b52b7, 0xd373ab23, 0x24b72e2, 0x8f1fe357, 0xab55662a, 0x28ebb207, 0xc2b52f03, 0x7bc5869a, 0x837d3a5, 0x872830f2, 0xa5bf23b2, 0x6a0302ba, 0x8216ed5c, 0x1ccf8a2b, 0xb479a792, 0xf207f3f0, 0xe2694ea1, 0xf4da65cd, 0xbe0506d5, 0x6234d11f, 0xfea6c48a, 0x532e349d, 0x55f3a2a0, 0xe18a0532, 0xebf6a475, 0xec830b39, 0xef6040aa, 0x9f715e06, 0x106ebd51, 0x8a213ef9, 0x6dd963d, 0x53eddae, 0xbde64d46, 0x8d5491b5, 0x5dc47105, 0xd406046f, 0x155060ff, 0xfb981924, 0xe9bdd697, 0x434089cc, 0x9ed96777, 0x42e8b0bd, 0x8b890788, 0x5b19e738, 0xeec879db, 0xa7ca147, 0xf427ce9, 0x1e84f8c9, 0x0, 0x86800983, 0xed2b3248, 0x70111eac, 0x725a6c4e, 0xff0efdfb, 0x38850f56, 0xd5ae3d1e, 0x392d3627, 0xd90f0a64, 0xa65c6821, 0x545b9bd1, 0x2e36243a, 0x670a0cb1, 0xe757930f, 0x96eeb4d2, 0x919b1b9e, 0xc5c0804f, 0x20dc61a2, 0x4b775a69, 0x1a121c16, 0xba93e20a, 0x2aa0c0e5, 0xe0223c43, 0x171b121d, 0xd090e0b, 0xc78bf2ad, 0xa8b62db9, 0xa91e14c8, 0x19f15785, 0x775af4c, 0xdd99eebb, 0x607fa3fd, 0x2601f79f, 0xf5725cbc, 0x3b6644c5, 0x7efb5b34, 0x29438b76, 0xc623cbdc, 0xfcedb668, 0xf1e4b863, 0xdc31d7ca, 0x85634210, 0x22971340, 0x11c68420, 0x244a857d, 0x3dbbd2f8, 0x32f9ae11, 0xa129c76d, 0x2f9e1d4b, 0x30b2dcf3, 0x52860dec, 0xe3c177d0, 0x16b32b6c, 0xb970a999, 0x489411fa, 0x64e94722, 0x8cfca8c4, 0x3ff0a01a, 0x2c7d56d8, 0x903322ef, 0x4e4987c7, 0xd138d9c1, 0xa2ca8cfe, 0xbd49836, 0x81f5a6cf, 0xde7aa528, 0x8eb7da26, 0xbfad3fa4, 0x9d3a2ce4, 0x9278500d, 0xcc5f6a9b, 0x467e5462, 0x138df6c2, 0xb8d890e8, 0xf7392e5e, 0xafc382f5, 0x805d9fbe, 0x93d0697c, 0x2dd56fa9, 0x1225cfb3, 0x99acc83b, 0x7d1810a7, 0x639ce86e, 0xbb3bdb7b, 0x7826cd09, 0x18596ef4, 0xb79aec01, 0x9a4f83a8, 0x6e95e665, 0xe6ffaa7e, 0xcfbc2108, 0xe815efe6, 0x9be7bad9, 0x366f4ace, 0x99fead4, 0x7cb029d6, 0xb2a431af, 0x233f2a31, 0x94a5c630, 0x66a235c0, 0xbc4e7437, 0xca82fca6, 0xd090e0b0, 0xd8a73315, 0x9804f14a, 0xdaec41f7, 0x50cd7f0e, 0xf691172f, 0xd64d768d, 0xb0ef434d, 0x4daacc54, 0x496e4df, 0xb5d19ee3, 0x886a4c1b, 0x1f2cc1b8, 0x5165467f, 0xea5e9d04, 0x358c015d, 0x7487fa73, 0x410bfb2e, 0x1d67b35a, 0xd2db9252, 0x5610e933, 0x47d66d13, 0x61d79a8c, 0xca1377a, 0x14f8598e, 0x3c13eb89, 0x27a9ceee, 0xc961b735, 0xe51ce1ed, 0xb1477a3c, 0xdfd29c59, 0x73f2553f, 0xce141879, 0x37c773bf, 0xcdf753ea, 0xaafd5f5b, 0x6f3ddf14, 0xdb447886, 0xf3afca81, 0xc468b93e, 0x3424382c, 0x40a3c25f, 0xc31d1672, 0x25e2bc0c, 0x493c288b, 0x950dff41, 0x1a83971, 0xb30c08de, 0xe4b4d89c, 0xc1566490, 0x84cb7b61, 0xb632d570, 0x5c6c4874, 0x57b8d042]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/AES.swift",
+      "kind": "Array",
+      "offset": 16553,
+      "length": 3050,
+      "value": "[0x63c6a563, 0x7cf8847c, 0x77ee9977, 0x7bf68d7b, 0xf2ff0df2, 0x6bd6bd6b, 0x6fdeb16f, 0xc59154c5, 0x30605030, 0x1020301, 0x67cea967, 0x2b567d2b, 0xfee719fe, 0xd7b562d7, 0xab4de6ab, 0x76ec9a76, 0xca8f45ca, 0x821f9d82, 0xc98940c9, 0x7dfa877d, 0xfaef15fa, 0x59b2eb59, 0x478ec947, 0xf0fb0bf0, 0xad41ecad, 0xd4b367d4, 0xa25ffda2, 0xaf45eaaf, 0x9c23bf9c, 0xa453f7a4, 0x72e49672, 0xc09b5bc0, 0xb775c2b7, 0xfde11cfd, 0x933dae93, 0x264c6a26, 0x366c5a36, 0x3f7e413f, 0xf7f502f7, 0xcc834fcc, 0x34685c34, 0xa551f4a5, 0xe5d134e5, 0xf1f908f1, 0x71e29371, 0xd8ab73d8, 0x31625331, 0x152a3f15, 0x4080c04, 0xc79552c7, 0x23466523, 0xc39d5ec3, 0x18302818, 0x9637a196, 0x50a0f05, 0x9a2fb59a, 0x70e0907, 0x12243612, 0x801b9b80, 0xe2df3de2, 0xebcd26eb, 0x274e6927, 0xb27fcdb2, 0x75ea9f75, 0x9121b09, 0x831d9e83, 0x2c58742c, 0x1a342e1a, 0x1b362d1b, 0x6edcb26e, 0x5ab4ee5a, 0xa05bfba0, 0x52a4f652, 0x3b764d3b, 0xd6b761d6, 0xb37dceb3, 0x29527b29, 0xe3dd3ee3, 0x2f5e712f, 0x84139784, 0x53a6f553, 0xd1b968d1, 0x0, 0xedc12ced, 0x20406020, 0xfce31ffc, 0xb179c8b1, 0x5bb6ed5b, 0x6ad4be6a, 0xcb8d46cb, 0xbe67d9be, 0x39724b39, 0x4a94de4a, 0x4c98d44c, 0x58b0e858, 0xcf854acf, 0xd0bb6bd0, 0xefc52aef, 0xaa4fe5aa, 0xfbed16fb, 0x4386c543, 0x4d9ad74d, 0x33665533, 0x85119485, 0x458acf45, 0xf9e910f9, 0x2040602, 0x7ffe817f, 0x50a0f050, 0x3c78443c, 0x9f25ba9f, 0xa84be3a8, 0x51a2f351, 0xa35dfea3, 0x4080c040, 0x8f058a8f, 0x923fad92, 0x9d21bc9d, 0x38704838, 0xf5f104f5, 0xbc63dfbc, 0xb677c1b6, 0xdaaf75da, 0x21426321, 0x10203010, 0xffe51aff, 0xf3fd0ef3, 0xd2bf6dd2, 0xcd814ccd, 0xc18140c, 0x13263513, 0xecc32fec, 0x5fbee15f, 0x9735a297, 0x4488cc44, 0x172e3917, 0xc49357c4, 0xa755f2a7, 0x7efc827e, 0x3d7a473d, 0x64c8ac64, 0x5dbae75d, 0x19322b19, 0x73e69573, 0x60c0a060, 0x81199881, 0x4f9ed14f, 0xdca37fdc, 0x22446622, 0x2a547e2a, 0x903bab90, 0x880b8388, 0x468cca46, 0xeec729ee, 0xb86bd3b8, 0x14283c14, 0xdea779de, 0x5ebce25e, 0xb161d0b, 0xdbad76db, 0xe0db3be0, 0x32645632, 0x3a744e3a, 0xa141e0a, 0x4992db49, 0x60c0a06, 0x24486c24, 0x5cb8e45c, 0xc29f5dc2, 0xd3bd6ed3, 0xac43efac, 0x62c4a662, 0x9139a891, 0x9531a495, 0xe4d337e4, 0x79f28b79, 0xe7d532e7, 0xc88b43c8, 0x376e5937, 0x6ddab76d, 0x8d018c8d, 0xd5b164d5, 0x4e9cd24e, 0xa949e0a9, 0x6cd8b46c, 0x56acfa56, 0xf4f307f4, 0xeacf25ea, 0x65caaf65, 0x7af48e7a, 0xae47e9ae, 0x8101808, 0xba6fd5ba, 0x78f08878, 0x254a6f25, 0x2e5c722e, 0x1c38241c, 0xa657f1a6, 0xb473c7b4, 0xc69751c6, 0xe8cb23e8, 0xdda17cdd, 0x74e89c74, 0x1f3e211f, 0x4b96dd4b, 0xbd61dcbd, 0x8b0d868b, 0x8a0f858a, 0x70e09070, 0x3e7c423e, 0xb571c4b5, 0x66ccaa66, 0x4890d848, 0x3060503, 0xf6f701f6, 0xe1c120e, 0x61c2a361, 0x356a5f35, 0x57aef957, 0xb969d0b9, 0x86179186, 0xc19958c1, 0x1d3a271d, 0x9e27b99e, 0xe1d938e1, 0xf8eb13f8, 0x982bb398, 0x11223311, 0x69d2bb69, 0xd9a970d9, 0x8e07898e, 0x9433a794, 0x9b2db69b, 0x1e3c221e, 0x87159287, 0xe9c920e9, 0xce8749ce, 0x55aaff55, 0x28507828, 0xdfa57adf, 0x8c038f8c, 0xa159f8a1, 0x89098089, 0xd1a170d, 0xbf65dabf, 0xe6d731e6, 0x4284c642, 0x68d0b868, 0x4182c341, 0x9929b099, 0x2d5a772d, 0xf1e110f, 0xb07bcbb0, 0x54a8fc54, 0xbb6dd6bb, 0x162c3a16]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/AES.swift",
+      "kind": "Array",
+      "offset": 19659,
+      "length": 3050,
+      "value": "[0xf45150a7, 0x417e5365, 0x171ac3a4, 0x273a965e, 0xab3bcb6b, 0x9d1ff145, 0xfaacab58, 0xe34b9303, 0x302055fa, 0x76adf66d, 0xcc889176, 0x2f5254c, 0xe54ffcd7, 0x2ac5d7cb, 0x35268044, 0x62b58fa3, 0xb1de495a, 0xba25671b, 0xea45980e, 0xfe5de1c0, 0x2fc30275, 0x4c8112f0, 0x468da397, 0xd36bc6f9, 0x8f03e75f, 0x9215959c, 0x6dbfeb7a, 0x5295da59, 0xbed42d83, 0x7458d321, 0xe0492969, 0xc98e44c8, 0xc2756a89, 0x8ef47879, 0x58996b3e, 0xb927dd71, 0xe1beb64f, 0x88f017ad, 0x20c966ac, 0xce7db43a, 0xdf63184a, 0x1ae58231, 0x51976033, 0x5362457f, 0x64b1e077, 0x6bbb84ae, 0x81fe1ca0, 0x8f9942b, 0x48705868, 0x458f19fd, 0xde94876c, 0x7b52b7f8, 0x73ab23d3, 0x4b72e202, 0x1fe3578f, 0x55662aab, 0xebb20728, 0xb52f03c2, 0xc5869a7b, 0x37d3a508, 0x2830f287, 0xbf23b2a5, 0x302ba6a, 0x16ed5c82, 0xcf8a2b1c, 0x79a792b4, 0x7f3f0f2, 0x694ea1e2, 0xda65cdf4, 0x506d5be, 0x34d11f62, 0xa6c48afe, 0x2e349d53, 0xf3a2a055, 0x8a0532e1, 0xf6a475eb, 0x830b39ec, 0x6040aaef, 0x715e069f, 0x6ebd5110, 0x213ef98a, 0xdd963d06, 0x3eddae05, 0xe64d46bd, 0x5491b58d, 0xc471055d, 0x6046fd4, 0x5060ff15, 0x981924fb, 0xbdd697e9, 0x4089cc43, 0xd967779e, 0xe8b0bd42, 0x8907888b, 0x19e7385b, 0xc879dbee, 0x7ca1470a, 0x427ce90f, 0x84f8c91e, 0x0, 0x80098386, 0x2b3248ed, 0x111eac70, 0x5a6c4e72, 0xefdfbff, 0x850f5638, 0xae3d1ed5, 0x2d362739, 0xf0a64d9, 0x5c6821a6, 0x5b9bd154, 0x36243a2e, 0xa0cb167, 0x57930fe7, 0xeeb4d296, 0x9b1b9e91, 0xc0804fc5, 0xdc61a220, 0x775a694b, 0x121c161a, 0x93e20aba, 0xa0c0e52a, 0x223c43e0, 0x1b121d17, 0x90e0b0d, 0x8bf2adc7, 0xb62db9a8, 0x1e14c8a9, 0xf1578519, 0x75af4c07, 0x99eebbdd, 0x7fa3fd60, 0x1f79f26, 0x725cbcf5, 0x6644c53b, 0xfb5b347e, 0x438b7629, 0x23cbdcc6, 0xedb668fc, 0xe4b863f1, 0x31d7cadc, 0x63421085, 0x97134022, 0xc6842011, 0x4a857d24, 0xbbd2f83d, 0xf9ae1132, 0x29c76da1, 0x9e1d4b2f, 0xb2dcf330, 0x860dec52, 0xc177d0e3, 0xb32b6c16, 0x70a999b9, 0x9411fa48, 0xe9472264, 0xfca8c48c, 0xf0a01a3f, 0x7d56d82c, 0x3322ef90, 0x4987c74e, 0x38d9c1d1, 0xca8cfea2, 0xd498360b, 0xf5a6cf81, 0x7aa528de, 0xb7da268e, 0xad3fa4bf, 0x3a2ce49d, 0x78500d92, 0x5f6a9bcc, 0x7e546246, 0x8df6c213, 0xd890e8b8, 0x392e5ef7, 0xc382f5af, 0x5d9fbe80, 0xd0697c93, 0xd56fa92d, 0x25cfb312, 0xacc83b99, 0x1810a77d, 0x9ce86e63, 0x3bdb7bbb, 0x26cd0978, 0x596ef418, 0x9aec01b7, 0x4f83a89a, 0x95e6656e, 0xffaa7ee6, 0xbc2108cf, 0x15efe6e8, 0xe7bad99b, 0x6f4ace36, 0x9fead409, 0xb029d67c, 0xa431afb2, 0x3f2a3123, 0xa5c63094, 0xa235c066, 0x4e7437bc, 0x82fca6ca, 0x90e0b0d0, 0xa73315d8, 0x4f14a98, 0xec41f7da, 0xcd7f0e50, 0x91172ff6, 0x4d768dd6, 0xef434db0, 0xaacc544d, 0x96e4df04, 0xd19ee3b5, 0x6a4c1b88, 0x2cc1b81f, 0x65467f51, 0x5e9d04ea, 0x8c015d35, 0x87fa7374, 0xbfb2e41, 0x67b35a1d, 0xdb9252d2, 0x10e93356, 0xd66d1347, 0xd79a8c61, 0xa1377a0c, 0xf8598e14, 0x13eb893c, 0xa9ceee27, 0x61b735c9, 0x1ce1ede5, 0x477a3cb1, 0xd29c59df, 0xf2553f73, 0x141879ce, 0xc773bf37, 0xf753eacd, 0xfd5f5baa, 0x3ddf146f, 0x447886db, 0xafca81f3, 0x68b93ec4, 0x24382c34, 0xa3c25f40, 0x1d1672c3, 0xe2bc0c25, 0x3c288b49, 0xdff4195, 0xa8397101, 0xc08deb3, 0xb4d89ce4, 0x566490c1, 0xcb7b6184, 0x32d570b6, 0x6c48745c, 0xb8d04257]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/AES.swift",
+      "kind": "Array",
+      "offset": 22761,
+      "length": 3050,
+      "value": "[0xc6a56363, 0xf8847c7c, 0xee997777, 0xf68d7b7b, 0xff0df2f2, 0xd6bd6b6b, 0xdeb16f6f, 0x9154c5c5, 0x60503030, 0x2030101, 0xcea96767, 0x567d2b2b, 0xe719fefe, 0xb562d7d7, 0x4de6abab, 0xec9a7676, 0x8f45caca, 0x1f9d8282, 0x8940c9c9, 0xfa877d7d, 0xef15fafa, 0xb2eb5959, 0x8ec94747, 0xfb0bf0f0, 0x41ecadad, 0xb367d4d4, 0x5ffda2a2, 0x45eaafaf, 0x23bf9c9c, 0x53f7a4a4, 0xe4967272, 0x9b5bc0c0, 0x75c2b7b7, 0xe11cfdfd, 0x3dae9393, 0x4c6a2626, 0x6c5a3636, 0x7e413f3f, 0xf502f7f7, 0x834fcccc, 0x685c3434, 0x51f4a5a5, 0xd134e5e5, 0xf908f1f1, 0xe2937171, 0xab73d8d8, 0x62533131, 0x2a3f1515, 0x80c0404, 0x9552c7c7, 0x46652323, 0x9d5ec3c3, 0x30281818, 0x37a19696, 0xa0f0505, 0x2fb59a9a, 0xe090707, 0x24361212, 0x1b9b8080, 0xdf3de2e2, 0xcd26ebeb, 0x4e692727, 0x7fcdb2b2, 0xea9f7575, 0x121b0909, 0x1d9e8383, 0x58742c2c, 0x342e1a1a, 0x362d1b1b, 0xdcb26e6e, 0xb4ee5a5a, 0x5bfba0a0, 0xa4f65252, 0x764d3b3b, 0xb761d6d6, 0x7dceb3b3, 0x527b2929, 0xdd3ee3e3, 0x5e712f2f, 0x13978484, 0xa6f55353, 0xb968d1d1, 0x0, 0xc12ceded, 0x40602020, 0xe31ffcfc, 0x79c8b1b1, 0xb6ed5b5b, 0xd4be6a6a, 0x8d46cbcb, 0x67d9bebe, 0x724b3939, 0x94de4a4a, 0x98d44c4c, 0xb0e85858, 0x854acfcf, 0xbb6bd0d0, 0xc52aefef, 0x4fe5aaaa, 0xed16fbfb, 0x86c54343, 0x9ad74d4d, 0x66553333, 0x11948585, 0x8acf4545, 0xe910f9f9, 0x4060202, 0xfe817f7f, 0xa0f05050, 0x78443c3c, 0x25ba9f9f, 0x4be3a8a8, 0xa2f35151, 0x5dfea3a3, 0x80c04040, 0x58a8f8f, 0x3fad9292, 0x21bc9d9d, 0x70483838, 0xf104f5f5, 0x63dfbcbc, 0x77c1b6b6, 0xaf75dada, 0x42632121, 0x20301010, 0xe51affff, 0xfd0ef3f3, 0xbf6dd2d2, 0x814ccdcd, 0x18140c0c, 0x26351313, 0xc32fecec, 0xbee15f5f, 0x35a29797, 0x88cc4444, 0x2e391717, 0x9357c4c4, 0x55f2a7a7, 0xfc827e7e, 0x7a473d3d, 0xc8ac6464, 0xbae75d5d, 0x322b1919, 0xe6957373, 0xc0a06060, 0x19988181, 0x9ed14f4f, 0xa37fdcdc, 0x44662222, 0x547e2a2a, 0x3bab9090, 0xb838888, 0x8cca4646, 0xc729eeee, 0x6bd3b8b8, 0x283c1414, 0xa779dede, 0xbce25e5e, 0x161d0b0b, 0xad76dbdb, 0xdb3be0e0, 0x64563232, 0x744e3a3a, 0x141e0a0a, 0x92db4949, 0xc0a0606, 0x486c2424, 0xb8e45c5c, 0x9f5dc2c2, 0xbd6ed3d3, 0x43efacac, 0xc4a66262, 0x39a89191, 0x31a49595, 0xd337e4e4, 0xf28b7979, 0xd532e7e7, 0x8b43c8c8, 0x6e593737, 0xdab76d6d, 0x18c8d8d, 0xb164d5d5, 0x9cd24e4e, 0x49e0a9a9, 0xd8b46c6c, 0xacfa5656, 0xf307f4f4, 0xcf25eaea, 0xcaaf6565, 0xf48e7a7a, 0x47e9aeae, 0x10180808, 0x6fd5baba, 0xf0887878, 0x4a6f2525, 0x5c722e2e, 0x38241c1c, 0x57f1a6a6, 0x73c7b4b4, 0x9751c6c6, 0xcb23e8e8, 0xa17cdddd, 0xe89c7474, 0x3e211f1f, 0x96dd4b4b, 0x61dcbdbd, 0xd868b8b, 0xf858a8a, 0xe0907070, 0x7c423e3e, 0x71c4b5b5, 0xccaa6666, 0x90d84848, 0x6050303, 0xf701f6f6, 0x1c120e0e, 0xc2a36161, 0x6a5f3535, 0xaef95757, 0x69d0b9b9, 0x17918686, 0x9958c1c1, 0x3a271d1d, 0x27b99e9e, 0xd938e1e1, 0xeb13f8f8, 0x2bb39898, 0x22331111, 0xd2bb6969, 0xa970d9d9, 0x7898e8e, 0x33a79494, 0x2db69b9b, 0x3c221e1e, 0x15928787, 0xc920e9e9, 0x8749cece, 0xaaff5555, 0x50782828, 0xa57adfdf, 0x38f8c8c, 0x59f8a1a1, 0x9808989, 0x1a170d0d, 0x65dabfbf, 0xd731e6e6, 0x84c64242, 0xd0b86868, 0x82c34141, 0x29b09999, 0x5a772d2d, 0x1e110f0f, 0x7bcbb0b0, 0xa8fc5454, 0x6dd6bbbb, 0x2c3a1616]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/AES.swift",
+      "kind": "Array",
+      "offset": 25867,
+      "length": 3050,
+      "value": "[0x5150a7f4, 0x7e536541, 0x1ac3a417, 0x3a965e27, 0x3bcb6bab, 0x1ff1459d, 0xacab58fa, 0x4b9303e3, 0x2055fa30, 0xadf66d76, 0x889176cc, 0xf5254c02, 0x4ffcd7e5, 0xc5d7cb2a, 0x26804435, 0xb58fa362, 0xde495ab1, 0x25671bba, 0x45980eea, 0x5de1c0fe, 0xc302752f, 0x8112f04c, 0x8da39746, 0x6bc6f9d3, 0x3e75f8f, 0x15959c92, 0xbfeb7a6d, 0x95da5952, 0xd42d83be, 0x58d32174, 0x492969e0, 0x8e44c8c9, 0x756a89c2, 0xf478798e, 0x996b3e58, 0x27dd71b9, 0xbeb64fe1, 0xf017ad88, 0xc966ac20, 0x7db43ace, 0x63184adf, 0xe582311a, 0x97603351, 0x62457f53, 0xb1e07764, 0xbb84ae6b, 0xfe1ca081, 0xf9942b08, 0x70586848, 0x8f19fd45, 0x94876cde, 0x52b7f87b, 0xab23d373, 0x72e2024b, 0xe3578f1f, 0x662aab55, 0xb20728eb, 0x2f03c2b5, 0x869a7bc5, 0xd3a50837, 0x30f28728, 0x23b2a5bf, 0x2ba6a03, 0xed5c8216, 0x8a2b1ccf, 0xa792b479, 0xf3f0f207, 0x4ea1e269, 0x65cdf4da, 0x6d5be05, 0xd11f6234, 0xc48afea6, 0x349d532e, 0xa2a055f3, 0x532e18a, 0xa475ebf6, 0xb39ec83, 0x40aaef60, 0x5e069f71, 0xbd51106e, 0x3ef98a21, 0x963d06dd, 0xddae053e, 0x4d46bde6, 0x91b58d54, 0x71055dc4, 0x46fd406, 0x60ff1550, 0x1924fb98, 0xd697e9bd, 0x89cc4340, 0x67779ed9, 0xb0bd42e8, 0x7888b89, 0xe7385b19, 0x79dbeec8, 0xa1470a7c, 0x7ce90f42, 0xf8c91e84, 0x0, 0x9838680, 0x3248ed2b, 0x1eac7011, 0x6c4e725a, 0xfdfbff0e, 0xf563885, 0x3d1ed5ae, 0x3627392d, 0xa64d90f, 0x6821a65c, 0x9bd1545b, 0x243a2e36, 0xcb1670a, 0x930fe757, 0xb4d296ee, 0x1b9e919b, 0x804fc5c0, 0x61a220dc, 0x5a694b77, 0x1c161a12, 0xe20aba93, 0xc0e52aa0, 0x3c43e022, 0x121d171b, 0xe0b0d09, 0xf2adc78b, 0x2db9a8b6, 0x14c8a91e, 0x578519f1, 0xaf4c0775, 0xeebbdd99, 0xa3fd607f, 0xf79f2601, 0x5cbcf572, 0x44c53b66, 0x5b347efb, 0x8b762943, 0xcbdcc623, 0xb668fced, 0xb863f1e4, 0xd7cadc31, 0x42108563, 0x13402297, 0x842011c6, 0x857d244a, 0xd2f83dbb, 0xae1132f9, 0xc76da129, 0x1d4b2f9e, 0xdcf330b2, 0xdec5286, 0x77d0e3c1, 0x2b6c16b3, 0xa999b970, 0x11fa4894, 0x472264e9, 0xa8c48cfc, 0xa01a3ff0, 0x56d82c7d, 0x22ef9033, 0x87c74e49, 0xd9c1d138, 0x8cfea2ca, 0x98360bd4, 0xa6cf81f5, 0xa528de7a, 0xda268eb7, 0x3fa4bfad, 0x2ce49d3a, 0x500d9278, 0x6a9bcc5f, 0x5462467e, 0xf6c2138d, 0x90e8b8d8, 0x2e5ef739, 0x82f5afc3, 0x9fbe805d, 0x697c93d0, 0x6fa92dd5, 0xcfb31225, 0xc83b99ac, 0x10a77d18, 0xe86e639c, 0xdb7bbb3b, 0xcd097826, 0x6ef41859, 0xec01b79a, 0x83a89a4f, 0xe6656e95, 0xaa7ee6ff, 0x2108cfbc, 0xefe6e815, 0xbad99be7, 0x4ace366f, 0xead4099f, 0x29d67cb0, 0x31afb2a4, 0x2a31233f, 0xc63094a5, 0x35c066a2, 0x7437bc4e, 0xfca6ca82, 0xe0b0d090, 0x3315d8a7, 0xf14a9804, 0x41f7daec, 0x7f0e50cd, 0x172ff691, 0x768dd64d, 0x434db0ef, 0xcc544daa, 0xe4df0496, 0x9ee3b5d1, 0x4c1b886a, 0xc1b81f2c, 0x467f5165, 0x9d04ea5e, 0x15d358c, 0xfa737487, 0xfb2e410b, 0xb35a1d67, 0x9252d2db, 0xe9335610, 0x6d1347d6, 0x9a8c61d7, 0x377a0ca1, 0x598e14f8, 0xeb893c13, 0xceee27a9, 0xb735c961, 0xe1ede51c, 0x7a3cb147, 0x9c59dfd2, 0x553f73f2, 0x1879ce14, 0x73bf37c7, 0x53eacdf7, 0x5f5baafd, 0xdf146f3d, 0x7886db44, 0xca81f3af, 0xb93ec468, 0x382c3424, 0xc25f40a3, 0x1672c31d, 0xbc0c25e2, 0x288b493c, 0xff41950d, 0x397101a8, 0x8deb30c, 0xd89ce4b4, 0x6490c156, 0x7b6184cb, 0xd570b632, 0x48745c6c, 0xd04257b8]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/AES.swift",
+      "kind": "Array",
+      "offset": 28969,
+      "length": 3050,
+      "value": "[0x0, 0xb0d090e, 0x161a121c, 0x1d171b12, 0x2c342438, 0x27392d36, 0x3a2e3624, 0x31233f2a, 0x58684870, 0x5365417e, 0x4e725a6c, 0x457f5362, 0x745c6c48, 0x7f516546, 0x62467e54, 0x694b775a, 0xb0d090e0, 0xbbdd99ee, 0xa6ca82fc, 0xadc78bf2, 0x9ce4b4d8, 0x97e9bdd6, 0x8afea6c4, 0x81f3afca, 0xe8b8d890, 0xe3b5d19e, 0xfea2ca8c, 0xf5afc382, 0xc48cfca8, 0xcf81f5a6, 0xd296eeb4, 0xd99be7ba, 0x7bbb3bdb, 0x70b632d5, 0x6da129c7, 0x66ac20c9, 0x578f1fe3, 0x5c8216ed, 0x41950dff, 0x4a9804f1, 0x23d373ab, 0x28de7aa5, 0x35c961b7, 0x3ec468b9, 0xfe75793, 0x4ea5e9d, 0x19fd458f, 0x12f04c81, 0xcb6bab3b, 0xc066a235, 0xdd71b927, 0xd67cb029, 0xe75f8f03, 0xec52860d, 0xf1459d1f, 0xfa489411, 0x9303e34b, 0x980eea45, 0x8519f157, 0x8e14f859, 0xbf37c773, 0xb43ace7d, 0xa92dd56f, 0xa220dc61, 0xf66d76ad, 0xfd607fa3, 0xe07764b1, 0xeb7a6dbf, 0xda595295, 0xd1545b9b, 0xcc434089, 0xc74e4987, 0xae053edd, 0xa50837d3, 0xb81f2cc1, 0xb31225cf, 0x82311ae5, 0x893c13eb, 0x942b08f9, 0x9f2601f7, 0x46bde64d, 0x4db0ef43, 0x50a7f451, 0x5baafd5f, 0x6a89c275, 0x6184cb7b, 0x7c93d069, 0x779ed967, 0x1ed5ae3d, 0x15d8a733, 0x8cfbc21, 0x3c2b52f, 0x32e18a05, 0x39ec830b, 0x24fb9819, 0x2ff69117, 0x8dd64d76, 0x86db4478, 0x9bcc5f6a, 0x90c15664, 0xa1e2694e, 0xaaef6040, 0xb7f87b52, 0xbcf5725c, 0xd5be0506, 0xdeb30c08, 0xc3a4171a, 0xc8a91e14, 0xf98a213e, 0xf2872830, 0xef903322, 0xe49d3a2c, 0x3d06dd96, 0x360bd498, 0x2b1ccf8a, 0x2011c684, 0x1132f9ae, 0x1a3ff0a0, 0x728ebb2, 0xc25e2bc, 0x656e95e6, 0x6e639ce8, 0x737487fa, 0x78798ef4, 0x495ab1de, 0x4257b8d0, 0x5f40a3c2, 0x544daacc, 0xf7daec41, 0xfcd7e54f, 0xe1c0fe5d, 0xeacdf753, 0xdbeec879, 0xd0e3c177, 0xcdf4da65, 0xc6f9d36b, 0xafb2a431, 0xa4bfad3f, 0xb9a8b62d, 0xb2a5bf23, 0x83868009, 0x888b8907, 0x959c9215, 0x9e919b1b, 0x470a7ca1, 0x4c0775af, 0x51106ebd, 0x5a1d67b3, 0x6b3e5899, 0x60335197, 0x7d244a85, 0x7629438b, 0x1f6234d1, 0x146f3ddf, 0x97826cd, 0x2752fc3, 0x335610e9, 0x385b19e7, 0x254c02f5, 0x2e410bfb, 0x8c61d79a, 0x876cde94, 0x9a7bc586, 0x9176cc88, 0xa055f3a2, 0xab58faac, 0xb64fe1be, 0xbd42e8b0, 0xd4099fea, 0xdf0496e4, 0xc2138df6, 0xc91e84f8, 0xf83dbbd2, 0xf330b2dc, 0xee27a9ce, 0xe52aa0c0, 0x3cb1477a, 0x37bc4e74, 0x2aab5566, 0x21a65c68, 0x10856342, 0x1b886a4c, 0x69f715e, 0xd927850, 0x64d90f0a, 0x6fd40604, 0x72c31d16, 0x79ce1418, 0x48ed2b32, 0x43e0223c, 0x5ef7392e, 0x55fa3020, 0x1b79aec, 0xaba93e2, 0x17ad88f0, 0x1ca081fe, 0x2d83bed4, 0x268eb7da, 0x3b99acc8, 0x3094a5c6, 0x59dfd29c, 0x52d2db92, 0x4fc5c080, 0x44c8c98e, 0x75ebf6a4, 0x7ee6ffaa, 0x63f1e4b8, 0x68fcedb6, 0xb1670a0c, 0xba6a0302, 0xa77d1810, 0xac70111e, 0x9d532e34, 0x965e273a, 0x8b493c28, 0x80443526, 0xe90f427c, 0xe2024b72, 0xff155060, 0xf418596e, 0xc53b6644, 0xce366f4a, 0xd3217458, 0xd82c7d56, 0x7a0ca137, 0x7101a839, 0x6c16b32b, 0x671bba25, 0x5638850f, 0x5d358c01, 0x40229713, 0x4b2f9e1d, 0x2264e947, 0x2969e049, 0x347efb5b, 0x3f73f255, 0xe50cd7f, 0x55dc471, 0x184adf63, 0x1347d66d, 0xcadc31d7, 0xc1d138d9, 0xdcc623cb, 0xd7cb2ac5, 0xe6e815ef, 0xede51ce1, 0xf0f207f3, 0xfbff0efd, 0x92b479a7, 0x99b970a9, 0x84ae6bbb, 0x8fa362b5, 0xbe805d9f, 0xb58d5491, 0xa89a4f83, 0xa397468d]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/AES.swift",
+      "kind": "Array",
+      "offset": 32071,
+      "length": 3050,
+      "value": "[0x0, 0xd090e0b, 0x1a121c16, 0x171b121d, 0x3424382c, 0x392d3627, 0x2e36243a, 0x233f2a31, 0x68487058, 0x65417e53, 0x725a6c4e, 0x7f536245, 0x5c6c4874, 0x5165467f, 0x467e5462, 0x4b775a69, 0xd090e0b0, 0xdd99eebb, 0xca82fca6, 0xc78bf2ad, 0xe4b4d89c, 0xe9bdd697, 0xfea6c48a, 0xf3afca81, 0xb8d890e8, 0xb5d19ee3, 0xa2ca8cfe, 0xafc382f5, 0x8cfca8c4, 0x81f5a6cf, 0x96eeb4d2, 0x9be7bad9, 0xbb3bdb7b, 0xb632d570, 0xa129c76d, 0xac20c966, 0x8f1fe357, 0x8216ed5c, 0x950dff41, 0x9804f14a, 0xd373ab23, 0xde7aa528, 0xc961b735, 0xc468b93e, 0xe757930f, 0xea5e9d04, 0xfd458f19, 0xf04c8112, 0x6bab3bcb, 0x66a235c0, 0x71b927dd, 0x7cb029d6, 0x5f8f03e7, 0x52860dec, 0x459d1ff1, 0x489411fa, 0x3e34b93, 0xeea4598, 0x19f15785, 0x14f8598e, 0x37c773bf, 0x3ace7db4, 0x2dd56fa9, 0x20dc61a2, 0x6d76adf6, 0x607fa3fd, 0x7764b1e0, 0x7a6dbfeb, 0x595295da, 0x545b9bd1, 0x434089cc, 0x4e4987c7, 0x53eddae, 0x837d3a5, 0x1f2cc1b8, 0x1225cfb3, 0x311ae582, 0x3c13eb89, 0x2b08f994, 0x2601f79f, 0xbde64d46, 0xb0ef434d, 0xa7f45150, 0xaafd5f5b, 0x89c2756a, 0x84cb7b61, 0x93d0697c, 0x9ed96777, 0xd5ae3d1e, 0xd8a73315, 0xcfbc2108, 0xc2b52f03, 0xe18a0532, 0xec830b39, 0xfb981924, 0xf691172f, 0xd64d768d, 0xdb447886, 0xcc5f6a9b, 0xc1566490, 0xe2694ea1, 0xef6040aa, 0xf87b52b7, 0xf5725cbc, 0xbe0506d5, 0xb30c08de, 0xa4171ac3, 0xa91e14c8, 0x8a213ef9, 0x872830f2, 0x903322ef, 0x9d3a2ce4, 0x6dd963d, 0xbd49836, 0x1ccf8a2b, 0x11c68420, 0x32f9ae11, 0x3ff0a01a, 0x28ebb207, 0x25e2bc0c, 0x6e95e665, 0x639ce86e, 0x7487fa73, 0x798ef478, 0x5ab1de49, 0x57b8d042, 0x40a3c25f, 0x4daacc54, 0xdaec41f7, 0xd7e54ffc, 0xc0fe5de1, 0xcdf753ea, 0xeec879db, 0xe3c177d0, 0xf4da65cd, 0xf9d36bc6, 0xb2a431af, 0xbfad3fa4, 0xa8b62db9, 0xa5bf23b2, 0x86800983, 0x8b890788, 0x9c921595, 0x919b1b9e, 0xa7ca147, 0x775af4c, 0x106ebd51, 0x1d67b35a, 0x3e58996b, 0x33519760, 0x244a857d, 0x29438b76, 0x6234d11f, 0x6f3ddf14, 0x7826cd09, 0x752fc302, 0x5610e933, 0x5b19e738, 0x4c02f525, 0x410bfb2e, 0x61d79a8c, 0x6cde9487, 0x7bc5869a, 0x76cc8891, 0x55f3a2a0, 0x58faacab, 0x4fe1beb6, 0x42e8b0bd, 0x99fead4, 0x496e4df, 0x138df6c2, 0x1e84f8c9, 0x3dbbd2f8, 0x30b2dcf3, 0x27a9ceee, 0x2aa0c0e5, 0xb1477a3c, 0xbc4e7437, 0xab55662a, 0xa65c6821, 0x85634210, 0x886a4c1b, 0x9f715e06, 0x9278500d, 0xd90f0a64, 0xd406046f, 0xc31d1672, 0xce141879, 0xed2b3248, 0xe0223c43, 0xf7392e5e, 0xfa302055, 0xb79aec01, 0xba93e20a, 0xad88f017, 0xa081fe1c, 0x83bed42d, 0x8eb7da26, 0x99acc83b, 0x94a5c630, 0xdfd29c59, 0xd2db9252, 0xc5c0804f, 0xc8c98e44, 0xebf6a475, 0xe6ffaa7e, 0xf1e4b863, 0xfcedb668, 0x670a0cb1, 0x6a0302ba, 0x7d1810a7, 0x70111eac, 0x532e349d, 0x5e273a96, 0x493c288b, 0x44352680, 0xf427ce9, 0x24b72e2, 0x155060ff, 0x18596ef4, 0x3b6644c5, 0x366f4ace, 0x217458d3, 0x2c7d56d8, 0xca1377a, 0x1a83971, 0x16b32b6c, 0x1bba2567, 0x38850f56, 0x358c015d, 0x22971340, 0x2f9e1d4b, 0x64e94722, 0x69e04929, 0x7efb5b34, 0x73f2553f, 0x50cd7f0e, 0x5dc47105, 0x4adf6318, 0x47d66d13, 0xdc31d7ca, 0xd138d9c1, 0xc623cbdc, 0xcb2ac5d7, 0xe815efe6, 0xe51ce1ed, 0xf207f3f0, 0xff0efdfb, 0xb479a792, 0xb970a999, 0xae6bbb84, 0xa362b58f, 0x805d9fbe, 0x8d5491b5, 0x9a4f83a8, 0x97468da3]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/AES.swift",
+      "kind": "Array",
+      "offset": 35173,
+      "length": 3050,
+      "value": "[0x0, 0x90e0b0d, 0x121c161a, 0x1b121d17, 0x24382c34, 0x2d362739, 0x36243a2e, 0x3f2a3123, 0x48705868, 0x417e5365, 0x5a6c4e72, 0x5362457f, 0x6c48745c, 0x65467f51, 0x7e546246, 0x775a694b, 0x90e0b0d0, 0x99eebbdd, 0x82fca6ca, 0x8bf2adc7, 0xb4d89ce4, 0xbdd697e9, 0xa6c48afe, 0xafca81f3, 0xd890e8b8, 0xd19ee3b5, 0xca8cfea2, 0xc382f5af, 0xfca8c48c, 0xf5a6cf81, 0xeeb4d296, 0xe7bad99b, 0x3bdb7bbb, 0x32d570b6, 0x29c76da1, 0x20c966ac, 0x1fe3578f, 0x16ed5c82, 0xdff4195, 0x4f14a98, 0x73ab23d3, 0x7aa528de, 0x61b735c9, 0x68b93ec4, 0x57930fe7, 0x5e9d04ea, 0x458f19fd, 0x4c8112f0, 0xab3bcb6b, 0xa235c066, 0xb927dd71, 0xb029d67c, 0x8f03e75f, 0x860dec52, 0x9d1ff145, 0x9411fa48, 0xe34b9303, 0xea45980e, 0xf1578519, 0xf8598e14, 0xc773bf37, 0xce7db43a, 0xd56fa92d, 0xdc61a220, 0x76adf66d, 0x7fa3fd60, 0x64b1e077, 0x6dbfeb7a, 0x5295da59, 0x5b9bd154, 0x4089cc43, 0x4987c74e, 0x3eddae05, 0x37d3a508, 0x2cc1b81f, 0x25cfb312, 0x1ae58231, 0x13eb893c, 0x8f9942b, 0x1f79f26, 0xe64d46bd, 0xef434db0, 0xf45150a7, 0xfd5f5baa, 0xc2756a89, 0xcb7b6184, 0xd0697c93, 0xd967779e, 0xae3d1ed5, 0xa73315d8, 0xbc2108cf, 0xb52f03c2, 0x8a0532e1, 0x830b39ec, 0x981924fb, 0x91172ff6, 0x4d768dd6, 0x447886db, 0x5f6a9bcc, 0x566490c1, 0x694ea1e2, 0x6040aaef, 0x7b52b7f8, 0x725cbcf5, 0x506d5be, 0xc08deb3, 0x171ac3a4, 0x1e14c8a9, 0x213ef98a, 0x2830f287, 0x3322ef90, 0x3a2ce49d, 0xdd963d06, 0xd498360b, 0xcf8a2b1c, 0xc6842011, 0xf9ae1132, 0xf0a01a3f, 0xebb20728, 0xe2bc0c25, 0x95e6656e, 0x9ce86e63, 0x87fa7374, 0x8ef47879, 0xb1de495a, 0xb8d04257, 0xa3c25f40, 0xaacc544d, 0xec41f7da, 0xe54ffcd7, 0xfe5de1c0, 0xf753eacd, 0xc879dbee, 0xc177d0e3, 0xda65cdf4, 0xd36bc6f9, 0xa431afb2, 0xad3fa4bf, 0xb62db9a8, 0xbf23b2a5, 0x80098386, 0x8907888b, 0x9215959c, 0x9b1b9e91, 0x7ca1470a, 0x75af4c07, 0x6ebd5110, 0x67b35a1d, 0x58996b3e, 0x51976033, 0x4a857d24, 0x438b7629, 0x34d11f62, 0x3ddf146f, 0x26cd0978, 0x2fc30275, 0x10e93356, 0x19e7385b, 0x2f5254c, 0xbfb2e41, 0xd79a8c61, 0xde94876c, 0xc5869a7b, 0xcc889176, 0xf3a2a055, 0xfaacab58, 0xe1beb64f, 0xe8b0bd42, 0x9fead409, 0x96e4df04, 0x8df6c213, 0x84f8c91e, 0xbbd2f83d, 0xb2dcf330, 0xa9ceee27, 0xa0c0e52a, 0x477a3cb1, 0x4e7437bc, 0x55662aab, 0x5c6821a6, 0x63421085, 0x6a4c1b88, 0x715e069f, 0x78500d92, 0xf0a64d9, 0x6046fd4, 0x1d1672c3, 0x141879ce, 0x2b3248ed, 0x223c43e0, 0x392e5ef7, 0x302055fa, 0x9aec01b7, 0x93e20aba, 0x88f017ad, 0x81fe1ca0, 0xbed42d83, 0xb7da268e, 0xacc83b99, 0xa5c63094, 0xd29c59df, 0xdb9252d2, 0xc0804fc5, 0xc98e44c8, 0xf6a475eb, 0xffaa7ee6, 0xe4b863f1, 0xedb668fc, 0xa0cb167, 0x302ba6a, 0x1810a77d, 0x111eac70, 0x2e349d53, 0x273a965e, 0x3c288b49, 0x35268044, 0x427ce90f, 0x4b72e202, 0x5060ff15, 0x596ef418, 0x6644c53b, 0x6f4ace36, 0x7458d321, 0x7d56d82c, 0xa1377a0c, 0xa8397101, 0xb32b6c16, 0xba25671b, 0x850f5638, 0x8c015d35, 0x97134022, 0x9e1d4b2f, 0xe9472264, 0xe0492969, 0xfb5b347e, 0xf2553f73, 0xcd7f0e50, 0xc471055d, 0xdf63184a, 0xd66d1347, 0x31d7cadc, 0x38d9c1d1, 0x23cbdcc6, 0x2ac5d7cb, 0x15efe6e8, 0x1ce1ede5, 0x7f3f0f2, 0xefdfbff, 0x79a792b4, 0x70a999b9, 0x6bbb84ae, 0x62b58fa3, 0x5d9fbe80, 0x5491b58d, 0x4f83a89a, 0x468da397]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/AES.swift",
+      "kind": "Array",
+      "offset": 38275,
+      "length": 3050,
+      "value": "[0x0, 0xe0b0d09, 0x1c161a12, 0x121d171b, 0x382c3424, 0x3627392d, 0x243a2e36, 0x2a31233f, 0x70586848, 0x7e536541, 0x6c4e725a, 0x62457f53, 0x48745c6c, 0x467f5165, 0x5462467e, 0x5a694b77, 0xe0b0d090, 0xeebbdd99, 0xfca6ca82, 0xf2adc78b, 0xd89ce4b4, 0xd697e9bd, 0xc48afea6, 0xca81f3af, 0x90e8b8d8, 0x9ee3b5d1, 0x8cfea2ca, 0x82f5afc3, 0xa8c48cfc, 0xa6cf81f5, 0xb4d296ee, 0xbad99be7, 0xdb7bbb3b, 0xd570b632, 0xc76da129, 0xc966ac20, 0xe3578f1f, 0xed5c8216, 0xff41950d, 0xf14a9804, 0xab23d373, 0xa528de7a, 0xb735c961, 0xb93ec468, 0x930fe757, 0x9d04ea5e, 0x8f19fd45, 0x8112f04c, 0x3bcb6bab, 0x35c066a2, 0x27dd71b9, 0x29d67cb0, 0x3e75f8f, 0xdec5286, 0x1ff1459d, 0x11fa4894, 0x4b9303e3, 0x45980eea, 0x578519f1, 0x598e14f8, 0x73bf37c7, 0x7db43ace, 0x6fa92dd5, 0x61a220dc, 0xadf66d76, 0xa3fd607f, 0xb1e07764, 0xbfeb7a6d, 0x95da5952, 0x9bd1545b, 0x89cc4340, 0x87c74e49, 0xddae053e, 0xd3a50837, 0xc1b81f2c, 0xcfb31225, 0xe582311a, 0xeb893c13, 0xf9942b08, 0xf79f2601, 0x4d46bde6, 0x434db0ef, 0x5150a7f4, 0x5f5baafd, 0x756a89c2, 0x7b6184cb, 0x697c93d0, 0x67779ed9, 0x3d1ed5ae, 0x3315d8a7, 0x2108cfbc, 0x2f03c2b5, 0x532e18a, 0xb39ec83, 0x1924fb98, 0x172ff691, 0x768dd64d, 0x7886db44, 0x6a9bcc5f, 0x6490c156, 0x4ea1e269, 0x40aaef60, 0x52b7f87b, 0x5cbcf572, 0x6d5be05, 0x8deb30c, 0x1ac3a417, 0x14c8a91e, 0x3ef98a21, 0x30f28728, 0x22ef9033, 0x2ce49d3a, 0x963d06dd, 0x98360bd4, 0x8a2b1ccf, 0x842011c6, 0xae1132f9, 0xa01a3ff0, 0xb20728eb, 0xbc0c25e2, 0xe6656e95, 0xe86e639c, 0xfa737487, 0xf478798e, 0xde495ab1, 0xd04257b8, 0xc25f40a3, 0xcc544daa, 0x41f7daec, 0x4ffcd7e5, 0x5de1c0fe, 0x53eacdf7, 0x79dbeec8, 0x77d0e3c1, 0x65cdf4da, 0x6bc6f9d3, 0x31afb2a4, 0x3fa4bfad, 0x2db9a8b6, 0x23b2a5bf, 0x9838680, 0x7888b89, 0x15959c92, 0x1b9e919b, 0xa1470a7c, 0xaf4c0775, 0xbd51106e, 0xb35a1d67, 0x996b3e58, 0x97603351, 0x857d244a, 0x8b762943, 0xd11f6234, 0xdf146f3d, 0xcd097826, 0xc302752f, 0xe9335610, 0xe7385b19, 0xf5254c02, 0xfb2e410b, 0x9a8c61d7, 0x94876cde, 0x869a7bc5, 0x889176cc, 0xa2a055f3, 0xacab58fa, 0xbeb64fe1, 0xb0bd42e8, 0xead4099f, 0xe4df0496, 0xf6c2138d, 0xf8c91e84, 0xd2f83dbb, 0xdcf330b2, 0xceee27a9, 0xc0e52aa0, 0x7a3cb147, 0x7437bc4e, 0x662aab55, 0x6821a65c, 0x42108563, 0x4c1b886a, 0x5e069f71, 0x500d9278, 0xa64d90f, 0x46fd406, 0x1672c31d, 0x1879ce14, 0x3248ed2b, 0x3c43e022, 0x2e5ef739, 0x2055fa30, 0xec01b79a, 0xe20aba93, 0xf017ad88, 0xfe1ca081, 0xd42d83be, 0xda268eb7, 0xc83b99ac, 0xc63094a5, 0x9c59dfd2, 0x9252d2db, 0x804fc5c0, 0x8e44c8c9, 0xa475ebf6, 0xaa7ee6ff, 0xb863f1e4, 0xb668fced, 0xcb1670a, 0x2ba6a03, 0x10a77d18, 0x1eac7011, 0x349d532e, 0x3a965e27, 0x288b493c, 0x26804435, 0x7ce90f42, 0x72e2024b, 0x60ff1550, 0x6ef41859, 0x44c53b66, 0x4ace366f, 0x58d32174, 0x56d82c7d, 0x377a0ca1, 0x397101a8, 0x2b6c16b3, 0x25671bba, 0xf563885, 0x15d358c, 0x13402297, 0x1d4b2f9e, 0x472264e9, 0x492969e0, 0x5b347efb, 0x553f73f2, 0x7f0e50cd, 0x71055dc4, 0x63184adf, 0x6d1347d6, 0xd7cadc31, 0xd9c1d138, 0xcbdcc623, 0xc5d7cb2a, 0xefe6e815, 0xe1ede51c, 0xf3f0f207, 0xfdfbff0e, 0xa792b479, 0xa999b970, 0xbb84ae6b, 0xb58fa362, 0x9fbe805d, 0x91b58d54, 0x83a89a4f, 0x8da39746]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/DataConversion.swift",
+      "kind": "IntegerLiteral",
+      "offset": 2492,
+      "length": 1,
+      "value": "8"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/DataConversion.swift",
+      "kind": "IntegerLiteral",
+      "offset": 2497,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/DataConversion.swift",
+      "kind": "IntegerLiteral",
+      "offset": 2542,
+      "length": 1,
+      "value": "7"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/DataConversion.swift",
+      "kind": "IntegerLiteral",
+      "offset": 2547,
+      "length": 1,
+      "value": "8"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/DataConversion.swift",
+      "kind": "IntegerLiteral",
+      "offset": 2576,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/DataConversion.swift",
+      "kind": "IntegerLiteral",
+      "offset": 2780,
+      "length": 1,
+      "value": "1"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/DataConversion.swift",
+      "kind": "IntegerLiteral",
+      "offset": 2848,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/DataConversion.swift",
+      "kind": "IntegerLiteral",
+      "offset": 2870,
+      "length": 1,
+      "value": "8"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/DataConversion.swift",
+      "kind": "IntegerLiteral",
+      "offset": 2914,
+      "length": 4,
+      "value": "0xFF"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/DataConversion.swift",
+      "kind": "IntegerLiteral",
+      "offset": 2949,
+      "length": 1,
+      "value": "8"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/DataConversion.swift",
+      "kind": "IntegerLiteral",
+      "offset": 2979,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/DataConversion.swift",
+      "kind": "IntegerLiteral",
+      "offset": 3022,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/DataConversion.swift",
+      "kind": "IntegerLiteral",
+      "offset": 3102,
+      "length": 1,
+      "value": "1"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/Any.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1376,
+      "length": 10,
+      "value": "0b11111111"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/Any.swift",
+      "kind": "StringLiteral",
+      "offset": 3358,
+      "length": 6,
+      "value": "\"%02x\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/Any.swift",
+      "kind": "StringLiteral",
+      "offset": 3388,
+      "length": 2,
+      "value": "\"\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/Any.swift",
+      "kind": "StringLiteral",
+      "offset": 3559,
+      "length": 6,
+      "value": "\"%02x\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/Tools\/Any.swift",
+      "kind": "StringLiteral",
+      "offset": 3589,
+      "length": 2,
+      "value": "\"\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSTranscription.swift",
+      "kind": "StringLiteral",
+      "offset": 947,
+      "length": 32,
+      "value": "\"group.WhispererKeyboardSharing\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/BlockMode\/CBC.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1823,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/Codable.swift",
+      "kind": "IntegerLiteral",
+      "offset": 662,
+      "length": 1,
+      "value": "1"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/Codable.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1820,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/Codable.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1858,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/Codable.swift",
+      "kind": "Array",
+      "offset": 1876,
+      "length": 2,
+      "value": "[]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/Codable.swift",
+      "kind": "IntegerLiteral",
+      "offset": 2480,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/Codable.swift",
+      "kind": "IntegerLiteral",
+      "offset": 2814,
+      "length": 1,
+      "value": "1"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/Codable.swift",
+      "kind": "IntegerLiteral",
+      "offset": 2876,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/Codable.swift",
+      "kind": "IntegerLiteral",
+      "offset": 2898,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/Codable.swift",
+      "kind": "IntegerLiteral",
+      "offset": 3161,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/Codable.swift",
+      "kind": "IntegerLiteral",
+      "offset": 3187,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/Codable.swift",
+      "kind": "IntegerLiteral",
+      "offset": 3240,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/CS_BigInt\/Codable.swift",
+      "kind": "IntegerLiteral",
+      "offset": 3319,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/SHA1.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1010,
+      "length": 2,
+      "value": "20"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/SHA1.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1075,
+      "length": 2,
+      "value": "64"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/SHA1.swift",
+      "kind": "Array",
+      "offset": 1156,
+      "length": 60,
+      "value": "[0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/SHA1.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1332,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/SHA1.swift",
+      "kind": "BooleanLiteral",
+      "offset": 3441,
+      "length": 5,
+      "value": "false"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/BlockMode\/PCBC.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1835,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/Foundation\/Data+Extension.swift",
+      "kind": "BooleanLiteral",
+      "offset": 1803,
+      "length": 4,
+      "value": "true"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/Foundation\/Data+Extension.swift",
+      "kind": "BooleanLiteral",
+      "offset": 1955,
+      "length": 4,
+      "value": "true"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 240,
+      "length": 3,
+      "value": "100"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 270,
+      "length": 3,
+      "value": "101"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 293,
+      "length": 3,
+      "value": "200"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 312,
+      "length": 3,
+      "value": "201"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 332,
+      "length": 3,
+      "value": "202"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 371,
+      "length": 3,
+      "value": "203"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 392,
+      "length": 3,
+      "value": "204"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 416,
+      "length": 3,
+      "value": "205"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 442,
+      "length": 3,
+      "value": "206"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 478,
+      "length": 3,
+      "value": "300"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 506,
+      "length": 3,
+      "value": "301"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 523,
+      "length": 3,
+      "value": "302"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 543,
+      "length": 3,
+      "value": "303"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 566,
+      "length": 3,
+      "value": "304"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 586,
+      "length": 3,
+      "value": "305"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 604,
+      "length": 3,
+      "value": "306"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 633,
+      "length": 3,
+      "value": "307"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 664,
+      "length": 3,
+      "value": "400"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 688,
+      "length": 3,
+      "value": "401"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 715,
+      "length": 3,
+      "value": "402"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 736,
+      "length": 3,
+      "value": "403"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 756,
+      "length": 3,
+      "value": "404"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 784,
+      "length": 3,
+      "value": "405"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 809,
+      "length": 3,
+      "value": "406"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 848,
+      "length": 3,
+      "value": "407"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 874,
+      "length": 3,
+      "value": "408"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 894,
+      "length": 3,
+      "value": "409"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 910,
+      "length": 3,
+      "value": "410"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 936,
+      "length": 3,
+      "value": "411"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 966,
+      "length": 3,
+      "value": "412"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 999,
+      "length": 3,
+      "value": "413"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1028,
+      "length": 3,
+      "value": "414"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1060,
+      "length": 3,
+      "value": "415"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1100,
+      "length": 3,
+      "value": "416"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1129,
+      "length": 3,
+      "value": "417"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1169,
+      "length": 3,
+      "value": "500"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1195,
+      "length": 3,
+      "value": "501"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1217,
+      "length": 3,
+      "value": "502"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1247,
+      "length": 3,
+      "value": "503"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1273,
+      "length": 3,
+      "value": "504"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1308,
+      "length": 3,
+      "value": "505"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1339,
+      "length": 5,
+      "value": "-1001"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/SwiftHTTP\/StatusCode.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1375,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSSttModel.swift",
+      "kind": "StringLiteral",
+      "offset": 592,
+      "length": 2,
+      "value": "\"\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSSttModel.swift",
+      "kind": "StringLiteral",
+      "offset": 639,
+      "length": 2,
+      "value": "\"\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSSttModel.swift",
+      "kind": "IntegerLiteral",
+      "offset": 688,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSSttModel.swift",
+      "kind": "StringLiteral",
+      "offset": 739,
+      "length": 2,
+      "value": "\"\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSSttModel.swift",
+      "kind": "StringLiteral",
+      "offset": 912,
+      "length": 2,
+      "value": "\"\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSSttModel.swift",
+      "kind": "BooleanLiteral",
+      "offset": 965,
+      "length": 5,
+      "value": "false"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSSttModel.swift",
+      "kind": "StringLiteral",
+      "offset": 1024,
+      "length": 2,
+      "value": "\"\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSSttModel.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1080,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSSttModel.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1133,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/Checksum.swift",
+      "kind": "Array",
+      "offset": 1047,
+      "length": 3460,
+      "value": "[0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3, 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91, 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE, 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5, 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B, 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F, 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924, 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433, 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818, 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01, 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457, 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65, 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2, 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9, 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F, 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A, 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683, 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8, 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7, 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC, 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5, 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B, 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79, 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236, 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D, 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A, 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713, 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777, 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C, 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB, 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9, 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF, 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94, 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/Checksum.swift",
+      "kind": "Array",
+      "offset": 4568,
+      "length": 3460,
+      "value": "[0x00000000, 0xF26B8303, 0xE13B70F7, 0x1350F3F4, 0xC79A971F, 0x35F1141C, 0x26A1E7E8, 0xD4CA64EB, 0x8AD958CF, 0x78B2DBCC, 0x6BE22838, 0x9989AB3B, 0x4D43CFD0, 0xBF284CD3, 0xAC78BF27, 0x5E133C24, 0x105EC76F, 0xE235446C, 0xF165B798, 0x030E349B, 0xD7C45070, 0x25AFD373, 0x36FF2087, 0xC494A384, 0x9A879FA0, 0x68EC1CA3, 0x7BBCEF57, 0x89D76C54, 0x5D1D08BF, 0xAF768BBC, 0xBC267848, 0x4E4DFB4B, 0x20BD8EDE, 0xD2D60DDD, 0xC186FE29, 0x33ED7D2A, 0xE72719C1, 0x154C9AC2, 0x061C6936, 0xF477EA35, 0xAA64D611, 0x580F5512, 0x4B5FA6E6, 0xB93425E5, 0x6DFE410E, 0x9F95C20D, 0x8CC531F9, 0x7EAEB2FA, 0x30E349B1, 0xC288CAB2, 0xD1D83946, 0x23B3BA45, 0xF779DEAE, 0x05125DAD, 0x1642AE59, 0xE4292D5A, 0xBA3A117E, 0x4851927D, 0x5B016189, 0xA96AE28A, 0x7DA08661, 0x8FCB0562, 0x9C9BF696, 0x6EF07595, 0x417B1DBC, 0xB3109EBF, 0xA0406D4B, 0x522BEE48, 0x86E18AA3, 0x748A09A0, 0x67DAFA54, 0x95B17957, 0xCBA24573, 0x39C9C670, 0x2A993584, 0xD8F2B687, 0x0C38D26C, 0xFE53516F, 0xED03A29B, 0x1F682198, 0x5125DAD3, 0xA34E59D0, 0xB01EAA24, 0x42752927, 0x96BF4DCC, 0x64D4CECF, 0x77843D3B, 0x85EFBE38, 0xDBFC821C, 0x2997011F, 0x3AC7F2EB, 0xC8AC71E8, 0x1C661503, 0xEE0D9600, 0xFD5D65F4, 0x0F36E6F7, 0x61C69362, 0x93AD1061, 0x80FDE395, 0x72966096, 0xA65C047D, 0x5437877E, 0x4767748A, 0xB50CF789, 0xEB1FCBAD, 0x197448AE, 0x0A24BB5A, 0xF84F3859, 0x2C855CB2, 0xDEEEDFB1, 0xCDBE2C45, 0x3FD5AF46, 0x7198540D, 0x83F3D70E, 0x90A324FA, 0x62C8A7F9, 0xB602C312, 0x44694011, 0x5739B3E5, 0xA55230E6, 0xFB410CC2, 0x092A8FC1, 0x1A7A7C35, 0xE811FF36, 0x3CDB9BDD, 0xCEB018DE, 0xDDE0EB2A, 0x2F8B6829, 0x82F63B78, 0x709DB87B, 0x63CD4B8F, 0x91A6C88C, 0x456CAC67, 0xB7072F64, 0xA457DC90, 0x563C5F93, 0x082F63B7, 0xFA44E0B4, 0xE9141340, 0x1B7F9043, 0xCFB5F4A8, 0x3DDE77AB, 0x2E8E845F, 0xDCE5075C, 0x92A8FC17, 0x60C37F14, 0x73938CE0, 0x81F80FE3, 0x55326B08, 0xA759E80B, 0xB4091BFF, 0x466298FC, 0x1871A4D8, 0xEA1A27DB, 0xF94AD42F, 0x0B21572C, 0xDFEB33C7, 0x2D80B0C4, 0x3ED04330, 0xCCBBC033, 0xA24BB5A6, 0x502036A5, 0x4370C551, 0xB11B4652, 0x65D122B9, 0x97BAA1BA, 0x84EA524E, 0x7681D14D, 0x2892ED69, 0xDAF96E6A, 0xC9A99D9E, 0x3BC21E9D, 0xEF087A76, 0x1D63F975, 0x0E330A81, 0xFC588982, 0xB21572C9, 0x407EF1CA, 0x532E023E, 0xA145813D, 0x758FE5D6, 0x87E466D5, 0x94B49521, 0x66DF1622, 0x38CC2A06, 0xCAA7A905, 0xD9F75AF1, 0x2B9CD9F2, 0xFF56BD19, 0x0D3D3E1A, 0x1E6DCDEE, 0xEC064EED, 0xC38D26C4, 0x31E6A5C7, 0x22B65633, 0xD0DDD530, 0x0417B1DB, 0xF67C32D8, 0xE52CC12C, 0x1747422F, 0x49547E0B, 0xBB3FFD08, 0xA86F0EFC, 0x5A048DFF, 0x8ECEE914, 0x7CA56A17, 0x6FF599E3, 0x9D9E1AE0, 0xD3D3E1AB, 0x21B862A8, 0x32E8915C, 0xC083125F, 0x144976B4, 0xE622F5B7, 0xF5720643, 0x07198540, 0x590AB964, 0xAB613A67, 0xB831C993, 0x4A5A4A90, 0x9E902E7B, 0x6CFBAD78, 0x7FAB5E8C, 0x8DC0DD8F, 0xE330A81A, 0x115B2B19, 0x020BD8ED, 0xF0605BEE, 0x24AA3F05, 0xD6C1BC06, 0xC5914FF2, 0x37FACCF1, 0x69E9F0D5, 0x9B8273D6, 0x88D28022, 0x7AB90321, 0xAE7367CA, 0x5C18E4C9, 0x4F48173D, 0xBD23943E, 0xF36E6F75, 0x0105EC76, 0x12551F82, 0xE03E9C81, 0x34F4F86A, 0xC69F7B69, 0xD5CF889D, 0x27A40B9E, 0x79B737BA, 0x8BDCB4B9, 0x988C474D, 0x6AE7C44E, 0xBE2DA0A5, 0x4C4623A6, 0x5F16D052, 0xAD7D5351]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/Checksum.swift",
+      "kind": "Array",
+      "offset": 8088,
+      "length": 2180,
+      "value": "[0x0000, 0xC0C1, 0xC181, 0x0140, 0xC301, 0x03C0, 0x0280, 0xC241, 0xC601, 0x06C0, 0x0780, 0xC741, 0x0500, 0xC5C1, 0xC481, 0x0440, 0xCC01, 0x0CC0, 0x0D80, 0xCD41, 0x0F00, 0xCFC1, 0xCE81, 0x0E40, 0x0A00, 0xCAC1, 0xCB81, 0x0B40, 0xC901, 0x09C0, 0x0880, 0xC841, 0xD801, 0x18C0, 0x1980, 0xD941, 0x1B00, 0xDBC1, 0xDA81, 0x1A40, 0x1E00, 0xDEC1, 0xDF81, 0x1F40, 0xDD01, 0x1DC0, 0x1C80, 0xDC41, 0x1400, 0xD4C1, 0xD581, 0x1540, 0xD701, 0x17C0, 0x1680, 0xD641, 0xD201, 0x12C0, 0x1380, 0xD341, 0x1100, 0xD1C1, 0xD081, 0x1040, 0xF001, 0x30C0, 0x3180, 0xF141, 0x3300, 0xF3C1, 0xF281, 0x3240, 0x3600, 0xF6C1, 0xF781, 0x3740, 0xF501, 0x35C0, 0x3480, 0xF441, 0x3C00, 0xFCC1, 0xFD81, 0x3D40, 0xFF01, 0x3FC0, 0x3E80, 0xFE41, 0xFA01, 0x3AC0, 0x3B80, 0xFB41, 0x3900, 0xF9C1, 0xF881, 0x3840, 0x2800, 0xE8C1, 0xE981, 0x2940, 0xEB01, 0x2BC0, 0x2A80, 0xEA41, 0xEE01, 0x2EC0, 0x2F80, 0xEF41, 0x2D00, 0xEDC1, 0xEC81, 0x2C40, 0xE401, 0x24C0, 0x2580, 0xE541, 0x2700, 0xE7C1, 0xE681, 0x2640, 0x2200, 0xE2C1, 0xE381, 0x2340, 0xE101, 0x21C0, 0x2080, 0xE041, 0xA001, 0x60C0, 0x6180, 0xA141, 0x6300, 0xA3C1, 0xA281, 0x6240, 0x6600, 0xA6C1, 0xA781, 0x6740, 0xA501, 0x65C0, 0x6480, 0xA441, 0x6C00, 0xACC1, 0xAD81, 0x6D40, 0xAF01, 0x6FC0, 0x6E80, 0xAE41, 0xAA01, 0x6AC0, 0x6B80, 0xAB41, 0x6900, 0xA9C1, 0xA881, 0x6840, 0x7800, 0xB8C1, 0xB981, 0x7940, 0xBB01, 0x7BC0, 0x7A80, 0xBA41, 0xBE01, 0x7EC0, 0x7F80, 0xBF41, 0x7D00, 0xBDC1, 0xBC81, 0x7C40, 0xB401, 0x74C0, 0x7580, 0xB541, 0x7700, 0xB7C1, 0xB681, 0x7640, 0x7200, 0xB2C1, 0xB381, 0x7340, 0xB101, 0x71C0, 0x7080, 0xB041, 0x5000, 0x90C1, 0x9181, 0x5140, 0x9301, 0x53C0, 0x5280, 0x9241, 0x9601, 0x56C0, 0x5780, 0x9741, 0x5500, 0x95C1, 0x9481, 0x5440, 0x9C01, 0x5CC0, 0x5D80, 0x9D41, 0x5F00, 0x9FC1, 0x9E81, 0x5E40, 0x5A00, 0x9AC1, 0x9B81, 0x5B40, 0x9901, 0x59C0, 0x5880, 0x9841, 0x8801, 0x48C0, 0x4980, 0x8941, 0x4B00, 0x8BC1, 0x8A81, 0x4A40, 0x4E00, 0x8EC1, 0x8F81, 0x4F40, 0x8D01, 0x4DC0, 0x4C80, 0x8C41, 0x4400, 0x84C1, 0x8581, 0x4540, 0x8701, 0x47C0, 0x4680, 0x8641, 0x8201, 0x42C0, 0x4380, 0x8341, 0x4100, 0x81C1, 0x8081, 0x4040]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/Checksum.swift",
+      "kind": "BooleanLiteral",
+      "offset": 10438,
+      "length": 4,
+      "value": "true"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/Checksum.swift",
+      "kind": "BooleanLiteral",
+      "offset": 10908,
+      "length": 4,
+      "value": "true"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/Checksum.swift",
+      "kind": "BooleanLiteral",
+      "offset": 11941,
+      "length": 4,
+      "value": "true"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/Checksum.swift",
+      "kind": "BooleanLiteral",
+      "offset": 12315,
+      "length": 4,
+      "value": "true"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/XChaCha20.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1630,
+      "length": 2,
+      "value": "64"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/XChaCha20.swift",
+      "kind": "IntegerLiteral",
+      "offset": 2213,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSChatGpt.swift",
+      "kind": "StringLiteral",
+      "offset": 656,
+      "length": 13,
+      "value": "\"gpt-4-turbo\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSChatGpt.swift",
+      "kind": "BooleanLiteral",
+      "offset": 7659,
+      "length": 4,
+      "value": "true"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/Rabbit.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1100,
+      "length": 2,
+      "value": "64"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/Rabbit.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1105,
+      "length": 1,
+      "value": "8"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/Rabbit.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1167,
+      "length": 3,
+      "value": "128"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/Rabbit.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1173,
+      "length": 1,
+      "value": "8"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/Rabbit.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1239,
+      "length": 3,
+      "value": "128"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/Rabbit.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1245,
+      "length": 1,
+      "value": "8"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/Rabbit.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1454,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/Rabbit.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1464,
+      "length": 1,
+      "value": "8"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/Rabbit.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1535,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/Rabbit.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1545,
+      "length": 1,
+      "value": "8"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/Rabbit.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1596,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/CryptoSwift\/Rabbit.swift",
+      "kind": "Array",
+      "offset": 1652,
+      "length": 132,
+      "value": "[0x4d34d34d, 0xd34d34d3, 0x34d34d34, 0x4d34d34d, 0xd34d34d3, 0x34d34d34, 0x4d34d34d, 0xd34d34d3]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSAigcModel.swift",
+      "kind": "IntegerLiteral",
+      "offset": 151,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSAigcModel.swift",
+      "kind": "StringLiteral",
+      "offset": 278,
+      "length": 2,
+      "value": "\"\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSAigcModel.swift",
+      "kind": "StringLiteral",
+      "offset": 306,
+      "length": 2,
+      "value": "\"\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSAigcModel.swift",
+      "kind": "IntegerLiteral",
+      "offset": 391,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSAigcModel.swift",
+      "kind": "Array",
+      "offset": 422,
+      "length": 2,
+      "value": "[]"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSAigcModel.swift",
+      "kind": "StringLiteral",
+      "offset": 533,
+      "length": 2,
+      "value": "\"\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSAigcModel.swift",
+      "kind": "StringLiteral",
+      "offset": 579,
+      "length": 2,
+      "value": "\"\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSAigcModel.swift",
+      "kind": "StringLiteral",
+      "offset": 626,
+      "length": 2,
+      "value": "\"\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSAigcModel.swift",
+      "kind": "IntegerLiteral",
+      "offset": 788,
+      "length": 1,
+      "value": "0"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSAigcModel.swift",
+      "kind": "StringLiteral",
+      "offset": 1180,
+      "length": 6,
+      "value": "\"auto\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSAigcModel.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1400,
+      "length": 1,
+      "value": "4"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSAigcModel.swift",
+      "kind": "StringLiteral",
+      "offset": 1546,
+      "length": 2,
+      "value": "\"\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSAigcModel.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1619,
+      "length": 2,
+      "value": "32"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSAigcModel.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1677,
+      "length": 2,
+      "value": "80"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSAigcModel.swift",
+      "kind": "StringLiteral",
+      "offset": 1752,
+      "length": 6,
+      "value": "\"jpeg\""
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSAigcModel.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1817,
+      "length": 3,
+      "value": "128"
+    },
+    {
+      "filePath": "\/Users\/yaozuopan\/Documents\/code\/MixSdk-iOS\/MixSdk\/MixSdk\/MixSdk\/MSAigcModel.swift",
+      "kind": "IntegerLiteral",
+      "offset": 1878,
+      "length": 3,
+      "value": "128"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/Modules/MixSdk.swiftmodule/arm64-apple-ios.private.swiftinterface b/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/Modules/MixSdk.swiftmodule/arm64-apple-ios.private.swiftinterface
new file mode 100644 (file)
index 0000000..32dec3f
--- /dev/null
@@ -0,0 +1,417 @@
+// swift-interface-format-version: 1.0
+// swift-compiler-version: Apple Swift version 6.0.3 effective-4.2 (swiftlang-6.0.3.1.10 clang-1600.0.30.1)
+// swift-module-flags: -target arm64-apple-ios13.0 -enable-objc-interop -enable-library-evolution -swift-version 4.2 -enforce-exclusivity=checked -O -enable-bare-slash-regex -module-name MixSdk
+// swift-module-flags-ignorable: -no-verify-emitted-module-interface
+import CommonCrypto
+import CryptoKit
+import Darwin
+import Foundation
+@_exported import MixSdk
+import MixTools
+import MobileCoreServices
+import Security
+import Swift
+import UIKit
+import _Concurrency
+import _StringProcessing
+import _SwiftConcurrencyShims
+public typealias MSRegisterCallBack = (_ password: Swift.String?, _ error: MixSdk.MSError?) -> Swift.Void
+public typealias MSLoginCallBack = (_ token: Swift.String?, _ error: MixSdk.MSError?) -> Swift.Void
+@_hasMissingDesignatedInitializers public class MSAuth {
+  public var authorized: Swift.Bool {
+    get
+  }
+  public func register(productId: Swift.String, productKey: Swift.String, deviceId: Swift.String, completeHandler: @escaping MixSdk.MSRegisterCallBack)
+  public func login(productKey: Swift.String, deviceId: Swift.String, password: Swift.String, completeHandler: @escaping MixSdk.MSLoginCallBack)
+  @objc deinit
+}
+public enum MSError : Swift.Error {
+  case invalidRequest
+  case parsingError
+  case reponseError(Swift.Int, Swift.String)
+  case unauthorised
+  case unknow
+  public var msg: Swift.String {
+    get
+  }
+}
+@_hasMissingDesignatedInitializers public class MSTtsEvent : Swift.Codable {
+  public var event: Swift.String
+  public var msg: Swift.String
+  public var status: Swift.Int
+  public var task_id: Swift.String
+  @objc deinit
+  public func encode(to encoder: any Swift.Encoder) throws
+  required public init(from decoder: any Swift.Decoder) throws
+}
+public enum MSConnectState : Swift.Int {
+  case connected
+  case disConnected
+  public init?(rawValue: Swift.Int)
+  public typealias RawValue = Swift.Int
+  public var rawValue: Swift.Int {
+    get
+  }
+}
+public typealias MSSttCallBack = (_ text: Swift.String?, _ error: MixSdk.MSError?) -> Swift.Void
+public typealias MSSttEventCallBack = (_ model: MixSdk.MSSttEvent) -> Swift.Void
+public typealias MSConnectStateCallBack = (_ state: MixSdk.MSConnectState) -> Swift.Void
+@_hasMissingDesignatedInitializers public class MSStt {
+  public var eventCallBack: MixSdk.MSSttEventCallBack?
+  public var connectStateCallBack: MixSdk.MSConnectStateCallBack?
+  public var connectState: MixSdk.MSConnectState {
+    get
+  }
+  public func sentenceRecognize(filePath: Swift.String, format: Swift.String? = nil, sample_rate: Swift.String? = nil, lang: Swift.String? = nil, completeHandler: @escaping MixSdk.MSSttCallBack)
+  @objc deinit
+}
+extension MixSdk.MSStt {
+  public func startTranscription()
+  public func stopTranscription()
+  public func sendVoice(pcmData: Foundation.Data)
+  public func sendVoice(sbcData: Foundation.Data)
+}
+@usableFromInline
+final internal class StreamDecryptor {
+  @usableFromInline
+  internal enum Error : Swift.Error {
+    case unsupported
+    @usableFromInline
+    internal static func == (a: MixSdk.StreamDecryptor.Error, b: MixSdk.StreamDecryptor.Error) -> Swift.Bool
+    @usableFromInline
+    internal func hash(into hasher: inout Swift.Hasher)
+    @usableFromInline
+    internal var hashValue: Swift.Int {
+      @usableFromInline
+      get
+    }
+  }
+  @usableFromInline
+  final internal let blockSize: Swift.Int
+  @usableFromInline
+  final internal var worker: any MixSdk.CipherModeWorker
+  @usableFromInline
+  final internal let padding: MixSdk.Padding
+  @usableFromInline
+  final internal var accumulated: [Swift.UInt8]
+  @usableFromInline
+  final internal var lastBlockRemainder: Swift.Int
+  @usableFromInline
+  internal init(blockSize: Swift.Int, padding: MixSdk.Padding, _ worker: any MixSdk.CipherModeWorker) throws
+  @objc @usableFromInline
+  deinit
+}
+@usableFromInline
+internal struct BatchedCollectionIndex<Base> where Base : Swift.Collection {
+}
+extension MixSdk.BatchedCollectionIndex : Swift.Comparable {
+  @usableFromInline
+  internal static func == <BaseCollection>(lhs: MixSdk.BatchedCollectionIndex<BaseCollection>, rhs: MixSdk.BatchedCollectionIndex<BaseCollection>) -> Swift.Bool where BaseCollection : Swift.Collection
+  @usableFromInline
+  internal static func < <BaseCollection>(lhs: MixSdk.BatchedCollectionIndex<BaseCollection>, rhs: MixSdk.BatchedCollectionIndex<BaseCollection>) -> Swift.Bool where BaseCollection : Swift.Collection
+}
+@usableFromInline
+internal struct BatchedCollection<Base> : Swift.Collection where Base : Swift.Collection {
+  @usableFromInline
+  internal init(base: Base, size: Swift.Int)
+  @usableFromInline
+  internal typealias Index = MixSdk.BatchedCollectionIndex<Base>
+  @usableFromInline
+  internal var startIndex: MixSdk.BatchedCollection<Base>.Index {
+    get
+  }
+  @usableFromInline
+  internal var endIndex: MixSdk.BatchedCollection<Base>.Index {
+    get
+  }
+  @usableFromInline
+  internal func index(after idx: MixSdk.BatchedCollection<Base>.Index) -> MixSdk.BatchedCollection<Base>.Index
+  @usableFromInline
+  internal subscript(idx: MixSdk.BatchedCollection<Base>.Index) -> Base.SubSequence {
+    get
+  }
+  @usableFromInline
+  internal typealias Element = Base.SubSequence
+  @usableFromInline
+  internal typealias Indices = Swift.DefaultIndices<MixSdk.BatchedCollection<Base>>
+  @usableFromInline
+  internal typealias Iterator = Swift.IndexingIterator<MixSdk.BatchedCollection<Base>>
+  @usableFromInline
+  internal typealias SubSequence = Swift.Slice<MixSdk.BatchedCollection<Base>>
+}
+@_hasMissingDesignatedInitializers public class MSRegisterModel {
+  public var deviceId: Swift.String
+  public var password: Swift.String
+  public var nonce: Swift.String
+  @objc deinit
+}
+@_hasMissingDesignatedInitializers public class MSChatGptError : Swift.Codable {
+  public var message: Swift.String
+  public var code: Swift.String
+  @objc deinit
+  public func encode(to encoder: any Swift.Encoder) throws
+  required public init(from decoder: any Swift.Decoder) throws
+}
+@_hasMissingDesignatedInitializers public class MSChatGptModel : Swift.Codable {
+  public var id: Swift.String
+  public var object: Swift.String
+  public var created: Swift.Int
+  public var model: Swift.String
+  public var choices: [MixSdk.MSChatGptChoices]
+  public var usage: MixSdk.MSChatGptUsage
+  @objc deinit
+  public func encode(to encoder: any Swift.Encoder) throws
+  required public init(from decoder: any Swift.Decoder) throws
+}
+@_hasMissingDesignatedInitializers public class MSChatGptChoices : Swift.Codable {
+  public var index: Swift.Int
+  public var message: MixSdk.MSChatGptMessage
+  public var finish_reason: Swift.String
+  @objc deinit
+  public func encode(to encoder: any Swift.Encoder) throws
+  required public init(from decoder: any Swift.Decoder) throws
+}
+@_hasMissingDesignatedInitializers public class MSChatGptMessage : Swift.Codable {
+  public var role: Swift.String
+  public var content: Swift.String
+  @objc deinit
+  public func encode(to encoder: any Swift.Encoder) throws
+  required public init(from decoder: any Swift.Decoder) throws
+}
+@_hasMissingDesignatedInitializers public class MSChatGptUsage : Swift.Codable {
+  public var prompt_tokens: Swift.Int
+  public var completion_tokens: Swift.Int
+  public var total_tokens: Swift.Int
+  @objc deinit
+  public func encode(to encoder: any Swift.Encoder) throws
+  required public init(from decoder: any Swift.Decoder) throws
+}
+@usableFromInline
+final internal class BlockEncryptor {
+  @usableFromInline
+  internal init(blockSize: Swift.Int, padding: MixSdk.Padding, _ worker: any MixSdk.CipherModeWorker) throws
+  @usableFromInline
+  final internal func seek(to: Swift.Int) throws
+  @objc @usableFromInline
+  deinit
+}
+public enum MSPlatform {
+  case aliyun
+  case xunfei
+  case yiyan
+  case doubao
+  case kimi
+  case chatGPT
+  public var title: Swift.String {
+    get
+  }
+  public static func == (a: MixSdk.MSPlatform, b: MixSdk.MSPlatform) -> Swift.Bool
+  public func hash(into hasher: inout Swift.Hasher)
+  public var hashValue: Swift.Int {
+    get
+  }
+}
+@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers public class MixSdk : ObjectiveC.NSObject {
+  public static let shared: MixSdk.MixSdk
+  public func initSDK()
+  public var logs: [Swift.String] {
+    get
+  }
+  final public let version: Swift.String
+  public var isDebug: Swift.Bool {
+    get
+    set
+  }
+  final public let auth: MixSdk.MSAuth
+  final public let translate: MixSdk.MSTranslate
+  final public let aigc: MixSdk.MSAigc
+  final public let chat: MixSdk.MSChat
+  final public let tts: MixSdk.MSTts
+  final public let stt: MixSdk.MSStt
+  final public let chatGpt: MixSdk.MSChatGpt
+  final public let chatGptTrans: MixSdk.MSChatGptTranscription
+  public func setPlatform(_ platform: MixSdk.MSPlatform, key: Swift.String? = nil)
+  public var aiPlatform: MixSdk.MSPlatform
+  public var aiKey: Swift.String?
+  public func cleanLog()
+  @objc deinit
+}
+@_hasMissingDesignatedInitializers public class MSTranslateLanguage : Swift.Codable {
+  public var cn: Swift.String
+  public var en: Swift.String
+  public var code: Swift.String
+  @objc deinit
+  public func encode(to encoder: any Swift.Encoder) throws
+  required public init(from decoder: any Swift.Decoder) throws
+}
+@usableFromInline
+final internal class StreamEncryptor {
+  @usableFromInline
+  internal enum Error : Swift.Error {
+    case unsupported
+    @usableFromInline
+    internal static func == (a: MixSdk.StreamEncryptor.Error, b: MixSdk.StreamEncryptor.Error) -> Swift.Bool
+    @usableFromInline
+    internal func hash(into hasher: inout Swift.Hasher)
+    @usableFromInline
+    internal var hashValue: Swift.Int {
+      @usableFromInline
+      get
+    }
+  }
+  @usableFromInline
+  final internal let blockSize: Swift.Int
+  @usableFromInline
+  final internal var worker: any MixSdk.CipherModeWorker
+  @usableFromInline
+  final internal let padding: MixSdk.Padding
+  @usableFromInline
+  final internal var lastBlockRemainder: Swift.Int
+  @usableFromInline
+  internal init(blockSize: Swift.Int, padding: MixSdk.Padding, _ worker: any MixSdk.CipherModeWorker) throws
+  @usableFromInline
+  final internal func seek(to: Swift.Int) throws
+  @objc @usableFromInline
+  deinit
+}
+@_hasMissingDesignatedInitializers public class MSChatModel : Swift.Codable {
+  public var type: Swift.String
+  public var content: Swift.String?
+  @objc deinit
+  public func encode(to encoder: any Swift.Encoder) throws
+  required public init(from decoder: any Swift.Decoder) throws
+}
+public typealias MSTtsEventCallBack = (_ model: MixSdk.MSTtsEvent) -> Swift.Void
+public typealias MSTtsVoiceCallBack = (_ data: Foundation.Data) -> Swift.Void
+@_hasMissingDesignatedInitializers public class MSTts {
+  public var eventCallBack: MixSdk.MSTtsEventCallBack?
+  public var voiceCallBack: MixSdk.MSTtsVoiceCallBack?
+  public var connectStateCallBack: MixSdk.MSConnectStateCallBack?
+  public var connectState: MixSdk.MSConnectState {
+    get
+  }
+  @objc deinit
+}
+extension MixSdk.MSTts {
+  public func startSynthesis()
+  public func stopSynthesis()
+  public func runSynthesis(text: Swift.String)
+  public func sendLongTextStream(text: Swift.String)
+}
+public typealias MSAigcStyleCallBack = (_ list: [MixSdk.MSAigcStyle]?, _ error: MixSdk.MSError?) -> Swift.Void
+public typealias MSAigcTaskCallBack = (_ taskId: Swift.String?, _ error: MixSdk.MSError?) -> Swift.Void
+public typealias MSAigcQueryCallBack = (_ imageUrls: [Swift.String]?, _ error: MixSdk.MSError?) -> Swift.Void
+@_hasMissingDesignatedInitializers public class MSAigc {
+  public func getStyle(type: Swift.Int, completeHandler: @escaping MixSdk.MSAigcStyleCallBack)
+  public func getResult(task: MixSdk.MSAigcSearchTask, completeHandler: @escaping MixSdk.MSAigcQueryCallBack)
+  public func createTask(_ task: MixSdk.MSAigcTask, completeHandler: @escaping MixSdk.MSAigcTaskCallBack)
+  @objc deinit
+}
+@usableFromInline
+internal func strideCount(from: Swift.Int, to: Swift.Int, by: Swift.Int) -> Swift.Int
+public typealias MSAudioConvertCallBack = (_ data: Foundation.Data) -> Swift.Void
+@_hasMissingDesignatedInitializers public class MSAudioConvert {
+  public static func sbcTopcm(_ data: Foundation.Data) -> Foundation.Data
+  public static func sbcTopcm(_ data: Foundation.Data, _ callBack: @escaping MixSdk.MSAudioConvertCallBack)
+  public static func pcmToMp3(_ pcmPath: Swift.String, _ mp3Path: Swift.String) -> Swift.Bool
+  public static func pcmToMp3(pcmPath: Swift.String, pcmSampleRate: Swift.Int = 16000, mp3Path: Swift.String) -> Swift.Bool
+  public static func sbcToPcm(sbcPath: Swift.String, pcmPath: Swift.String) -> Swift.Bool
+  public static func sbcToMp3(sbcPath: Swift.String, mp3Path: Swift.String) -> Swift.Bool
+  @objc deinit
+}
+public typealias MSTranslateCallBack = (_ text: Swift.String?, _ error: MixSdk.MSError?) -> Swift.Void
+public typealias MSLanuageCallBack = (_ list: [MixSdk.MSTranslateLanguage]?, _ error: MixSdk.MSError?) -> Swift.Void
+@_hasMissingDesignatedInitializers public class MSTranslate {
+  public func translate(lang: MixSdk.MSTranslateLanguage, text: Swift.String, completeHandler: @escaping MixSdk.MSTranslateCallBack)
+  public func getSupportLanguages(completeHandler: @escaping MixSdk.MSLanuageCallBack)
+  @objc deinit
+}
+@_hasMissingDesignatedInitializers public class MSSttEvent : Swift.Codable {
+  public var event: Swift.String
+  public var msg: Swift.String
+  public var status: Swift.Int
+  public var task_id: Swift.String
+  public var result: MixSdk.MSSttResult?
+  @objc deinit
+  public func encode(to encoder: any Swift.Encoder) throws
+  required public init(from decoder: any Swift.Decoder) throws
+}
+@_hasMissingDesignatedInitializers public class MSSttResult : Swift.Codable {
+  public var result: Swift.String
+  public var is_end: Swift.Bool
+  public var sentence_id: Swift.String
+  public var start_time: Swift.Int
+  public var end_time: Swift.Int
+  @objc deinit
+  public func encode(to encoder: any Swift.Encoder) throws
+  required public init(from decoder: any Swift.Decoder) throws
+}
+public typealias MSChatCallBack = (_ model: MixSdk.MSChatModel) -> Swift.Void
+public typealias MSPlatformChangeCallBack = (_ success: Swift.Bool) -> Swift.Void
+@_hasMissingDesignatedInitializers public class MSChat {
+  public var callBack: MixSdk.MSChatCallBack?
+  public var connectStateCallBack: MixSdk.MSConnectStateCallBack?
+  public var connectState: MixSdk.MSConnectState {
+    get
+  }
+  public func reset()
+  public func send(content: Swift.String)
+  @objc deinit
+}
+public typealias MSChatGptCallBack = (_ response: MixSdk.MSChatGptModel?, _ error: MixSdk.MSChatGptError?) -> Swift.Void
+public typealias MSChatGptTranscriptionCallBack = (_ text: Swift.String?, _ error: MixSdk.MSChatGptError?) -> Swift.Void
+public typealias MSChatGptCheckKeyCallBack = (_ isValid: Swift.Bool?, _ error: MixSdk.MSChatGptError?) -> Swift.Void
+@_hasMissingDesignatedInitializers public class MSChatGpt {
+  public func transcription(filePath: Swift.String, completeHandler: @escaping MixSdk.MSChatGptTranscriptionCallBack)
+  public func changeModel(model: Swift.String)
+  public func isValidKey(_ key: Swift.String, completeHandler: @escaping MixSdk.MSChatGptCheckKeyCallBack)
+  public func send(content: Swift.String, completeHandler: @escaping MixSdk.MSChatGptCallBack)
+  @objc deinit
+}
+@_hasMissingDesignatedInitializers public class MSChatGptTranscription {
+  public func start()
+  public func stop(completeHandler: @escaping MixSdk.MSChatGptTranscriptionCallBack)
+  public func sendVoice(pcmData: Foundation.Data)
+  public func sendVoice(sbcData: Foundation.Data)
+  @objc deinit
+}
+@_hasMissingDesignatedInitializers public class MSAigcStyle : Swift.Codable {
+  public var name: Swift.String
+  public var url: Swift.String
+  public var code: Swift.String
+  @objc deinit
+  public func encode(to encoder: any Swift.Encoder) throws
+  required public init(from decoder: any Swift.Decoder) throws
+}
+public class MSAigcTask : Swift.Codable {
+  public var type: Swift.Int
+  public var subject: Swift.String?
+  public var algorithm: Swift.String
+  public var image_base64: Swift.String?
+  public var amount: Swift.Int
+  public init()
+  @objc deinit
+  public func encode(to encoder: any Swift.Encoder) throws
+  required public init(from decoder: any Swift.Decoder) throws
+}
+public class MSAigcSearchTask : Swift.Codable {
+  public var task_id: Swift.String
+  public var bit_depth: Swift.Int
+  public var compression_quality: Swift.Int
+  public var format: Swift.String
+  public var height: Swift.Int
+  public var width: Swift.Int
+  public init()
+  @objc deinit
+  public func encode(to encoder: any Swift.Encoder) throws
+  required public init(from decoder: any Swift.Decoder) throws
+}
+extension MixSdk.MSConnectState : Swift.Equatable {}
+extension MixSdk.MSConnectState : Swift.Hashable {}
+extension MixSdk.MSConnectState : Swift.RawRepresentable {}
+extension MixSdk.StreamDecryptor.Error : Swift.Equatable {}
+extension MixSdk.StreamDecryptor.Error : Swift.Hashable {}
+extension MixSdk.MSPlatform : Swift.Equatable {}
+extension MixSdk.MSPlatform : Swift.Hashable {}
+extension MixSdk.StreamEncryptor.Error : Swift.Equatable {}
+extension MixSdk.StreamEncryptor.Error : Swift.Hashable {}
diff --git a/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/Modules/MixSdk.swiftmodule/arm64-apple-ios.swiftdoc b/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/Modules/MixSdk.swiftmodule/arm64-apple-ios.swiftdoc
new file mode 100644 (file)
index 0000000..3ef690c
Binary files /dev/null and b/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/Modules/MixSdk.swiftmodule/arm64-apple-ios.swiftdoc differ
diff --git a/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/Modules/MixSdk.swiftmodule/arm64-apple-ios.swiftinterface b/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/Modules/MixSdk.swiftmodule/arm64-apple-ios.swiftinterface
new file mode 100644 (file)
index 0000000..32dec3f
--- /dev/null
@@ -0,0 +1,417 @@
+// swift-interface-format-version: 1.0
+// swift-compiler-version: Apple Swift version 6.0.3 effective-4.2 (swiftlang-6.0.3.1.10 clang-1600.0.30.1)
+// swift-module-flags: -target arm64-apple-ios13.0 -enable-objc-interop -enable-library-evolution -swift-version 4.2 -enforce-exclusivity=checked -O -enable-bare-slash-regex -module-name MixSdk
+// swift-module-flags-ignorable: -no-verify-emitted-module-interface
+import CommonCrypto
+import CryptoKit
+import Darwin
+import Foundation
+@_exported import MixSdk
+import MixTools
+import MobileCoreServices
+import Security
+import Swift
+import UIKit
+import _Concurrency
+import _StringProcessing
+import _SwiftConcurrencyShims
+public typealias MSRegisterCallBack = (_ password: Swift.String?, _ error: MixSdk.MSError?) -> Swift.Void
+public typealias MSLoginCallBack = (_ token: Swift.String?, _ error: MixSdk.MSError?) -> Swift.Void
+@_hasMissingDesignatedInitializers public class MSAuth {
+  public var authorized: Swift.Bool {
+    get
+  }
+  public func register(productId: Swift.String, productKey: Swift.String, deviceId: Swift.String, completeHandler: @escaping MixSdk.MSRegisterCallBack)
+  public func login(productKey: Swift.String, deviceId: Swift.String, password: Swift.String, completeHandler: @escaping MixSdk.MSLoginCallBack)
+  @objc deinit
+}
+public enum MSError : Swift.Error {
+  case invalidRequest
+  case parsingError
+  case reponseError(Swift.Int, Swift.String)
+  case unauthorised
+  case unknow
+  public var msg: Swift.String {
+    get
+  }
+}
+@_hasMissingDesignatedInitializers public class MSTtsEvent : Swift.Codable {
+  public var event: Swift.String
+  public var msg: Swift.String
+  public var status: Swift.Int
+  public var task_id: Swift.String
+  @objc deinit
+  public func encode(to encoder: any Swift.Encoder) throws
+  required public init(from decoder: any Swift.Decoder) throws
+}
+public enum MSConnectState : Swift.Int {
+  case connected
+  case disConnected
+  public init?(rawValue: Swift.Int)
+  public typealias RawValue = Swift.Int
+  public var rawValue: Swift.Int {
+    get
+  }
+}
+public typealias MSSttCallBack = (_ text: Swift.String?, _ error: MixSdk.MSError?) -> Swift.Void
+public typealias MSSttEventCallBack = (_ model: MixSdk.MSSttEvent) -> Swift.Void
+public typealias MSConnectStateCallBack = (_ state: MixSdk.MSConnectState) -> Swift.Void
+@_hasMissingDesignatedInitializers public class MSStt {
+  public var eventCallBack: MixSdk.MSSttEventCallBack?
+  public var connectStateCallBack: MixSdk.MSConnectStateCallBack?
+  public var connectState: MixSdk.MSConnectState {
+    get
+  }
+  public func sentenceRecognize(filePath: Swift.String, format: Swift.String? = nil, sample_rate: Swift.String? = nil, lang: Swift.String? = nil, completeHandler: @escaping MixSdk.MSSttCallBack)
+  @objc deinit
+}
+extension MixSdk.MSStt {
+  public func startTranscription()
+  public func stopTranscription()
+  public func sendVoice(pcmData: Foundation.Data)
+  public func sendVoice(sbcData: Foundation.Data)
+}
+@usableFromInline
+final internal class StreamDecryptor {
+  @usableFromInline
+  internal enum Error : Swift.Error {
+    case unsupported
+    @usableFromInline
+    internal static func == (a: MixSdk.StreamDecryptor.Error, b: MixSdk.StreamDecryptor.Error) -> Swift.Bool
+    @usableFromInline
+    internal func hash(into hasher: inout Swift.Hasher)
+    @usableFromInline
+    internal var hashValue: Swift.Int {
+      @usableFromInline
+      get
+    }
+  }
+  @usableFromInline
+  final internal let blockSize: Swift.Int
+  @usableFromInline
+  final internal var worker: any MixSdk.CipherModeWorker
+  @usableFromInline
+  final internal let padding: MixSdk.Padding
+  @usableFromInline
+  final internal var accumulated: [Swift.UInt8]
+  @usableFromInline
+  final internal var lastBlockRemainder: Swift.Int
+  @usableFromInline
+  internal init(blockSize: Swift.Int, padding: MixSdk.Padding, _ worker: any MixSdk.CipherModeWorker) throws
+  @objc @usableFromInline
+  deinit
+}
+@usableFromInline
+internal struct BatchedCollectionIndex<Base> where Base : Swift.Collection {
+}
+extension MixSdk.BatchedCollectionIndex : Swift.Comparable {
+  @usableFromInline
+  internal static func == <BaseCollection>(lhs: MixSdk.BatchedCollectionIndex<BaseCollection>, rhs: MixSdk.BatchedCollectionIndex<BaseCollection>) -> Swift.Bool where BaseCollection : Swift.Collection
+  @usableFromInline
+  internal static func < <BaseCollection>(lhs: MixSdk.BatchedCollectionIndex<BaseCollection>, rhs: MixSdk.BatchedCollectionIndex<BaseCollection>) -> Swift.Bool where BaseCollection : Swift.Collection
+}
+@usableFromInline
+internal struct BatchedCollection<Base> : Swift.Collection where Base : Swift.Collection {
+  @usableFromInline
+  internal init(base: Base, size: Swift.Int)
+  @usableFromInline
+  internal typealias Index = MixSdk.BatchedCollectionIndex<Base>
+  @usableFromInline
+  internal var startIndex: MixSdk.BatchedCollection<Base>.Index {
+    get
+  }
+  @usableFromInline
+  internal var endIndex: MixSdk.BatchedCollection<Base>.Index {
+    get
+  }
+  @usableFromInline
+  internal func index(after idx: MixSdk.BatchedCollection<Base>.Index) -> MixSdk.BatchedCollection<Base>.Index
+  @usableFromInline
+  internal subscript(idx: MixSdk.BatchedCollection<Base>.Index) -> Base.SubSequence {
+    get
+  }
+  @usableFromInline
+  internal typealias Element = Base.SubSequence
+  @usableFromInline
+  internal typealias Indices = Swift.DefaultIndices<MixSdk.BatchedCollection<Base>>
+  @usableFromInline
+  internal typealias Iterator = Swift.IndexingIterator<MixSdk.BatchedCollection<Base>>
+  @usableFromInline
+  internal typealias SubSequence = Swift.Slice<MixSdk.BatchedCollection<Base>>
+}
+@_hasMissingDesignatedInitializers public class MSRegisterModel {
+  public var deviceId: Swift.String
+  public var password: Swift.String
+  public var nonce: Swift.String
+  @objc deinit
+}
+@_hasMissingDesignatedInitializers public class MSChatGptError : Swift.Codable {
+  public var message: Swift.String
+  public var code: Swift.String
+  @objc deinit
+  public func encode(to encoder: any Swift.Encoder) throws
+  required public init(from decoder: any Swift.Decoder) throws
+}
+@_hasMissingDesignatedInitializers public class MSChatGptModel : Swift.Codable {
+  public var id: Swift.String
+  public var object: Swift.String
+  public var created: Swift.Int
+  public var model: Swift.String
+  public var choices: [MixSdk.MSChatGptChoices]
+  public var usage: MixSdk.MSChatGptUsage
+  @objc deinit
+  public func encode(to encoder: any Swift.Encoder) throws
+  required public init(from decoder: any Swift.Decoder) throws
+}
+@_hasMissingDesignatedInitializers public class MSChatGptChoices : Swift.Codable {
+  public var index: Swift.Int
+  public var message: MixSdk.MSChatGptMessage
+  public var finish_reason: Swift.String
+  @objc deinit
+  public func encode(to encoder: any Swift.Encoder) throws
+  required public init(from decoder: any Swift.Decoder) throws
+}
+@_hasMissingDesignatedInitializers public class MSChatGptMessage : Swift.Codable {
+  public var role: Swift.String
+  public var content: Swift.String
+  @objc deinit
+  public func encode(to encoder: any Swift.Encoder) throws
+  required public init(from decoder: any Swift.Decoder) throws
+}
+@_hasMissingDesignatedInitializers public class MSChatGptUsage : Swift.Codable {
+  public var prompt_tokens: Swift.Int
+  public var completion_tokens: Swift.Int
+  public var total_tokens: Swift.Int
+  @objc deinit
+  public func encode(to encoder: any Swift.Encoder) throws
+  required public init(from decoder: any Swift.Decoder) throws
+}
+@usableFromInline
+final internal class BlockEncryptor {
+  @usableFromInline
+  internal init(blockSize: Swift.Int, padding: MixSdk.Padding, _ worker: any MixSdk.CipherModeWorker) throws
+  @usableFromInline
+  final internal func seek(to: Swift.Int) throws
+  @objc @usableFromInline
+  deinit
+}
+public enum MSPlatform {
+  case aliyun
+  case xunfei
+  case yiyan
+  case doubao
+  case kimi
+  case chatGPT
+  public var title: Swift.String {
+    get
+  }
+  public static func == (a: MixSdk.MSPlatform, b: MixSdk.MSPlatform) -> Swift.Bool
+  public func hash(into hasher: inout Swift.Hasher)
+  public var hashValue: Swift.Int {
+    get
+  }
+}
+@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers public class MixSdk : ObjectiveC.NSObject {
+  public static let shared: MixSdk.MixSdk
+  public func initSDK()
+  public var logs: [Swift.String] {
+    get
+  }
+  final public let version: Swift.String
+  public var isDebug: Swift.Bool {
+    get
+    set
+  }
+  final public let auth: MixSdk.MSAuth
+  final public let translate: MixSdk.MSTranslate
+  final public let aigc: MixSdk.MSAigc
+  final public let chat: MixSdk.MSChat
+  final public let tts: MixSdk.MSTts
+  final public let stt: MixSdk.MSStt
+  final public let chatGpt: MixSdk.MSChatGpt
+  final public let chatGptTrans: MixSdk.MSChatGptTranscription
+  public func setPlatform(_ platform: MixSdk.MSPlatform, key: Swift.String? = nil)
+  public var aiPlatform: MixSdk.MSPlatform
+  public var aiKey: Swift.String?
+  public func cleanLog()
+  @objc deinit
+}
+@_hasMissingDesignatedInitializers public class MSTranslateLanguage : Swift.Codable {
+  public var cn: Swift.String
+  public var en: Swift.String
+  public var code: Swift.String
+  @objc deinit
+  public func encode(to encoder: any Swift.Encoder) throws
+  required public init(from decoder: any Swift.Decoder) throws
+}
+@usableFromInline
+final internal class StreamEncryptor {
+  @usableFromInline
+  internal enum Error : Swift.Error {
+    case unsupported
+    @usableFromInline
+    internal static func == (a: MixSdk.StreamEncryptor.Error, b: MixSdk.StreamEncryptor.Error) -> Swift.Bool
+    @usableFromInline
+    internal func hash(into hasher: inout Swift.Hasher)
+    @usableFromInline
+    internal var hashValue: Swift.Int {
+      @usableFromInline
+      get
+    }
+  }
+  @usableFromInline
+  final internal let blockSize: Swift.Int
+  @usableFromInline
+  final internal var worker: any MixSdk.CipherModeWorker
+  @usableFromInline
+  final internal let padding: MixSdk.Padding
+  @usableFromInline
+  final internal var lastBlockRemainder: Swift.Int
+  @usableFromInline
+  internal init(blockSize: Swift.Int, padding: MixSdk.Padding, _ worker: any MixSdk.CipherModeWorker) throws
+  @usableFromInline
+  final internal func seek(to: Swift.Int) throws
+  @objc @usableFromInline
+  deinit
+}
+@_hasMissingDesignatedInitializers public class MSChatModel : Swift.Codable {
+  public var type: Swift.String
+  public var content: Swift.String?
+  @objc deinit
+  public func encode(to encoder: any Swift.Encoder) throws
+  required public init(from decoder: any Swift.Decoder) throws
+}
+public typealias MSTtsEventCallBack = (_ model: MixSdk.MSTtsEvent) -> Swift.Void
+public typealias MSTtsVoiceCallBack = (_ data: Foundation.Data) -> Swift.Void
+@_hasMissingDesignatedInitializers public class MSTts {
+  public var eventCallBack: MixSdk.MSTtsEventCallBack?
+  public var voiceCallBack: MixSdk.MSTtsVoiceCallBack?
+  public var connectStateCallBack: MixSdk.MSConnectStateCallBack?
+  public var connectState: MixSdk.MSConnectState {
+    get
+  }
+  @objc deinit
+}
+extension MixSdk.MSTts {
+  public func startSynthesis()
+  public func stopSynthesis()
+  public func runSynthesis(text: Swift.String)
+  public func sendLongTextStream(text: Swift.String)
+}
+public typealias MSAigcStyleCallBack = (_ list: [MixSdk.MSAigcStyle]?, _ error: MixSdk.MSError?) -> Swift.Void
+public typealias MSAigcTaskCallBack = (_ taskId: Swift.String?, _ error: MixSdk.MSError?) -> Swift.Void
+public typealias MSAigcQueryCallBack = (_ imageUrls: [Swift.String]?, _ error: MixSdk.MSError?) -> Swift.Void
+@_hasMissingDesignatedInitializers public class MSAigc {
+  public func getStyle(type: Swift.Int, completeHandler: @escaping MixSdk.MSAigcStyleCallBack)
+  public func getResult(task: MixSdk.MSAigcSearchTask, completeHandler: @escaping MixSdk.MSAigcQueryCallBack)
+  public func createTask(_ task: MixSdk.MSAigcTask, completeHandler: @escaping MixSdk.MSAigcTaskCallBack)
+  @objc deinit
+}
+@usableFromInline
+internal func strideCount(from: Swift.Int, to: Swift.Int, by: Swift.Int) -> Swift.Int
+public typealias MSAudioConvertCallBack = (_ data: Foundation.Data) -> Swift.Void
+@_hasMissingDesignatedInitializers public class MSAudioConvert {
+  public static func sbcTopcm(_ data: Foundation.Data) -> Foundation.Data
+  public static func sbcTopcm(_ data: Foundation.Data, _ callBack: @escaping MixSdk.MSAudioConvertCallBack)
+  public static func pcmToMp3(_ pcmPath: Swift.String, _ mp3Path: Swift.String) -> Swift.Bool
+  public static func pcmToMp3(pcmPath: Swift.String, pcmSampleRate: Swift.Int = 16000, mp3Path: Swift.String) -> Swift.Bool
+  public static func sbcToPcm(sbcPath: Swift.String, pcmPath: Swift.String) -> Swift.Bool
+  public static func sbcToMp3(sbcPath: Swift.String, mp3Path: Swift.String) -> Swift.Bool
+  @objc deinit
+}
+public typealias MSTranslateCallBack = (_ text: Swift.String?, _ error: MixSdk.MSError?) -> Swift.Void
+public typealias MSLanuageCallBack = (_ list: [MixSdk.MSTranslateLanguage]?, _ error: MixSdk.MSError?) -> Swift.Void
+@_hasMissingDesignatedInitializers public class MSTranslate {
+  public func translate(lang: MixSdk.MSTranslateLanguage, text: Swift.String, completeHandler: @escaping MixSdk.MSTranslateCallBack)
+  public func getSupportLanguages(completeHandler: @escaping MixSdk.MSLanuageCallBack)
+  @objc deinit
+}
+@_hasMissingDesignatedInitializers public class MSSttEvent : Swift.Codable {
+  public var event: Swift.String
+  public var msg: Swift.String
+  public var status: Swift.Int
+  public var task_id: Swift.String
+  public var result: MixSdk.MSSttResult?
+  @objc deinit
+  public func encode(to encoder: any Swift.Encoder) throws
+  required public init(from decoder: any Swift.Decoder) throws
+}
+@_hasMissingDesignatedInitializers public class MSSttResult : Swift.Codable {
+  public var result: Swift.String
+  public var is_end: Swift.Bool
+  public var sentence_id: Swift.String
+  public var start_time: Swift.Int
+  public var end_time: Swift.Int
+  @objc deinit
+  public func encode(to encoder: any Swift.Encoder) throws
+  required public init(from decoder: any Swift.Decoder) throws
+}
+public typealias MSChatCallBack = (_ model: MixSdk.MSChatModel) -> Swift.Void
+public typealias MSPlatformChangeCallBack = (_ success: Swift.Bool) -> Swift.Void
+@_hasMissingDesignatedInitializers public class MSChat {
+  public var callBack: MixSdk.MSChatCallBack?
+  public var connectStateCallBack: MixSdk.MSConnectStateCallBack?
+  public var connectState: MixSdk.MSConnectState {
+    get
+  }
+  public func reset()
+  public func send(content: Swift.String)
+  @objc deinit
+}
+public typealias MSChatGptCallBack = (_ response: MixSdk.MSChatGptModel?, _ error: MixSdk.MSChatGptError?) -> Swift.Void
+public typealias MSChatGptTranscriptionCallBack = (_ text: Swift.String?, _ error: MixSdk.MSChatGptError?) -> Swift.Void
+public typealias MSChatGptCheckKeyCallBack = (_ isValid: Swift.Bool?, _ error: MixSdk.MSChatGptError?) -> Swift.Void
+@_hasMissingDesignatedInitializers public class MSChatGpt {
+  public func transcription(filePath: Swift.String, completeHandler: @escaping MixSdk.MSChatGptTranscriptionCallBack)
+  public func changeModel(model: Swift.String)
+  public func isValidKey(_ key: Swift.String, completeHandler: @escaping MixSdk.MSChatGptCheckKeyCallBack)
+  public func send(content: Swift.String, completeHandler: @escaping MixSdk.MSChatGptCallBack)
+  @objc deinit
+}
+@_hasMissingDesignatedInitializers public class MSChatGptTranscription {
+  public func start()
+  public func stop(completeHandler: @escaping MixSdk.MSChatGptTranscriptionCallBack)
+  public func sendVoice(pcmData: Foundation.Data)
+  public func sendVoice(sbcData: Foundation.Data)
+  @objc deinit
+}
+@_hasMissingDesignatedInitializers public class MSAigcStyle : Swift.Codable {
+  public var name: Swift.String
+  public var url: Swift.String
+  public var code: Swift.String
+  @objc deinit
+  public func encode(to encoder: any Swift.Encoder) throws
+  required public init(from decoder: any Swift.Decoder) throws
+}
+public class MSAigcTask : Swift.Codable {
+  public var type: Swift.Int
+  public var subject: Swift.String?
+  public var algorithm: Swift.String
+  public var image_base64: Swift.String?
+  public var amount: Swift.Int
+  public init()
+  @objc deinit
+  public func encode(to encoder: any Swift.Encoder) throws
+  required public init(from decoder: any Swift.Decoder) throws
+}
+public class MSAigcSearchTask : Swift.Codable {
+  public var task_id: Swift.String
+  public var bit_depth: Swift.Int
+  public var compression_quality: Swift.Int
+  public var format: Swift.String
+  public var height: Swift.Int
+  public var width: Swift.Int
+  public init()
+  @objc deinit
+  public func encode(to encoder: any Swift.Encoder) throws
+  required public init(from decoder: any Swift.Decoder) throws
+}
+extension MixSdk.MSConnectState : Swift.Equatable {}
+extension MixSdk.MSConnectState : Swift.Hashable {}
+extension MixSdk.MSConnectState : Swift.RawRepresentable {}
+extension MixSdk.StreamDecryptor.Error : Swift.Equatable {}
+extension MixSdk.StreamDecryptor.Error : Swift.Hashable {}
+extension MixSdk.MSPlatform : Swift.Equatable {}
+extension MixSdk.MSPlatform : Swift.Hashable {}
+extension MixSdk.StreamEncryptor.Error : Swift.Equatable {}
+extension MixSdk.StreamEncryptor.Error : Swift.Hashable {}
diff --git a/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/Modules/MixSdk.swiftmodule/arm64-apple-ios.swiftmodule b/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/Modules/MixSdk.swiftmodule/arm64-apple-ios.swiftmodule
new file mode 100644 (file)
index 0000000..eb4c130
Binary files /dev/null and b/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/Modules/MixSdk.swiftmodule/arm64-apple-ios.swiftmodule differ
diff --git a/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/Modules/module.modulemap b/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/Modules/module.modulemap
new file mode 100644 (file)
index 0000000..f78e449
--- /dev/null
@@ -0,0 +1,11 @@
+framework module MixSdk {
+  umbrella header "MixSdk.h"
+  export *
+
+  module * { export * }
+}
+
+module MixSdk.Swift {
+  header "MixSdk-Swift.h"
+  requires objc
+}
diff --git a/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/PrivacyInfo.xcprivacy b/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/PrivacyInfo.xcprivacy
new file mode 100644 (file)
index 0000000..e08a130
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+       <key>NSPrivacyTracking</key>
+       <false/>
+       <key>NSPrivacyTrackingDomains</key>
+       <array/>
+       <key>NSPrivacyCollectedDataTypes</key>
+       <array/>
+       <key>NSPrivacyAccessedAPITypes</key>
+       <array/>
+</dict>
+</plist>
diff --git a/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/_CodeSignature/CodeDirectory b/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/_CodeSignature/CodeDirectory
new file mode 100644 (file)
index 0000000..5fd1278
Binary files /dev/null and b/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/_CodeSignature/CodeDirectory differ
diff --git a/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/_CodeSignature/CodeRequirements b/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/_CodeSignature/CodeRequirements
new file mode 100644 (file)
index 0000000..7de1638
Binary files /dev/null and b/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/_CodeSignature/CodeRequirements differ
diff --git a/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/_CodeSignature/CodeRequirements-1 b/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/_CodeSignature/CodeRequirements-1
new file mode 100644 (file)
index 0000000..a21cec1
Binary files /dev/null and b/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/_CodeSignature/CodeRequirements-1 differ
diff --git a/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/_CodeSignature/CodeResources b/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/_CodeSignature/CodeResources
new file mode 100644 (file)
index 0000000..3fb74c4
--- /dev/null
@@ -0,0 +1,252 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+       <key>files</key>
+       <dict>
+               <key>Headers/MixSdk-Swift.h</key>
+               <data>
+               wLmCBKapUq4ZNn1EJWPQ9ofFeIY=
+               </data>
+               <key>Headers/MixSdk.h</key>
+               <data>
+               RDwnkxVTEvZ3jTS9O6azeEFEgns=
+               </data>
+               <key>Info.plist</key>
+               <data>
+               7S70aIkn7x+XGSeVoVnMTBkYhTk=
+               </data>
+               <key>Modules/MixSdk.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo</key>
+               <data>
+               U9PEKZe6MEX1ZD7uVyF+gHWUu1g=
+               </data>
+               <key>Modules/MixSdk.swiftmodule/arm64-apple-ios.abi.json</key>
+               <data>
+               JV7LYEHyj+kgFkdQp4NYdtYARzM=
+               </data>
+               <key>Modules/MixSdk.swiftmodule/arm64-apple-ios.private.swiftinterface</key>
+               <data>
+               RFU5knjqRfGROvMpHaYvOnxCz7o=
+               </data>
+               <key>Modules/MixSdk.swiftmodule/arm64-apple-ios.swiftdoc</key>
+               <data>
+               /NGYI7HL3NqdrUiIrw5QHSG0URM=
+               </data>
+               <key>Modules/MixSdk.swiftmodule/arm64-apple-ios.swiftinterface</key>
+               <data>
+               RFU5knjqRfGROvMpHaYvOnxCz7o=
+               </data>
+               <key>Modules/MixSdk.swiftmodule/arm64-apple-ios.swiftmodule</key>
+               <data>
+               F4imi/aZXiUgTP5EAnZv6leF2G0=
+               </data>
+               <key>Modules/module.modulemap</key>
+               <data>
+               yLMxbG6c2uPuEoF9icR/B09Rdhc=
+               </data>
+               <key>PrivacyInfo.xcprivacy</key>
+               <data>
+               ucg9pita0v8d353x3NuGfxweQYU=
+               </data>
+       </dict>
+       <key>files2</key>
+       <dict>
+               <key>Headers/MixSdk-Swift.h</key>
+               <dict>
+                       <key>hash</key>
+                       <data>
+                       wLmCBKapUq4ZNn1EJWPQ9ofFeIY=
+                       </data>
+                       <key>hash2</key>
+                       <data>
+                       +OiQP27UUJrv4wjOhNSYCfOJiVGaAYh/PzbU3/+tAs8=
+                       </data>
+               </dict>
+               <key>Headers/MixSdk.h</key>
+               <dict>
+                       <key>hash</key>
+                       <data>
+                       RDwnkxVTEvZ3jTS9O6azeEFEgns=
+                       </data>
+                       <key>hash2</key>
+                       <data>
+                       iN0wwWxMfravqc7w/4rOqAw1vFRTE5D5x3jeZvQ9JoU=
+                       </data>
+               </dict>
+               <key>Modules/MixSdk.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo</key>
+               <dict>
+                       <key>hash</key>
+                       <data>
+                       U9PEKZe6MEX1ZD7uVyF+gHWUu1g=
+                       </data>
+                       <key>hash2</key>
+                       <data>
+                       uz3RXK+gKnx5H9vIhlFkheBjw5JXK+QD9oQlE6kBOa4=
+                       </data>
+               </dict>
+               <key>Modules/MixSdk.swiftmodule/arm64-apple-ios.abi.json</key>
+               <dict>
+                       <key>hash</key>
+                       <data>
+                       JV7LYEHyj+kgFkdQp4NYdtYARzM=
+                       </data>
+                       <key>hash2</key>
+                       <data>
+                       V3x+AxPd6awA4tA4jXrefs4qOnhZyVWPymmAo9YH3bU=
+                       </data>
+               </dict>
+               <key>Modules/MixSdk.swiftmodule/arm64-apple-ios.private.swiftinterface</key>
+               <dict>
+                       <key>hash</key>
+                       <data>
+                       RFU5knjqRfGROvMpHaYvOnxCz7o=
+                       </data>
+                       <key>hash2</key>
+                       <data>
+                       rxbuJ1Vf0mU5EfI94OJq6Ac/wq+TmzOKIyp8NI7lixs=
+                       </data>
+               </dict>
+               <key>Modules/MixSdk.swiftmodule/arm64-apple-ios.swiftdoc</key>
+               <dict>
+                       <key>hash</key>
+                       <data>
+                       /NGYI7HL3NqdrUiIrw5QHSG0URM=
+                       </data>
+                       <key>hash2</key>
+                       <data>
+                       ny2amNt+gvG+ppQ2Htz8tIJj1E9uyPAgalgR9K40zWw=
+                       </data>
+               </dict>
+               <key>Modules/MixSdk.swiftmodule/arm64-apple-ios.swiftinterface</key>
+               <dict>
+                       <key>hash</key>
+                       <data>
+                       RFU5knjqRfGROvMpHaYvOnxCz7o=
+                       </data>
+                       <key>hash2</key>
+                       <data>
+                       rxbuJ1Vf0mU5EfI94OJq6Ac/wq+TmzOKIyp8NI7lixs=
+                       </data>
+               </dict>
+               <key>Modules/MixSdk.swiftmodule/arm64-apple-ios.swiftmodule</key>
+               <dict>
+                       <key>hash</key>
+                       <data>
+                       F4imi/aZXiUgTP5EAnZv6leF2G0=
+                       </data>
+                       <key>hash2</key>
+                       <data>
+                       Bas+LyhTvUHzM90zBZFRqWxufmb3lUj3kwiHjUzXFZs=
+                       </data>
+               </dict>
+               <key>Modules/module.modulemap</key>
+               <dict>
+                       <key>hash</key>
+                       <data>
+                       yLMxbG6c2uPuEoF9icR/B09Rdhc=
+                       </data>
+                       <key>hash2</key>
+                       <data>
+                       DmF2EQ3cevs1qZ9DoYCqDvL7WIM9mn7Tf/gpacQg344=
+                       </data>
+               </dict>
+               <key>PrivacyInfo.xcprivacy</key>
+               <dict>
+                       <key>hash</key>
+                       <data>
+                       ucg9pita0v8d353x3NuGfxweQYU=
+                       </data>
+                       <key>hash2</key>
+                       <data>
+                       Uh6274Qwdz5cAQ4YOP6d2PpdYre3bRzqjX2NqtyxROI=
+                       </data>
+               </dict>
+       </dict>
+       <key>rules</key>
+       <dict>
+               <key>^.*</key>
+               <true/>
+               <key>^.*\.lproj/</key>
+               <dict>
+                       <key>optional</key>
+                       <true/>
+                       <key>weight</key>
+                       <real>1000</real>
+               </dict>
+               <key>^.*\.lproj/locversion.plist$</key>
+               <dict>
+                       <key>omit</key>
+                       <true/>
+                       <key>weight</key>
+                       <real>1100</real>
+               </dict>
+               <key>^Base\.lproj/</key>
+               <dict>
+                       <key>weight</key>
+                       <real>1010</real>
+               </dict>
+               <key>^version.plist$</key>
+               <true/>
+       </dict>
+       <key>rules2</key>
+       <dict>
+               <key>.*\.dSYM($|/)</key>
+               <dict>
+                       <key>weight</key>
+                       <real>11</real>
+               </dict>
+               <key>^(.*/)?\.DS_Store$</key>
+               <dict>
+                       <key>omit</key>
+                       <true/>
+                       <key>weight</key>
+                       <real>2000</real>
+               </dict>
+               <key>^.*</key>
+               <true/>
+               <key>^.*\.lproj/</key>
+               <dict>
+                       <key>optional</key>
+                       <true/>
+                       <key>weight</key>
+                       <real>1000</real>
+               </dict>
+               <key>^.*\.lproj/locversion.plist$</key>
+               <dict>
+                       <key>omit</key>
+                       <true/>
+                       <key>weight</key>
+                       <real>1100</real>
+               </dict>
+               <key>^Base\.lproj/</key>
+               <dict>
+                       <key>weight</key>
+                       <real>1010</real>
+               </dict>
+               <key>^Info\.plist$</key>
+               <dict>
+                       <key>omit</key>
+                       <true/>
+                       <key>weight</key>
+                       <real>20</real>
+               </dict>
+               <key>^PkgInfo$</key>
+               <dict>
+                       <key>omit</key>
+                       <true/>
+                       <key>weight</key>
+                       <real>20</real>
+               </dict>
+               <key>^embedded\.provisionprofile$</key>
+               <dict>
+                       <key>weight</key>
+                       <real>20</real>
+               </dict>
+               <key>^version\.plist$</key>
+               <dict>
+                       <key>weight</key>
+                       <real>20</real>
+               </dict>
+       </dict>
+</dict>
+</plist>
diff --git a/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/_CodeSignature/CodeSignature b/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/_CodeSignature/CodeSignature
new file mode 100644 (file)
index 0000000..86cc0fa
Binary files /dev/null and b/IOTBluetooth/IOTBluetooth/IOTBluetooth/framework/MixSdk.framework/_CodeSignature/CodeSignature differ
diff --git a/IOTBluetooth/IOTBluetooth/Podfile.lock b/IOTBluetooth/IOTBluetooth/Podfile.lock
new file mode 100644 (file)
index 0000000..c5eca7c
--- /dev/null
@@ -0,0 +1,24 @@
+PODS:
+  - IQKeyboardManagerSwift (7.1.1)
+  - SnapKit (5.7.1)
+  - Toast-Swift (5.1.1)
+
+DEPENDENCIES:
+  - IQKeyboardManagerSwift
+  - SnapKit (~> 5.7.0)
+  - Toast-Swift
+
+SPEC REPOS:
+  https://gitee.com/mirrors/CocoaPods-Specs.git:
+    - IQKeyboardManagerSwift
+    - SnapKit
+    - Toast-Swift
+
+SPEC CHECKSUMS:
+  IQKeyboardManagerSwift: d7f3d3a562c237a0e7335e657cd598c452f57f1b
+  SnapKit: d612e99e678a2d3b95bf60b0705ed0a35c03484a
+  Toast-Swift: 7a03a532afe3a560d4044bc7c237e2864d295173
+
+PODFILE CHECKSUM: 4bbdc884a7c5baa7f070a0c257de0c5b68144a6f
+
+COCOAPODS: 1.16.2
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Configuration/IQActiveConfiguration.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Configuration/IQActiveConfiguration.swift
new file mode 100644 (file)
index 0000000..7363270
--- /dev/null
@@ -0,0 +1,202 @@
+//
+//  IQActiveConfiguration.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import UIKit
+
+@available(iOSApplicationExtension, unavailable)
+@MainActor
+internal final class IQActiveConfiguration {
+
+    private let keyboardListener: IQKeyboardListener = IQKeyboardListener()
+    private let textFieldViewListener: IQTextFieldViewListener = IQTextFieldViewListener()
+
+    private var changeObservers: [AnyHashable: ConfigurationCompletion] = [:]
+
+    @objc public enum Event: Int {
+        case hide
+        case show
+        case change
+
+        var name: String {
+            switch self {
+            case .hide:
+                return "hide"
+            case .show:
+                return "show"
+            case .change:
+                return "change"
+            }
+        }
+    }
+
+    private var lastEvent: Event = .hide
+
+    var rootControllerConfiguration: IQRootControllerConfiguration?
+
+    var isReady: Bool {
+        if textFieldViewInfo != nil,
+           let rootControllerConfiguration = rootControllerConfiguration {
+            return rootControllerConfiguration.isReady
+        }
+        return false
+    }
+
+    init() {
+        addKeyboardListener()
+        addTextFieldViewListener()
+    }
+
+    private func sendEvent() {
+
+        if let rootControllerConfiguration = rootControllerConfiguration,
+           rootControllerConfiguration.isReady {
+            if keyboardInfo.keyboardShowing {
+                if lastEvent == .hide {
+                    self.notify(event: .show, keyboardInfo: keyboardInfo, textFieldViewInfo: textFieldViewInfo)
+                } else {
+                    self.notify(event: .change, keyboardInfo: keyboardInfo, textFieldViewInfo: textFieldViewInfo)
+                }
+            } else if lastEvent != .hide {
+                if rootControllerConfiguration.beginOrientation == rootControllerConfiguration.currentOrientation {
+                    self.notify(event: .hide, keyboardInfo: keyboardInfo, textFieldViewInfo: textFieldViewInfo)
+                    self.rootControllerConfiguration = nil
+                } else if rootControllerConfiguration.hasChanged {
+                    animate(alongsideTransition: {
+                        rootControllerConfiguration.restore()
+                    }, completion: nil)
+                }
+            }
+        }
+    }
+
+    private func updateRootController(info: IQTextFieldViewInfo?) {
+
+        guard let info = info,
+              let controller: UIViewController = info.textFieldView.iq.parentContainerViewController() else {
+            if let rootControllerConfiguration = rootControllerConfiguration,
+               rootControllerConfiguration.hasChanged {
+                animate(alongsideTransition: {
+                    rootControllerConfiguration.restore()
+                }, completion: nil)
+            }
+            rootControllerConfiguration = nil
+            return
+        }
+
+        let newConfiguration = IQRootControllerConfiguration(rootController: controller)
+
+        if newConfiguration.rootController.view.window != rootControllerConfiguration?.rootController.view.window ||
+            newConfiguration.beginOrientation != rootControllerConfiguration?.beginOrientation {
+
+            if rootControllerConfiguration?.rootController != newConfiguration.rootController {
+
+                // If there was an old configuration but things are changed
+                if let rootControllerConfiguration = rootControllerConfiguration,
+                   rootControllerConfiguration.hasChanged {
+                    animate(alongsideTransition: {
+                        rootControllerConfiguration.restore()
+                    }, completion: nil)
+                }
+            }
+
+            rootControllerConfiguration = newConfiguration
+        }
+    }
+}
+
+@available(iOSApplicationExtension, unavailable)
+extension IQActiveConfiguration {
+
+    var keyboardInfo: IQKeyboardInfo {
+        return keyboardListener.keyboardInfo
+    }
+
+    private func addKeyboardListener() {
+        keyboardListener.registerSizeChange(identifier: "IQActiveConfiguration", changeHandler: { [self] name, _ in
+
+            if let info = textFieldViewInfo, keyboardInfo.keyboardShowing {
+                if let rootControllerConfiguration = rootControllerConfiguration {
+                    let beginIsPortrait: Bool = rootControllerConfiguration.beginOrientation.isPortrait
+                    let currentIsPortrait: Bool = rootControllerConfiguration.currentOrientation.isPortrait
+                    if beginIsPortrait != currentIsPortrait {
+                        updateRootController(info: info)
+                    }
+                } else {
+                    updateRootController(info: info)
+                }
+            }
+
+            self.sendEvent()
+
+            if name == .didHide {
+                updateRootController(info: nil)
+            }
+        })
+    }
+
+    public func animate(alongsideTransition transition: @escaping () -> Void, completion: (() -> Void)? = nil) {
+        keyboardListener.animate(alongsideTransition: transition, completion: completion)
+    }
+}
+
+@available(iOSApplicationExtension, unavailable)
+extension IQActiveConfiguration {
+
+    var textFieldViewInfo: IQTextFieldViewInfo? {
+        return textFieldViewListener.textFieldViewInfo
+    }
+
+    private func addTextFieldViewListener() {
+        textFieldViewListener.registerTextFieldViewChange(identifier: "IQActiveConfiguration",
+                                                          changeHandler: { [self] info in
+            if info.name == .beginEditing {
+                updateRootController(info: info)
+                self.sendEvent()
+            }
+        })
+    }
+}
+
+@available(iOSApplicationExtension, unavailable)
+extension IQActiveConfiguration {
+
+    typealias ConfigurationCompletion = (_ event: Event,
+                                         _ keyboardInfo: IQKeyboardInfo,
+                                         _ textFieldInfo: IQTextFieldViewInfo?) -> Void
+
+    func registerChange(identifier: AnyHashable, changeHandler: @escaping ConfigurationCompletion) {
+        changeObservers[identifier] = changeHandler
+    }
+
+    func unregisterChange(identifier: AnyHashable) {
+        changeObservers[identifier] = nil
+    }
+
+    private func notify(event: Event, keyboardInfo: IQKeyboardInfo, textFieldViewInfo: IQTextFieldViewInfo?) {
+        lastEvent = event
+
+        for block in changeObservers.values {
+            block(event, keyboardInfo, textFieldViewInfo)
+        }
+    }
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Configuration/IQBarButtonItemConfiguration.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Configuration/IQBarButtonItemConfiguration.swift
new file mode 100644 (file)
index 0000000..9377c01
--- /dev/null
@@ -0,0 +1,96 @@
+//
+//  IQBarButtonItemConfiguration.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import UIKit
+
+/**
+ IQBarButtonItemConfiguration for creating toolbar with bar button items
+ */
+@available(iOSApplicationExtension, unavailable)
+@MainActor
+@objc public final class IQBarButtonItemConfiguration: NSObject {
+
+    @objc public init(systemItem: UIBarButtonItem.SystemItem, action: Selector? = nil) {
+        self.systemItem = systemItem
+        self.image = nil
+        self.title = nil
+        self.action = action
+        super.init()
+    }
+
+    @objc public init(image: UIImage, action: Selector? = nil) {
+        self.systemItem = nil
+        self.image = image
+        self.title = nil
+        self.action = action
+        super.init()
+    }
+
+    @objc public init(title: String, action: Selector? = nil) {
+        self.systemItem = nil
+        self.image = nil
+        self.title = title
+        self.action = action
+        super.init()
+    }
+
+    public let systemItem: UIBarButtonItem.SystemItem?    // System Item to be used to instantiate bar button.
+
+    @objc public let image: UIImage?    // Image to show on bar button item if it's not a system item.
+
+    @objc public let title: String?     // Title to show on bar button item if it's not a system item.
+
+    @objc public var action: Selector?  // action for bar button item. Usually 'doneAction:(IQBarButtonItem*)item'.
+
+    public override var accessibilityLabel: String? { didSet { } } // Accessibility related labels
+
+    func apply(on oldBarButtonItem: IQBarButtonItem, target: AnyObject?) -> IQBarButtonItem {
+
+        var newBarButtonItem: IQBarButtonItem = oldBarButtonItem
+
+        if systemItem == nil, !oldBarButtonItem.isSystemItem {
+            newBarButtonItem.title = title
+            newBarButtonItem.accessibilityLabel = accessibilityLabel
+            newBarButtonItem.accessibilityIdentifier = newBarButtonItem.accessibilityLabel
+            newBarButtonItem.image = image
+            newBarButtonItem.target = target
+            newBarButtonItem.action = action
+        } else {
+            if let systemItem: UIBarButtonItem.SystemItem = systemItem {
+                newBarButtonItem = IQBarButtonItem(barButtonSystemItem: systemItem, target: target, action: action)
+                newBarButtonItem.isSystemItem = true
+            } else if let image: UIImage = image {
+                newBarButtonItem = IQBarButtonItem(image: image, style: .plain, target: target, action: action)
+            } else {
+                newBarButtonItem = IQBarButtonItem(title: title, style: .plain, target: target, action: action)
+            }
+
+            newBarButtonItem.invocation = oldBarButtonItem.invocation
+            newBarButtonItem.accessibilityLabel = accessibilityLabel
+            newBarButtonItem.accessibilityIdentifier = oldBarButtonItem.accessibilityLabel
+            newBarButtonItem.isEnabled = oldBarButtonItem.isEnabled
+            newBarButtonItem.tag = oldBarButtonItem.tag
+        }
+        return newBarButtonItem
+    }
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Configuration/IQKeyboardConfiguration.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Configuration/IQKeyboardConfiguration.swift
new file mode 100644 (file)
index 0000000..653bc2c
--- /dev/null
@@ -0,0 +1,39 @@
+//
+//  IQKeyboardConfiguration.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import UIKit
+
+@available(iOSApplicationExtension, unavailable)
+@MainActor
+@objc public final class IQKeyboardConfiguration: NSObject {
+
+    /**
+    Override the keyboardAppearance for all textField/textView. Default is NO.
+    */
+    @objc public var overrideAppearance: Bool = false
+
+    /**
+    If overrideKeyboardAppearance is YES, then all the textField keyboardAppearance is set using this property.
+    */
+    @objc public var appearance: UIKeyboardAppearance = UIKeyboardAppearance.default
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Configuration/IQRootControllerConfiguration.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Configuration/IQRootControllerConfiguration.swift
new file mode 100644 (file)
index 0000000..93aba8c
--- /dev/null
@@ -0,0 +1,79 @@
+//
+//  IQRootControllerConfiguration.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import UIKit
+
+@available(iOSApplicationExtension, unavailable)
+@MainActor
+internal struct IQRootControllerConfiguration {
+
+    let rootController: UIViewController
+    let beginOrigin: CGPoint
+    let beginSafeAreaInsets: UIEdgeInsets
+    let beginOrientation: UIInterfaceOrientation
+
+    init(rootController: UIViewController) {
+        self.rootController = rootController
+        beginOrigin = rootController.view.frame.origin
+        beginSafeAreaInsets = rootController.view.safeAreaInsets
+
+        let interfaceOrientation: UIInterfaceOrientation
+        if let scene = rootController.view.window?.windowScene {
+            interfaceOrientation = scene.interfaceOrientation
+        } else {
+            interfaceOrientation = .unknown
+        }
+
+        beginOrientation = interfaceOrientation
+    }
+
+    var currentOrientation: UIInterfaceOrientation {
+        let interfaceOrientation: UIInterfaceOrientation
+        if let scene = rootController.view.window?.windowScene {
+            interfaceOrientation = scene.interfaceOrientation
+        } else {
+            interfaceOrientation = .unknown
+        }
+        return interfaceOrientation
+    }
+
+    var isReady: Bool {
+        return rootController.view.window != nil
+    }
+
+    var hasChanged: Bool {
+        return !rootController.view.frame.origin.equalTo(beginOrigin)
+    }
+
+    @discardableResult
+    func restore() -> Bool {
+        if !rootController.view.frame.origin.equalTo(beginOrigin) {
+            // Setting it's new frame
+            var rect: CGRect = rootController.view.frame
+            rect.origin = beginOrigin
+            rootController.view.frame = rect
+            return true
+        }
+        return false
+    }
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Configuration/IQScrollViewConfiguration.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Configuration/IQScrollViewConfiguration.swift
new file mode 100644 (file)
index 0000000..49f6f16
--- /dev/null
@@ -0,0 +1,94 @@
+//
+//  IQScrollViewConfiguration.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import UIKit
+
+@available(iOSApplicationExtension, unavailable)
+@MainActor
+internal struct IQScrollViewConfiguration {
+    let scrollView: UIScrollView
+    let startingContentOffset: CGPoint
+    let startingScrollIndicatorInsets: UIEdgeInsets
+    let startingContentInset: UIEdgeInsets
+
+    private let canRestoreContentOffset: Bool
+
+    init(scrollView: UIScrollView, canRestoreContentOffset: Bool) {
+        self.scrollView = scrollView
+        self.canRestoreContentOffset = canRestoreContentOffset
+
+        startingContentOffset = scrollView.contentOffset
+        startingContentInset = scrollView.contentInset
+        startingScrollIndicatorInsets = scrollView.verticalScrollIndicatorInsets
+    }
+
+    var hasChanged: Bool {
+        if scrollView.contentInset != self.startingContentInset {
+            return true
+        }
+
+        if canRestoreContentOffset,
+           scrollView.iq.restoreContentOffset,
+           !scrollView.contentOffset.equalTo(startingContentOffset) {
+            return true
+        }
+        return false
+    }
+
+    @discardableResult
+    func restore(for textFieldView: UIView?) -> Bool {
+        var success: Bool = false
+
+        if scrollView.contentInset != self.startingContentInset {
+            scrollView.contentInset = self.startingContentInset
+            scrollView.layoutIfNeeded() // (Bug ID: #1996)
+            success = true
+        }
+
+        if scrollView.verticalScrollIndicatorInsets != self.startingScrollIndicatorInsets {
+            scrollView.verticalScrollIndicatorInsets = self.startingScrollIndicatorInsets
+        }
+
+        if canRestoreContentOffset,
+           scrollView.iq.restoreContentOffset,
+           !scrollView.contentOffset.equalTo(startingContentOffset) {
+
+            //  (Bug ID: #1365, #1508, #1541)
+            let stackView: UIStackView? = textFieldView?.iq.superviewOf(type: UIStackView.self,
+                                                                        belowView: scrollView)
+            // (Bug ID: #1901, #1996)
+            let animatedContentOffset: Bool = stackView != nil ||
+            scrollView is UICollectionView ||
+            scrollView is UITableView
+
+            if animatedContentOffset {
+                scrollView.setContentOffset(startingContentOffset, animated: UIView.areAnimationsEnabled)
+            } else {
+                scrollView.contentOffset = startingContentOffset
+            }
+            success = true
+        }
+
+        return success
+    }
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Configuration/IQToolbarConfiguration.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Configuration/IQToolbarConfiguration.swift
new file mode 100644 (file)
index 0000000..3c6244b
--- /dev/null
@@ -0,0 +1,75 @@
+//
+//  IQToolbarConfiguration.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import UIKit
+
+@available(iOSApplicationExtension, unavailable)
+@MainActor
+@objc public final class IQToolbarConfiguration: NSObject {
+
+    /**
+     If YES, then uses textField's tintColor property for IQToolbar, otherwise tint color is default. Default is NO.
+     */
+    @objc public var useTextFieldTintColor: Bool = false
+
+    /**
+     This is used for toolbar.tintColor when textfield.keyboardAppearance is UIKeyboardAppearanceDefault.
+     If useTextFieldTintColor is YES then this property is ignored. Default is nil and uses black color.
+     */
+    @objc public var tintColor: UIColor?
+
+    /**
+     This is used for toolbar.barTintColor. Default is nil.
+     */
+    @objc public var barTintColor: UIColor?
+
+    /**
+     IQPreviousNextDisplayModeDefault:      Show NextPrevious when there are more than 1 textField otherwise hide.
+     IQPreviousNextDisplayModeAlwaysHide:   Do not show NextPrevious buttons in any case.
+     IQPreviousNextDisplayModeAlwaysShow:   Always show nextPrevious buttons,
+     if there are more than 1 textField then both buttons will be visible but will be shown as disabled.
+     */
+    @objc public var previousNextDisplayMode: IQPreviousNextDisplayMode = .default
+
+    /**
+     /**
+      IQAutoToolbarBySubviews:   Creates Toolbar according to subview's hierarchy of Textfield's in view.
+      IQAutoToolbarByTag:        Creates Toolbar according to tag property of TextField's.
+      IQAutoToolbarByPosition:   Creates Toolbar according to the y,x position
+      of textField in it's superview coordinate.
+
+      Default is IQAutoToolbarBySubviews.
+      */
+     AutoToolbar managing behavior. Default is IQAutoToolbarBySubviews.
+     */
+    @objc public var manageBehavior: IQAutoToolbarManageBehavior = .bySubviews
+
+    /**
+    Buttons configuration displayed on the toolbar, the selector parameter is ignored in below configuration
+    */
+    @objc public var previousBarButtonConfiguration: IQBarButtonItemConfiguration?
+    @objc public var nextBarButtonConfiguration: IQBarButtonItemConfiguration?
+    @objc public var doneBarButtonConfiguration: IQBarButtonItemConfiguration?
+
+    @objc public let placeholderConfiguration: IQToolbarPlaceholderConfiguration = .init()
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Configuration/IQToolbarPlaceholderConfiguration.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Configuration/IQToolbarPlaceholderConfiguration.swift
new file mode 100644 (file)
index 0000000..5ee4387
--- /dev/null
@@ -0,0 +1,54 @@
+//
+//  IQToolbarPlaceholderConfiguration.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import UIKit
+
+@available(iOSApplicationExtension, unavailable)
+@MainActor
+@objc public final class IQToolbarPlaceholderConfiguration: NSObject {
+
+    /**
+    If YES, then it add the textField's placeholder text on IQToolbar. Default is YES.
+    */
+    @objc public var showPlaceholder: Bool = true
+
+    /**
+    Placeholder Font. Default is nil.
+    */
+    @objc public var font: UIFont?
+
+    /**
+     Placeholder Color. Default is nil. Which means lightGray
+     */
+    @objc public var color: UIColor?
+
+    /**
+     Placeholder Button Color when it's treated as button. Default is nil.
+     */
+    @objc public var buttonColor: UIColor?
+
+    /**
+     Placeholder accessibility Label
+     */
+    public override var accessibilityLabel: String? { didSet { } }
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Constants/IQKeyboardManagerConstants.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Constants/IQKeyboardManagerConstants.swift
new file mode 100644 (file)
index 0000000..a3aac5c
--- /dev/null
@@ -0,0 +1,151 @@
+//
+//  IQKeyboardManagerConstants.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import Foundation
+
+// MARK: IQAutoToolbarManageBehavior
+
+/**
+`IQAutoToolbarBySubviews`
+Creates Toolbar according to subview's hierarchy of Textfield's in view.
+
+`IQAutoToolbarByTag`
+Creates Toolbar according to tag property of TextField's.
+
+`IQAutoToolbarByPosition`
+Creates Toolbar according to the y,x position of textField in it's superview coordinate.
+*/
+@available(iOSApplicationExtension, unavailable)
+@objc public enum IQAutoToolbarManageBehavior: Int {
+    case bySubviews
+    case byTag
+    case byPosition
+}
+
+/**
+ `IQPreviousNextDisplayModeDefault`
+ Show NextPrevious when there are more than 1 textField otherwise hide.
+ 
+ `IQPreviousNextDisplayModeAlwaysHide`
+ Do not show NextPrevious buttons in any case.
+ 
+ `IQPreviousNextDisplayModeAlwaysShow`
+ Always show nextPrevious buttons,
+ if there are more than 1 textField then both buttons will be visible but will be shown as disabled.
+ */
+@available(iOSApplicationExtension, unavailable)
+@objc public enum IQPreviousNextDisplayMode: Int {
+    case `default`
+    case alwaysHide
+    case alwaysShow
+}
+
+/**
+ `IQEnableModeDefault`
+ Pick default settings.
+ 
+ `IQEnableModeEnabled`
+ setting is enabled.
+ 
+ `IQEnableModeDisabled`
+ setting is disabled.
+ */
+@available(iOSApplicationExtension, unavailable)
+@objc public enum IQEnableMode: Int {
+    case `default`
+    case enabled
+    case disabled
+}
+
+/*
+ /---------------------------------------------------------------------------------------------------\
+ \---------------------------------------------------------------------------------------------------/
+ |                                   iOS Notification Mechanism                                    |
+ /---------------------------------------------------------------------------------------------------\
+ \---------------------------------------------------------------------------------------------------/
+ 
+ ------------------------------------------------------------
+ When UITextField become first responder
+ ------------------------------------------------------------
+ - UITextFieldTextDidBeginEditingNotification (UITextField)
+ - UIKeyboardWillShowNotification
+ - UIKeyboardDidShowNotification
+ 
+ ------------------------------------------------------------
+ When UITextView become first responder
+ ------------------------------------------------------------
+ - UIKeyboardWillShowNotification
+ - UITextViewTextDidBeginEditingNotification (UITextView)
+ - UIKeyboardDidShowNotification
+ 
+ ------------------------------------------------------------
+ When switching focus from UITextField to another UITextField
+ ------------------------------------------------------------
+ - UITextFieldTextDidEndEditingNotification (UITextField1)
+ - UITextFieldTextDidBeginEditingNotification (UITextField2)
+ - UIKeyboardWillShowNotification
+ - UIKeyboardDidShowNotification
+ 
+ ------------------------------------------------------------
+ When switching focus from UITextView to another UITextView
+ ------------------------------------------------------------
+ - UITextViewTextDidEndEditingNotification: (UITextView1)
+ - UIKeyboardWillShowNotification
+ - UITextViewTextDidBeginEditingNotification: (UITextView2)
+ - UIKeyboardDidShowNotification
+ 
+ ------------------------------------------------------------
+ When switching focus from UITextField to UITextView
+ ------------------------------------------------------------
+ - UITextFieldTextDidEndEditingNotification (UITextField)
+ - UIKeyboardWillShowNotification
+ - UITextViewTextDidBeginEditingNotification (UITextView)
+ - UIKeyboardDidShowNotification
+ 
+ ------------------------------------------------------------
+ When switching focus from UITextView to UITextField
+ ------------------------------------------------------------
+ - UITextViewTextDidEndEditingNotification (UITextView)
+ - UITextFieldTextDidBeginEditingNotification (UITextField)
+ - UIKeyboardWillShowNotification
+ - UIKeyboardDidShowNotification
+ 
+ ------------------------------------------------------------
+ When opening/closing UIKeyboard Predictive bar
+ ------------------------------------------------------------
+ - UIKeyboardWillShowNotification
+ - UIKeyboardDidShowNotification
+ 
+ ------------------------------------------------------------
+ On orientation change
+ ------------------------------------------------------------
+ - UIApplicationWillChangeStatusBarOrientationNotification
+ - UIKeyboardWillHideNotification
+ - UIKeyboardDidHideNotification
+ - UIApplicationDidChangeStatusBarOrientationNotification
+ - UIKeyboardWillShowNotification
+ - UIKeyboardDidShowNotification
+ - UIKeyboardWillShowNotification
+ - UIKeyboardDidShowNotification
+ 
+ */
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+Debug.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+Debug.swift
new file mode 100644 (file)
index 0000000..43df95f
--- /dev/null
@@ -0,0 +1,71 @@
+//
+//  IQKeyboardManager+Debug.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import UIKit
+
+// MARK: Debugging & Developer options
+@available(iOSApplicationExtension, unavailable)
+public extension IQKeyboardManager {
+
+    @MainActor
+    private struct AssociatedKeys {
+        static var enableDebugging: Int = 0
+    }
+
+    @objc var enableDebugging: Bool {
+        get {
+            return objc_getAssociatedObject(self, &AssociatedKeys.enableDebugging) as? Bool ?? false
+        }
+        set(newValue) {
+            objc_setAssociatedObject(self, &AssociatedKeys.enableDebugging,
+                                     newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
+        }
+    }
+
+    @MainActor
+    struct Static {
+        static var indentation = 0
+    }
+
+    internal func showLog(_ logString: String, indentation: Int = 0) {
+
+        guard enableDebugging else {
+            return
+        }
+
+        if indentation < 0 {
+            Static.indentation = max(0, Static.indentation + indentation)
+        }
+
+        var preLog: String = "IQKeyboardManager"
+        for _ in 0 ... Static.indentation {
+            preLog += "|\t"
+        }
+
+        print(preLog + logString)
+
+        if indentation > 0 {
+            Static.indentation += indentation
+        }
+    }
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+Deprecated.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+Deprecated.swift
new file mode 100644 (file)
index 0000000..c2cef98
--- /dev/null
@@ -0,0 +1,220 @@
+//
+//  IQKeyboardManager.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import UIKit
+
+// swiftlint:disable unused_setter_value
+// swiftlint:disable identifier_name
+// swiftlint:disable line_length
+@available(iOSApplicationExtension, unavailable)
+public extension IQKeyboardManager {
+
+    @available(*, unavailable, renamed: "resignOnTouchOutside")
+    @objc var shouldResignOnTouchOutside: Bool {
+        get { false }
+        set { }
+    }
+
+    @available(*, unavailable, renamed: "playInputClicks")
+    @objc var shouldPlayInputClicks: Bool {
+        get { false }
+        set { }
+    }
+
+    @available(*, unavailable, message: "This feature has been removed due to few compatibility problems")
+    @objc func registerTextFieldViewClass(_ aClass: UIView.Type,
+                                          didBeginEditingNotificationName: String,
+                                          didEndEditingNotificationName: String) {
+    }
+
+    @available(*, unavailable, message: "This feature has been removed due to few compatibility problems")
+    @objc func unregisterTextFieldViewClass(_ aClass: UIView.Type,
+                                            didBeginEditingNotificationName: String,
+                                            didEndEditingNotificationName: String) {
+    }
+}
+
+@available(iOSApplicationExtension, unavailable)
+public extension IQKeyboardManager {
+
+    @available(*, unavailable, renamed: "toolbarConfiguration.manageBehavior")
+    @objc var toolbarManageBehaviour: IQAutoToolbarManageBehavior {
+        get { .bySubviews }
+        set { }
+    }
+
+    @available(*, unavailable, renamed: "toolbarConfiguration.useTextFieldTintColor")
+    @objc var shouldToolbarUsesTextFieldTintColor: Bool {
+        get { false }
+        set { }
+    }
+
+    @available(*, unavailable, renamed: "toolbarConfiguration.tintColor")
+    @objc var toolbarTintColor: UIColor? {
+        get { nil }
+        set { }
+    }
+
+    @available(*, unavailable, renamed: "toolbarConfiguration.barTintColor")
+    @objc var toolbarBarTintColor: UIColor? {
+        get { nil }
+        set { }
+    }
+
+    @available(*, unavailable, renamed: "toolbarConfiguration.previousNextDisplayMode")
+    @objc var previousNextDisplayMode: IQPreviousNextDisplayMode {
+        get { .default }
+        set { }
+    }
+}
+
+@available(iOSApplicationExtension, unavailable)
+public extension IQKeyboardManager {
+    @available(*, unavailable, renamed: "toolbarConfiguration.previousBarButtonConfiguration.image",
+                message: "To change, please assign a new toolbarConfiguration.previousBarButtonConfiguration")
+    @objc var toolbarPreviousBarButtonItemImage: UIImage? {
+        get { nil }
+        set { }
+    }
+    @available(*, unavailable, renamed: "toolbarConfiguration.previousBarButtonConfiguration.title",
+                message: "To change, please assign a new toolbarConfiguration.previousBarButtonConfiguration")
+    @objc var toolbarPreviousBarButtonItemText: String? {
+        get { nil }
+        set { }
+    }
+    @available(*, unavailable, renamed: "toolbarConfiguration.previousBarButtonConfiguration.accessibilityLabel",
+                message: "To change, please assign a new toolbarConfiguration.previousBarButtonConfiguration")
+    @objc var toolbarPreviousBarButtonItemAccessibilityLabel: String? {
+        get { nil }
+        set { }
+    }
+
+    @available(*, unavailable, renamed: "toolbarConfiguration.nextBarButtonConfiguration.image",
+                message: "To change, please assign a new toolbarConfiguration.nextBarButtonConfiguration")
+    @objc var toolbarNextBarButtonItemImage: UIImage? {
+        get { nil }
+        set { }
+    }
+    @available(*, unavailable, renamed: "toolbarConfiguration.nextBarButtonConfiguration.title",
+                message: "To change, please assign a new toolbarConfiguration.nextBarButtonConfiguration")
+    @objc var toolbarNextBarButtonItemText: String? {
+        get { nil }
+        set { }
+    }
+    @available(*, unavailable, renamed: "toolbarConfiguration.nextBarButtonConfiguration.accessibilityLabel",
+                message: "To change, please assign a new toolbarConfiguration.nextBarButtonConfiguration")
+    @objc var toolbarNextBarButtonItemAccessibilityLabel: String? {
+        get { nil }
+        set { }
+    }
+
+    @available(*, unavailable, renamed: "toolbarConfiguration.doneBarButtonConfiguration.image",
+                message: "To change, please assign a new toolbarConfiguration.doneBarButtonConfiguration")
+    @objc var toolbarDoneBarButtonItemImage: UIImage? {
+        get { nil }
+        set { }
+    }
+    @available(*, unavailable, renamed: "toolbarConfiguration.doneBarButtonConfiguration.title",
+                message: "To change, please assign a new toolbarConfiguration.doneBarButtonConfiguration")
+    @objc var toolbarDoneBarButtonItemText: String? {
+        get { nil }
+        set { }
+    }
+    @available(*, unavailable, renamed: "toolbarConfiguration.doneBarButtonConfiguration.accessibilityLabel",
+                message: "To change, please assign a new toolbarConfiguration.doneBarButtonConfiguration")
+    @objc var toolbarDoneBarButtonItemAccessibilityLabel: String? {
+        get { nil }
+        set { }
+    }
+}
+
+@available(iOSApplicationExtension, unavailable)
+public extension IQKeyboardManager {
+
+    @available(*, unavailable, renamed: "toolbarConfiguration.placeholderConfiguration.accessibilityLabel")
+    @objc var toolbarTitlBarButtonItemAccessibilityLabel: String? {
+        get { nil }
+        set { }
+    }
+
+    @available(*, unavailable, renamed: "toolbarConfiguration.placeholderConfiguration.showPlaceholder")
+    @objc var shouldShowToolbarPlaceholder: Bool {
+        get { false }
+        set { }
+    }
+
+    @available(*, unavailable, renamed: "toolbarConfiguration.placeholderConfiguration.font")
+    @objc var placeholderFont: UIFont? {
+        get { nil }
+        set { }
+    }
+
+    @available(*, unavailable, renamed: "toolbarConfiguration.placeholderConfiguration.color")
+    @objc var placeholderColor: UIColor? {
+        get { nil }
+        set { }
+    }
+
+    @available(*, unavailable, renamed: "toolbarConfiguration.placeholderConfiguration.buttonColor")
+    @objc var placeholderButtonColor: UIColor? {
+        get { nil }
+        set { }
+    }
+}
+
+@available(iOSApplicationExtension, unavailable)
+public extension IQKeyboardManager {
+
+    @available(*, unavailable, renamed: "keyboardConfiguration.overrideAppearance")
+    @objc var overrideKeyboardAppearance: Bool {
+        get { false }
+        set { }
+    }
+
+    @available(*, unavailable, renamed: "keyboardConfiguration.appearance")
+    @objc var keyboardAppearance: UIKeyboardAppearance {
+        get { .default }
+        set { }
+    }
+}
+
+@available(iOSApplicationExtension, unavailable)
+public extension IQKeyboardManager {
+
+    typealias SizeBlock = (_ size: CGSize) -> Void
+
+    @available(*, unavailable, message: "This feature has been moved to IQKeyboardListener, use it directly by creating new instance")
+    @objc func registerKeyboardSizeChange(identifier: AnyHashable, sizeHandler: @escaping SizeBlock) {}
+
+    @available(*, unavailable, message: "This feature has been moved to IQKeyboardListener, use it directly by creating new instance")
+    @objc func unregisterKeyboardSizeChange(identifier: AnyHashable) {}
+
+    @available(*, unavailable, message: "This feature has been moved to IQKeyboardListener, use it directly by creating new instance")
+    @objc var keyboardShowing: Bool { false }
+
+    @available(*, unavailable, message: "This feature has been moved to IQKeyboardListener, use it directly by creating new instance")
+    @objc var keyboardFrame: CGRect { .zero }
+}
+// swiftlint:enable unused_setter_value
+// swiftlint:enable identifier_name
+// swiftlint:enable line_length
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+Internal.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+Internal.swift
new file mode 100644 (file)
index 0000000..36a1874
--- /dev/null
@@ -0,0 +1,239 @@
+//
+//  IQKeyboardManager+Internal.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import UIKit
+
+@available(iOSApplicationExtension, unavailable)
+internal extension IQKeyboardManager {
+
+    /**    Get all UITextField/UITextView siblings of textFieldView. */
+    func responderViews() -> [UIView]? {
+
+        guard let textFieldView: UIView = activeConfiguration.textFieldViewInfo?.textFieldView else {
+            return nil
+        }
+
+        var superConsideredView: UIView?
+
+        // If find any consider responderView in it's upper hierarchy then will get deepResponderView.
+        for allowedClass in toolbarPreviousNextAllowedClasses {
+            superConsideredView = textFieldView.iq.superviewOf(type: allowedClass)
+            if superConsideredView != nil {
+                break
+            }
+        }
+
+        var swiftUIHostingView: UIView?
+        let swiftUIHostingViewName: String = "UIHostingView<"
+        var superView: UIView? = textFieldView.superview
+        while let unwrappedSuperView: UIView = superView {
+
+            let classNameString: String = {
+                var name: String = "\(type(of: unwrappedSuperView.self))"
+                if name.hasPrefix("_") {
+                    name.removeFirst()
+                }
+                return name
+            }()
+
+            if classNameString.hasPrefix(swiftUIHostingViewName) {
+                swiftUIHostingView = unwrappedSuperView
+                break
+            }
+
+            superView = unwrappedSuperView.superview
+        }
+
+        // (Enhancement ID: #22)
+        // If there is a superConsideredView in view's hierarchy,
+        // then fetching all it's subview that responds.
+        // No sorting for superConsideredView, it's by subView position.
+        if let view: UIView = swiftUIHostingView {
+            return view.iq.deepResponderViews()
+        } else if let view: UIView = superConsideredView {
+            return view.iq.deepResponderViews()
+        } else {  // Otherwise fetching all the siblings
+
+            let textFields: [UIView] = textFieldView.iq.responderSiblings()
+
+            // Sorting textFields according to behavior
+            switch toolbarConfiguration.manageBehavior {
+            // If autoToolbar behavior is bySubviews, then returning it.
+            case .bySubviews:   return textFields
+
+            // If autoToolbar behavior is by tag, then sorting it according to tag property.
+            case .byTag:    return textFields.sortedByTag()
+
+            // If autoToolbar behavior is by tag, then sorting it according to tag property.
+            case .byPosition:    return textFields.sortedByPosition()
+            }
+        }
+    }
+
+    func privateIsEnabled() -> Bool {
+
+        var isEnabled: Bool = enable
+
+        guard let textFieldViewInfo: IQTextFieldViewInfo = activeConfiguration.textFieldViewInfo else {
+            return isEnabled
+        }
+
+        let enableMode: IQEnableMode = textFieldViewInfo.textFieldView.iq.enableMode
+
+        if enableMode == .enabled {
+            isEnabled = true
+        } else if enableMode == .disabled {
+            isEnabled = false
+        } else if var textFieldViewController = textFieldViewInfo.textFieldView.iq.viewContainingController() {
+
+            // If it is searchBar textField embedded in Navigation Bar
+            if textFieldViewInfo.textFieldView.iq.textFieldSearchBar() != nil,
+               let navController: UINavigationController = textFieldViewController as? UINavigationController,
+               let topController: UIViewController = navController.topViewController {
+                textFieldViewController = topController
+            }
+
+            // If viewController is kind of enable viewController class, then assuming it's enabled.
+            if !isEnabled, enabledDistanceHandlingClasses.contains(where: { textFieldViewController.isKind(of: $0) }) {
+                isEnabled = true
+            }
+
+            if isEnabled {
+
+                // If viewController is kind of disabled viewController class, then assuming it's disabled.
+                if disabledDistanceHandlingClasses.contains(where: { textFieldViewController.isKind(of: $0) }) {
+                    isEnabled = false
+                }
+
+                // Special Controllers
+                if isEnabled {
+
+                    let classNameString: String = "\(type(of: textFieldViewController.self))"
+
+                    // _UIAlertControllerTextFieldViewController
+                    if classNameString.contains("UIAlertController"),
+                       classNameString.hasSuffix("TextFieldViewController") {
+                        isEnabled = false
+                    }
+                }
+            }
+        }
+
+        return isEnabled
+    }
+
+    func privateIsEnableAutoToolbar() -> Bool {
+
+        var isEnabled: Bool = enableAutoToolbar
+
+        guard let textFieldViewInfo: IQTextFieldViewInfo = activeConfiguration.textFieldViewInfo,
+              var textFieldViewController = textFieldViewInfo.textFieldView.iq.viewContainingController() else {
+            return isEnabled
+        }
+
+        // If it is searchBar textField embedded in Navigation Bar
+        if textFieldViewInfo.textFieldView.iq.textFieldSearchBar() != nil,
+           let navController: UINavigationController = textFieldViewController as? UINavigationController,
+           let topController: UIViewController = navController.topViewController {
+            textFieldViewController = topController
+        }
+
+        if !isEnabled, enabledToolbarClasses.contains(where: { textFieldViewController.isKind(of: $0) }) {
+            isEnabled = true
+        }
+
+        if isEnabled {
+
+            // If found any toolbar disabled classes then return.
+            if disabledToolbarClasses.contains(where: { textFieldViewController.isKind(of: $0) }) {
+                isEnabled = false
+            }
+
+            // Special Controllers
+            if isEnabled {
+
+                let classNameString: String = "\(type(of: textFieldViewController.self))"
+
+                // _UIAlertControllerTextFieldViewController
+                if classNameString.contains("UIAlertController"), classNameString.hasSuffix("TextFieldViewController") {
+                    isEnabled = false
+                }
+            }
+        }
+
+        return isEnabled
+    }
+
+    func privateResignOnTouchOutside() -> Bool {
+
+        var isEnabled: Bool = resignOnTouchOutside
+
+        guard let textFieldViewInfo: IQTextFieldViewInfo = activeConfiguration.textFieldViewInfo else {
+            return isEnabled
+        }
+
+        let enableMode: IQEnableMode = textFieldViewInfo.textFieldView.iq.resignOnTouchOutsideMode
+
+        if enableMode == .enabled {
+            isEnabled = true
+        } else if enableMode == .disabled {
+            isEnabled = false
+        } else if var textFieldViewController = textFieldViewInfo.textFieldView.iq.viewContainingController() {
+
+            // If it is searchBar textField embedded in Navigation Bar
+            if textFieldViewInfo.textFieldView.iq.textFieldSearchBar() != nil,
+               let navController: UINavigationController = textFieldViewController as? UINavigationController,
+               let topController: UIViewController = navController.topViewController {
+                textFieldViewController = topController
+            }
+
+            // If viewController is kind of enable viewController class, then assuming resignOnTouchOutside is enabled.
+            if !isEnabled,
+               enabledTouchResignedClasses.contains(where: { textFieldViewController.isKind(of: $0) }) {
+                isEnabled = true
+            }
+
+            if isEnabled {
+
+                // If viewController is kind of disable viewController class,
+                // then assuming resignOnTouchOutside is disable.
+                if disabledTouchResignedClasses.contains(where: { textFieldViewController.isKind(of: $0) }) {
+                    isEnabled = false
+                }
+
+                // Special Controllers
+                if isEnabled {
+
+                    let classNameString: String = "\(type(of: textFieldViewController.self))"
+
+                    // _UIAlertControllerTextFieldViewController
+                    if classNameString.contains("UIAlertController"),
+                        classNameString.hasSuffix("TextFieldViewController") {
+                        isEnabled = false
+                    }
+                }
+            }
+        }
+        return isEnabled
+    }
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+Position.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+Position.swift
new file mode 100644 (file)
index 0000000..db40113
--- /dev/null
@@ -0,0 +1,718 @@
+//
+//  IQKeyboardManager+Position.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import UIKit
+
+// swiftlint:disable file_length
+@available(iOSApplicationExtension, unavailable)
+public extension IQKeyboardManager {
+
+    @MainActor
+    private struct AssociatedKeys {
+        static var movedDistance: Int = 0
+        static var movedDistanceChanged: Int = 0
+        static var lastScrollViewConfiguration: Int = 0
+        static var startingTextViewConfiguration: Int = 0
+        static var activeConfiguration: Int = 0
+    }
+
+    /**
+     moved distance to the top used to maintain distance between keyboard and textField.
+     Most of the time this will be a positive value.
+     */
+    private(set) var movedDistance: CGFloat {
+        get {
+            return objc_getAssociatedObject(self, &AssociatedKeys.movedDistance) as? CGFloat ?? 0.0
+        }
+        set(newValue) {
+            objc_setAssociatedObject(self, &AssociatedKeys.movedDistance, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
+            movedDistanceChanged?(movedDistance)
+        }
+    }
+
+    /**
+    Will be called then movedDistance will be changed
+     */
+    @objc var movedDistanceChanged: ((CGFloat) -> Void)? {
+        get {
+            return objc_getAssociatedObject(self, &AssociatedKeys.movedDistanceChanged) as? ((CGFloat) -> Void)
+        }
+        set(newValue) {
+            objc_setAssociatedObject(self, &AssociatedKeys.movedDistanceChanged,
+                                     newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
+            movedDistanceChanged?(movedDistance)
+        }
+    }
+
+    /** Variable to save lastScrollView that was scrolled. */
+    internal var lastScrollViewConfiguration: IQScrollViewConfiguration? {
+        get {
+            return objc_getAssociatedObject(self,
+                                            &AssociatedKeys.lastScrollViewConfiguration) as? IQScrollViewConfiguration
+        }
+        set(newValue) {
+            objc_setAssociatedObject(self, &AssociatedKeys.lastScrollViewConfiguration,
+                                     newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
+        }
+    }
+
+    /** used to adjust contentInset of UITextView. */
+    internal var startingTextViewConfiguration: IQScrollViewConfiguration? {
+        get {
+            return objc_getAssociatedObject(self,
+                                            &AssociatedKeys.startingTextViewConfiguration) as? IQScrollViewConfiguration
+        }
+        set(newValue) {
+            objc_setAssociatedObject(self, &AssociatedKeys.startingTextViewConfiguration,
+                                     newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
+        }
+    }
+
+    internal func addActiveConfigurationObserver() {
+        activeConfiguration.registerChange(identifier: UUID().uuidString, changeHandler: { event, _, _ in
+            switch event {
+            case .show:
+                self.handleKeyboardTextFieldViewVisible()
+            case .change:
+                self.handleKeyboardTextFieldViewChanged()
+            case .hide:
+                self.handleKeyboardTextFieldViewHide()
+            }
+        })
+    }
+
+    @objc internal func applicationDidBecomeActive(_ notification: Notification) {
+
+        guard privateIsEnabled(),
+              activeConfiguration.keyboardInfo.keyboardShowing,
+              activeConfiguration.isReady else {
+            return
+        }
+        adjustPosition()
+    }
+
+    /* Adjusting RootViewController's frame according to interface orientation. */
+    // swiftlint:disable cyclomatic_complexity
+    // swiftlint:disable function_body_length
+    internal func adjustPosition() {
+
+        //  We are unable to get textField object while keyboard showing on WKWebView's textField.  (Bug ID: #11)
+        guard UIApplication.shared.applicationState == .active,
+              let textFieldView: UIView = activeConfiguration.textFieldViewInfo?.textFieldView,
+              let superview: UIView = textFieldView.superview,
+              let rootConfiguration = activeConfiguration.rootControllerConfiguration,
+              let window: UIWindow = rootConfiguration.rootController.view.window else {
+            return
+        }
+
+        showLog(">>>>> \(#function) started >>>>>", indentation: 1)
+        let startTime: CFTimeInterval = CACurrentMediaTime()
+
+        let rootController: UIViewController = rootConfiguration.rootController
+        let textFieldViewRectInWindow: CGRect = superview.convert(textFieldView.frame, to: window)
+        let textFieldViewRectInRootSuperview: CGRect = superview.convert(textFieldView.frame,
+                                                                         to: rootController.view.superview)
+
+        //  Getting RootViewOrigin.
+        var rootViewOrigin: CGPoint = rootController.view.frame.origin
+
+        let keyboardDistance: CGFloat
+
+        do {
+            // Maintain keyboardDistanceFromTextField
+            let specialKeyboardDistanceFromTextField: CGFloat
+
+            if let searchBar: UIView = textFieldView.iq.textFieldSearchBar() {
+                specialKeyboardDistanceFromTextField = searchBar.iq.distanceFromKeyboard
+            } else {
+                specialKeyboardDistanceFromTextField = textFieldView.iq.distanceFromKeyboard
+            }
+
+            if specialKeyboardDistanceFromTextField == UIView.defaultKeyboardDistance {
+                keyboardDistance = keyboardDistanceFromTextField
+            } else {
+                keyboardDistance = specialKeyboardDistanceFromTextField
+            }
+        }
+
+        let kbSize: CGSize
+        let originalKbSize: CGSize = activeConfiguration.keyboardInfo.frame.size
+
+        do {
+            var kbFrame: CGRect = activeConfiguration.keyboardInfo.frame
+
+            kbFrame.origin.y -= keyboardDistance
+            kbFrame.size.height += keyboardDistance
+
+            kbFrame.origin.y -= rootConfiguration.beginSafeAreaInsets.bottom
+            kbFrame.size.height += rootConfiguration.beginSafeAreaInsets.bottom
+
+            // (Bug ID: #469) (Bug ID: #381) (Bug ID: #1506)
+            // Calculating actual keyboard covered size respect to window,
+            // keyboard frame may be different when hardware keyboard is attached
+            let intersectRect: CGRect = kbFrame.intersection(window.frame)
+
+            if intersectRect.isNull {
+                kbSize = CGSize(width: kbFrame.size.width, height: 0)
+            } else {
+                kbSize = intersectRect.size
+            }
+        }
+
+        let statusBarHeight: CGFloat
+
+        let navigationBarAreaHeight: CGFloat
+        if let navigationController: UINavigationController = rootController.navigationController {
+            navigationBarAreaHeight = navigationController.navigationBar.frame.maxY
+        } else {
+            statusBarHeight = window.windowScene?.statusBarManager?.statusBarFrame.height ?? 0
+            navigationBarAreaHeight = statusBarHeight
+        }
+
+        let isScrollableTextView: Bool
+
+        if let textView: UIScrollView = textFieldView as? UIScrollView,
+           textFieldView.responds(to: #selector(getter: UITextView.isEditable)) {
+            isScrollableTextView = textView.isScrollEnabled
+        } else {
+            isScrollableTextView = false
+        }
+
+        let directionalLayoutMargin: NSDirectionalEdgeInsets = rootController.view.directionalLayoutMargins
+        let topLayoutGuide: CGFloat = CGFloat.maximum(navigationBarAreaHeight, directionalLayoutMargin.top)
+
+        // Validation of textView for case where there is a tab bar
+        // at the bottom or running on iPhone X and textView is at the bottom.
+        let bottomLayoutGuide: CGFloat = isScrollableTextView ? 0 : directionalLayoutMargin.bottom
+
+        //  Move positive = textField is hidden.
+        //  Move negative = textField is showing.
+        //  Calculating move position.
+        var moveUp: CGFloat
+
+        do {
+            let visibleHeight: CGFloat = window.frame.height-kbSize.height
+
+            let topMovement: CGFloat = textFieldViewRectInRootSuperview.minY-topLayoutGuide
+            let bottomMovement: CGFloat = textFieldViewRectInWindow.maxY - visibleHeight + bottomLayoutGuide
+            moveUp = CGFloat.minimum(topMovement, bottomMovement)
+            moveUp = CGFloat(Int(moveUp))
+        }
+
+        showLog("Need to move: \(moveUp), will be moving \(moveUp < 0 ? "down" : "up")")
+
+        var superScrollView: UIScrollView?
+        var superView: UIScrollView? = textFieldView.iq.superviewOf(type: UIScrollView.self)
+
+        // Getting UIScrollView whose scrolling is enabled.    //  (Bug ID: #285)
+        while let view: UIScrollView = superView {
+
+            if view.isScrollEnabled, !view.iq.ignoreScrollingAdjustment {
+                superScrollView = view
+                break
+            } else {
+                //  Getting it's superScrollView.   //  (Enhancement ID: #21, #24)
+                superView = view.iq.superviewOf(type: UIScrollView.self)
+            }
+        }
+
+        // If there was a lastScrollView.    //  (Bug ID: #34)
+        if let lastConfiguration: IQScrollViewConfiguration = lastScrollViewConfiguration {
+            // If we can't find current superScrollView, then setting lastScrollView to it's original form.
+            if superScrollView == nil {
+
+                if lastConfiguration.hasChanged {
+                    if lastConfiguration.scrollView.contentInset != lastConfiguration.startingContentInset {
+                        showLog("Restoring contentInset to: \(lastConfiguration.startingContentInset)")
+                    }
+
+                    if lastConfiguration.scrollView.iq.restoreContentOffset,
+                       !lastConfiguration.scrollView.contentOffset.equalTo(lastConfiguration.startingContentOffset) {
+                        showLog("Restoring contentOffset to: \(lastConfiguration.startingContentOffset)")
+                    }
+
+                    activeConfiguration.animate(alongsideTransition: {
+                        lastConfiguration.restore(for: textFieldView)
+                    })
+                }
+
+                self.lastScrollViewConfiguration = nil
+            } else if superScrollView != lastConfiguration.scrollView {
+                // If both scrollView's are different,
+                // then reset lastScrollView to it's original frame and setting current scrollView as last scrollView.
+                if lastConfiguration.hasChanged {
+                    if lastConfiguration.scrollView.contentInset != lastConfiguration.startingContentInset {
+                        showLog("Restoring contentInset to: \(lastConfiguration.startingContentInset)")
+                    }
+
+                    if lastConfiguration.scrollView.iq.restoreContentOffset,
+                       !lastConfiguration.scrollView.contentOffset.equalTo(lastConfiguration.startingContentOffset) {
+                        showLog("Restoring contentOffset to: \(lastConfiguration.startingContentOffset)")
+                    }
+
+                    activeConfiguration.animate(alongsideTransition: {
+                        lastConfiguration.restore(for: textFieldView)
+                    })
+                }
+
+                if let superScrollView = superScrollView {
+                    let configuration = IQScrollViewConfiguration(scrollView: superScrollView,
+                                                                  canRestoreContentOffset: true)
+                    self.lastScrollViewConfiguration = configuration
+                    showLog("""
+                            Saving ScrollView New contentInset: \(configuration.startingContentInset)
+                            and contentOffset: \(configuration.startingContentOffset)
+                            """)
+                } else {
+                    self.lastScrollViewConfiguration = nil
+                }
+            }
+            // Else the case where superScrollView == lastScrollView means we are on same scrollView
+            // after switching to different textField. So doing nothing, going ahead
+        } else if let superScrollView: UIScrollView = superScrollView {
+            // If there was no lastScrollView and we found a current scrollView. then setting it as lastScrollView.
+
+            let configuration = IQScrollViewConfiguration(scrollView: superScrollView, canRestoreContentOffset: true)
+            self.lastScrollViewConfiguration = configuration
+            showLog("""
+                    Saving ScrollView New contentInset: \(configuration.startingContentInset)
+                    and contentOffset: \(configuration.startingContentOffset)
+                    """)
+        }
+
+        //  Special case for ScrollView.
+        //  If we found lastScrollView then setting it's contentOffset to show textField.
+        if let lastScrollViewConfiguration: IQScrollViewConfiguration  = lastScrollViewConfiguration {
+            // Saving
+            var lastView: UIView = textFieldView
+            var superScrollView: UIScrollView? = lastScrollViewConfiguration.scrollView
+
+            while let scrollView: UIScrollView = superScrollView {
+
+                var isContinue: Bool = false
+
+                if moveUp > 0 {
+                    isContinue = moveUp > (-scrollView.contentOffset.y - scrollView.contentInset.top)
+
+                } else if let tableView: UITableView = scrollView.iq.superviewOf(type: UITableView.self) {
+                    // Special treatment for UITableView due to their cell reusing logic
+
+                    isContinue = scrollView.contentOffset.y > 0
+
+                    if isContinue,
+                       let tableCell: UITableViewCell = textFieldView.iq.superviewOf(type: UITableViewCell.self),
+                       let indexPath: IndexPath = tableView.indexPath(for: tableCell),
+                       let previousIndexPath: IndexPath = tableView.previousIndexPath(of: indexPath) {
+
+                        let previousCellRect: CGRect = tableView.rectForRow(at: previousIndexPath)
+                        if !previousCellRect.isEmpty {
+                            let superview: UIView? = rootController.view.superview
+                            let previousCellRectInRootSuperview: CGRect = tableView.convert(previousCellRect,
+                                                                                            to: superview)
+
+                            moveUp = CGFloat.minimum(0, previousCellRectInRootSuperview.maxY - topLayoutGuide)
+                        }
+                    }
+                } else if let collectionView = scrollView.iq.superviewOf(type: UICollectionView.self) {
+                    // Special treatment for UICollectionView due to their cell reusing logic
+
+                    isContinue = scrollView.contentOffset.y > 0
+
+                    if isContinue,
+                       let collectionCell = textFieldView.iq.superviewOf(type: UICollectionViewCell.self),
+                       let indexPath: IndexPath = collectionView.indexPath(for: collectionCell),
+                       let previousIndexPath: IndexPath = collectionView.previousIndexPath(of: indexPath),
+                       let attributes = collectionView.layoutAttributesForItem(at: previousIndexPath) {
+
+                        let previousCellRect: CGRect = attributes.frame
+                        if !previousCellRect.isEmpty {
+                            let superview: UIView? = rootController.view.superview
+                            let previousCellRectInRootSuperview: CGRect = collectionView.convert(previousCellRect,
+                                                                                                 to: superview)
+
+                            moveUp = CGFloat.minimum(0, previousCellRectInRootSuperview.maxY - topLayoutGuide)
+                        }
+                    }
+                } else {
+                    isContinue = textFieldViewRectInRootSuperview.minY < topLayoutGuide
+
+                    if isContinue {
+                        moveUp = CGFloat.minimum(0, textFieldViewRectInRootSuperview.minY - topLayoutGuide)
+                    }
+                }
+
+                // Looping in upper hierarchy until we don't found any scrollView then
+                // in it's upper hierarchy till UIWindow object.
+                if isContinue {
+
+                    var tempScrollView: UIScrollView? = scrollView.iq.superviewOf(type: UIScrollView.self)
+                    var nextScrollView: UIScrollView?
+                    while let view: UIScrollView = tempScrollView {
+
+                        if view.isScrollEnabled, !view.iq.ignoreScrollingAdjustment {
+                            nextScrollView = view
+                            break
+                        } else {
+                            tempScrollView = view.iq.superviewOf(type: UIScrollView.self)
+                        }
+                    }
+
+                    // Getting lastViewRect.
+                    if let lastViewRect: CGRect = lastView.superview?.convert(lastView.frame, to: scrollView) {
+
+                        // Calculating the expected Y offset from move and scrollView's contentOffset.
+                        let minimumMovement: CGFloat = CGFloat.minimum(scrollView.contentOffset.y, -moveUp)
+                        var suggestedOffsetY: CGFloat = scrollView.contentOffset.y - minimumMovement
+
+                        // Rearranging the expected Y offset according to the view.
+                        suggestedOffsetY = CGFloat.minimum(suggestedOffsetY, lastViewRect.minY)
+
+                        // [_textFieldView isKindOfClass:[UITextView class]] If is a UITextView type
+                        // nextScrollView == nil    If processing scrollView is last scrollView in
+                        // upper hierarchy (there is no other scrollView upper hierarchy.)
+                        // [_textFieldView isKindOfClass:[UITextView class]] If is a UITextView type
+                        // suggestedOffsetY >= 0     suggestedOffsetY must be greater than in 
+                        // order to keep distance from navigationBar (Bug ID: #92)
+                        if isScrollableTextView,
+                            nextScrollView == nil,
+                            suggestedOffsetY >= 0 {
+
+                            // Converting Rectangle according to window bounds.
+                            if let superview: UIView = textFieldView.superview {
+
+                                let currentTextFieldViewRect: CGRect = superview.convert(textFieldView.frame,
+                                                                                         to: window)
+
+                                // Calculating expected fix distance which needs to be managed from navigation bar
+                                let expectedFixDistance: CGFloat = currentTextFieldViewRect.minY - topLayoutGuide
+
+                                // Now if expectedOffsetY (scrollView.contentOffset.y + expectedFixDistance)
+                                // is lower than current suggestedOffsetY, which means we're in a position where
+                                // navigationBar up and hide, then reducing suggestedOffsetY with expectedOffsetY
+                                // (scrollView.contentOffset.y + expectedFixDistance)
+                                let expectedOffsetY: CGFloat = scrollView.contentOffset.y + expectedFixDistance
+                                suggestedOffsetY = CGFloat.minimum(suggestedOffsetY, expectedOffsetY)
+
+                                // Setting move to 0 because now we don't want to move any view anymore
+                                // (All will be managed by our contentInset logic.
+                                moveUp = 0
+                            } else {
+                                // Subtracting the Y offset from the move variable,
+                                // because we are going to change scrollView's contentOffset.y to suggestedOffsetY.
+                                moveUp -= (suggestedOffsetY-scrollView.contentOffset.y)
+                            }
+                        } else {
+                            // Subtracting the Y offset from the move variable,
+                            // because we are going to change scrollView's contentOffset.y to suggestedOffsetY.
+                            moveUp -= (suggestedOffsetY-scrollView.contentOffset.y)
+                        }
+
+                        let newContentOffset: CGPoint = CGPoint(x: scrollView.contentOffset.x, y: suggestedOffsetY)
+
+                        if !scrollView.contentOffset.equalTo(newContentOffset) {
+
+                            showLog("""
+                                    old contentOffset: \(scrollView.contentOffset)
+                                    new contentOffset: \(newContentOffset)
+                                    """)
+                            self.showLog("Remaining Move: \(moveUp)")
+
+                            // Getting problem while using `setContentOffset:animated:`, So I used animation API.
+                            activeConfiguration.animate(alongsideTransition: {
+
+                                //  (Bug ID: #1365, #1508, #1541)
+                                let stackView: UIStackView? = textFieldView.iq.superviewOf(type: UIStackView.self,
+                                                                                           belowView: scrollView)
+                                // (Bug ID: #1901, #1996)
+                                let animatedContentOffset: Bool = stackView != nil ||
+                                scrollView is UICollectionView ||
+                                scrollView is UITableView
+
+                                if animatedContentOffset {
+                                    scrollView.setContentOffset(newContentOffset, animated: UIView.areAnimationsEnabled)
+                                } else {
+                                    scrollView.contentOffset = newContentOffset
+                                }
+                            }, completion: {
+
+                                if scrollView is UITableView || scrollView is UICollectionView {
+                                    // This will update the next/previous states
+                                    self.reloadInputViews()
+                                }
+                            })
+                        }
+                    }
+
+                    // Getting next lastView & superScrollView.
+                    lastView = scrollView
+                    superScrollView = nextScrollView
+                } else {
+                    moveUp = 0
+                    break
+                }
+            }
+
+            // Updating contentInset
+            let lastScrollView = lastScrollViewConfiguration.scrollView
+            if let lastScrollViewRect: CGRect = lastScrollView.superview?.convert(lastScrollView.frame, to: window),
+                !lastScrollView.iq.ignoreContentInsetAdjustment {
+
+                var bottomInset: CGFloat = (kbSize.height)-(window.frame.height-lastScrollViewRect.maxY)
+                let keyboardAndSafeArea: CGFloat = keyboardDistance + rootConfiguration.beginSafeAreaInsets.bottom
+                var bottomScrollIndicatorInset: CGFloat = bottomInset - keyboardAndSafeArea
+
+                // Update the insets so that the scrollView doesn't shift incorrectly
+                // when the offset is near the bottom of the scroll view.
+                bottomInset = CGFloat.maximum(lastScrollViewConfiguration.startingContentInset.bottom, bottomInset)
+                let startingScrollInset: UIEdgeInsets = lastScrollViewConfiguration.startingScrollIndicatorInsets
+                bottomScrollIndicatorInset = CGFloat.maximum(startingScrollInset.bottom,
+                                                             bottomScrollIndicatorInset)
+
+                bottomInset -= lastScrollView.safeAreaInsets.bottom
+                bottomScrollIndicatorInset -= lastScrollView.safeAreaInsets.bottom
+
+                var movedInsets: UIEdgeInsets = lastScrollView.contentInset
+                movedInsets.bottom = bottomInset
+
+                if lastScrollView.contentInset != movedInsets {
+                    showLog("old ContentInset: \(lastScrollView.contentInset) new ContentInset: \(movedInsets)")
+
+                    activeConfiguration.animate(alongsideTransition: {
+                        lastScrollView.contentInset = movedInsets
+                        lastScrollView.layoutIfNeeded() // (Bug ID: #1996)
+
+                        var newScrollIndicatorInset: UIEdgeInsets = lastScrollView.verticalScrollIndicatorInsets
+
+                        newScrollIndicatorInset.bottom = bottomScrollIndicatorInset
+                        lastScrollView.scrollIndicatorInsets = newScrollIndicatorInset
+                    })
+                }
+            }
+        }
+        // Going ahead. No else if.
+
+        // Special case for UITextView
+        // (Readjusting textView.contentInset when textView hight is too big to fit on screen)
+        // _lastScrollView If not having inside any scrollView, now contentInset manages the full screen textView.
+        // [_textFieldView isKindOfClass:[UITextView class]] If is a UITextView type
+        if isScrollableTextView, let textView = textFieldView as? UIScrollView {
+
+            let keyboardYPosition: CGFloat = window.frame.height - originalKbSize.height
+            var rootSuperViewFrameInWindow: CGRect = window.frame
+            if let rootSuperview: UIView = rootController.view.superview {
+                rootSuperViewFrameInWindow = rootSuperview.convert(rootSuperview.bounds, to: window)
+            }
+
+            let keyboardOverlapping: CGFloat = rootSuperViewFrameInWindow.maxY - keyboardYPosition
+
+            let availableHeight: CGFloat = rootSuperViewFrameInWindow.height-topLayoutGuide-keyboardOverlapping
+            let textViewHeight: CGFloat = CGFloat.minimum(textView.frame.height, availableHeight)
+
+            if textView.frame.size.height-textView.contentInset.bottom>textViewHeight {
+                // If frame is not change by library in past, then saving user textView properties  (Bug ID: #92)
+                if startingTextViewConfiguration == nil {
+                    startingTextViewConfiguration = IQScrollViewConfiguration(scrollView: textView,
+                                                                              canRestoreContentOffset: false)
+                }
+
+                var newContentInset: UIEdgeInsets = textView.contentInset
+                newContentInset.bottom = textView.frame.size.height-textViewHeight
+                newContentInset.bottom -= textView.safeAreaInsets.bottom
+
+                if textView.contentInset != newContentInset {
+                    self.showLog("""
+                                \(textFieldView) Old UITextView.contentInset: \(textView.contentInset)
+                                 New UITextView.contentInset: \(newContentInset)
+                                """)
+
+                    activeConfiguration.animate(alongsideTransition: {
+
+                        textView.contentInset = newContentInset
+                        textView.layoutIfNeeded() // (Bug ID: #1996)
+                        textView.scrollIndicatorInsets = newContentInset
+                    })
+                }
+            }
+        }
+
+        // +Positive or zero.
+        if moveUp >= 0 {
+
+            rootViewOrigin.y = CGFloat.maximum(rootViewOrigin.y - moveUp, CGFloat.minimum(0, -originalKbSize.height))
+
+            if !rootController.view.frame.origin.equalTo(rootViewOrigin) {
+                showLog("Moving Upward")
+
+                activeConfiguration.animate(alongsideTransition: {
+
+                    var rect: CGRect = rootController.view.frame
+                    rect.origin = rootViewOrigin
+                    rootController.view.frame = rect
+
+                    // Animating content if needed (Bug ID: #204)
+                    if self.layoutIfNeededOnUpdate {
+                        // Animating content (Bug ID: #160)
+                        rootController.view.setNeedsLayout()
+                        rootController.view.layoutIfNeeded()
+                    }
+
+                    let classNameString: String = "\(type(of: rootController.self))"
+                    self.showLog("Set \(classNameString) origin to: \(rootViewOrigin)")
+                })
+            }
+
+            movedDistance = (rootConfiguration.beginOrigin.y-rootViewOrigin.y)
+        } else {  //  -Negative
+            let disturbDistance: CGFloat = rootViewOrigin.y-rootConfiguration.beginOrigin.y
+
+            //  disturbDistance Negative = frame disturbed.
+            //  disturbDistance positive = frame not disturbed.
+            if disturbDistance <= 0 {
+
+                rootViewOrigin.y -= CGFloat.maximum(moveUp, disturbDistance)
+
+                if !rootController.view.frame.origin.equalTo(rootViewOrigin) {
+                    showLog("Moving Downward")
+                    //  Setting adjusted rootViewRect
+                    //  Setting adjusted rootViewRect
+
+                    activeConfiguration.animate(alongsideTransition: {
+
+                        var rect: CGRect = rootController.view.frame
+                        rect.origin = rootViewOrigin
+                        rootController.view.frame = rect
+
+                        // Animating content if needed (Bug ID: #204)
+                        if self.layoutIfNeededOnUpdate {
+                            // Animating content (Bug ID: #160)
+                            rootController.view.setNeedsLayout()
+                            rootController.view.layoutIfNeeded()
+                        }
+
+                        let classNameString: String = "\(type(of: rootController.self))"
+                        self.showLog("Set \(classNameString) origin to: \(rootViewOrigin)")
+                    })
+                }
+
+                movedDistance = (rootConfiguration.beginOrigin.y-rootViewOrigin.y)
+            }
+        }
+
+        let elapsedTime: CFTimeInterval = CACurrentMediaTime() - startTime
+        showLog("<<<<< \(#function) ended: \(elapsedTime) seconds <<<<<", indentation: -1)
+    }
+    // swiftlint:enable cyclomatic_complexity
+    // swiftlint:enable function_body_length
+
+    // swiftlint:disable cyclomatic_complexity
+    // swiftlint:disable function_body_length
+    internal func restorePosition() {
+
+        //  Setting rootViewController frame to it's original position. //  (Bug ID: #18)
+        guard let configuration: IQRootControllerConfiguration = activeConfiguration.rootControllerConfiguration else {
+            return
+        }
+        let startTime: CFTimeInterval = CACurrentMediaTime()
+        showLog(">>>>> \(#function) started >>>>>", indentation: 1)
+
+        activeConfiguration.animate(alongsideTransition: {
+            if configuration.hasChanged {
+                let classNameString: String = "\(type(of: configuration.rootController.self))"
+                self.showLog("Restoring \(classNameString) origin to: \(configuration.beginOrigin)")
+            }
+            configuration.restore()
+
+            // Animating content if needed (Bug ID: #204)
+            if self.layoutIfNeededOnUpdate {
+                // Animating content (Bug ID: #160)
+                configuration.rootController.view.setNeedsLayout()
+                configuration.rootController.view.layoutIfNeeded()
+            }
+        })
+
+        // Restoring the contentOffset of the lastScrollView
+        if let lastConfiguration: IQScrollViewConfiguration = lastScrollViewConfiguration {
+            let textFieldView: UIView? = activeConfiguration.textFieldViewInfo?.textFieldView
+
+            activeConfiguration.animate(alongsideTransition: {
+
+                if lastConfiguration.hasChanged {
+                    if lastConfiguration.scrollView.contentInset != lastConfiguration.startingContentInset {
+                        self.showLog("Restoring contentInset to: \(lastConfiguration.startingContentInset)")
+                    }
+
+                    if lastConfiguration.scrollView.iq.restoreContentOffset,
+                       !lastConfiguration.scrollView.contentOffset.equalTo(lastConfiguration.startingContentOffset) {
+                        self.showLog("Restoring contentOffset to: \(lastConfiguration.startingContentOffset)")
+                    }
+
+                    lastConfiguration.restore(for: textFieldView)
+                }
+
+                // This is temporary solution. Have to implement the save and restore scrollView state
+                var superScrollView: UIScrollView? = lastConfiguration.scrollView
+
+                while let scrollView: UIScrollView = superScrollView {
+
+                    let width: CGFloat = CGFloat.maximum(scrollView.contentSize.width, scrollView.frame.width)
+                    let height: CGFloat = CGFloat.maximum(scrollView.contentSize.height, scrollView.frame.height)
+                    let contentSize: CGSize = CGSize(width: width, height: height)
+
+                    let minimumY: CGFloat = contentSize.height - scrollView.frame.height
+
+                    if minimumY < scrollView.contentOffset.y {
+
+                        let newContentOffset: CGPoint = CGPoint(x: scrollView.contentOffset.x, y: minimumY)
+                        if !scrollView.contentOffset.equalTo(newContentOffset) {
+
+                            //  (Bug ID: #1365, #1508, #1541)
+                            let stackView: UIStackView? = textFieldView?.iq.superviewOf(type: UIStackView.self,
+                                                                                        belowView: scrollView)
+
+                            // (Bug ID: #1901, #1996)
+                            let animatedContentOffset: Bool = stackView != nil ||
+                            scrollView is UICollectionView ||
+                            scrollView is UITableView
+
+                            if animatedContentOffset {
+                                scrollView.setContentOffset(newContentOffset, animated: UIView.areAnimationsEnabled)
+                            } else {
+                                scrollView.contentOffset = newContentOffset
+                            }
+
+                            self.showLog("Restoring contentOffset to: \(newContentOffset)")
+                        }
+                    }
+
+                    superScrollView = scrollView.iq.superviewOf(type: UIScrollView.self)
+                }
+            })
+        }
+
+        self.movedDistance = 0
+        let elapsedTime: CFTimeInterval = CACurrentMediaTime() - startTime
+        showLog("<<<<< \(#function) ended: \(elapsedTime) seconds <<<<<", indentation: -1)
+    }
+    // swiftlint:enable cyclomatic_complexity
+    // swiftlint:enable function_body_length
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+Toolbar.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+Toolbar.swift
new file mode 100644 (file)
index 0000000..c6a31a0
--- /dev/null
@@ -0,0 +1,278 @@
+//
+//  IQKeyboardManager+Toolbar.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import UIKit
+
+@available(iOSApplicationExtension, unavailable)
+public extension IQKeyboardManager {
+
+    /**
+    Default tag for toolbar with Done button   -1002.
+    */
+    private static let  kIQDoneButtonToolbarTag         =   -1002
+
+    /**
+    Default tag for toolbar with Previous/Next buttons -1005.
+    */
+    private static let  kIQPreviousNextButtonToolbarTag =   -1005
+
+    // swiftlint:disable function_body_length
+    // swiftlint:disable cyclomatic_complexity
+    /**
+     Add toolbar if it is required to add on textFields and it's siblings.
+     */
+    internal func addToolbarIfRequired() {
+
+        // Either there is no inputAccessoryView or
+        // if accessoryView is not appropriate for current situation
+        // (There is Previous/Next/Done toolbar)
+        guard let siblings: [UIView] = responderViews(), !siblings.isEmpty,
+              let textField: UIView = activeConfiguration.textFieldViewInfo?.textFieldView,
+              textField.responds(to: #selector(setter: UITextField.inputAccessoryView)) else {
+            return
+        }
+
+        if let inputAccessoryView: UIView = textField.inputAccessoryView {
+
+            if inputAccessoryView.tag == IQKeyboardManager.kIQPreviousNextButtonToolbarTag ||
+                inputAccessoryView.tag == IQKeyboardManager.kIQDoneButtonToolbarTag {
+                // continue
+            } else {
+                let swiftUIAccessoryName: String = "InputAccessoryHost<InputAccessoryBar>"
+                let classNameString: String = "\(type(of: inputAccessoryView.classForCoder))"
+
+                // If it's SwiftUI accessory view but doesn't have a height (fake accessory view), then we should
+                // add our own accessoryView otherwise, keep the SwiftUI accessoryView since user has added it from code
+                guard classNameString.hasPrefix(swiftUIAccessoryName), inputAccessoryView.subviews.isEmpty else {
+                    return
+                }
+            }
+        }
+
+        showLog(">>>>> \(#function) started >>>>>", indentation: 1)
+        let startTime: CFTimeInterval = CACurrentMediaTime()
+
+        showLog("Found \(siblings.count) responder sibling(s)")
+
+        let rightConfiguration: IQBarButtonItemConfiguration
+        if let configuration: IQBarButtonItemConfiguration = toolbarConfiguration.doneBarButtonConfiguration {
+            rightConfiguration = configuration
+            rightConfiguration.action = #selector(self.doneAction(_:))
+        } else {
+            rightConfiguration = IQBarButtonItemConfiguration(systemItem: .done, action: #selector(self.doneAction(_:)))
+            rightConfiguration.accessibilityLabel = "Done"
+        }
+
+        let isTableCollectionView: Bool
+        if textField.iq.superviewOf(type: UITableView.self) != nil ||
+            textField.iq.superviewOf(type: UICollectionView.self) != nil {
+            isTableCollectionView = true
+        } else {
+            isTableCollectionView = false
+        }
+
+        let previousNextDisplayMode: IQPreviousNextDisplayMode = toolbarConfiguration.previousNextDisplayMode
+
+        let havePreviousNext: Bool
+        switch previousNextDisplayMode {
+        case .default:
+            // If the textField is part of UITableView/UICollectionView then we should be exposing previous/next too
+            // Because at this time we don't know the previous or next cell if it contains another textField to move.
+            if isTableCollectionView {
+                havePreviousNext = true
+            } else if siblings.count <= 1 {
+                //    If only one object is found, then adding only Done button.
+                havePreviousNext = false
+            } else {
+                havePreviousNext = true
+            }
+        case .alwaysShow:
+            havePreviousNext = true
+        case .alwaysHide:
+            havePreviousNext = false
+        }
+
+        let placeholderConfig: IQToolbarPlaceholderConfiguration = toolbarConfiguration.placeholderConfiguration
+        if havePreviousNext {
+            let prevConfiguration: IQBarButtonItemConfiguration
+            if let configuration: IQBarButtonItemConfiguration = toolbarConfiguration.previousBarButtonConfiguration {
+                configuration.action = #selector(self.previousAction(_:))
+                prevConfiguration = configuration
+            } else {
+                prevConfiguration = IQBarButtonItemConfiguration(image: (UIImage.keyboardPreviousImage),
+                                                                 action: #selector(self.previousAction(_:)))
+                prevConfiguration.accessibilityLabel = "Previous"
+            }
+
+            let nextConfiguration: IQBarButtonItemConfiguration
+            if let configuration: IQBarButtonItemConfiguration = toolbarConfiguration.nextBarButtonConfiguration {
+                configuration.action = #selector(self.nextAction(_:))
+                nextConfiguration = configuration
+            } else {
+                nextConfiguration = IQBarButtonItemConfiguration(image: (UIImage.keyboardNextImage),
+                                                                 action: #selector(self.nextAction(_:)))
+                nextConfiguration.accessibilityLabel = "Next"
+            }
+
+            let titleText: String? = placeholderConfig.showPlaceholder ? textField.iq.drawingPlaceholder : nil
+            textField.iq.addToolbar(target: self,
+                                    previousConfiguration: prevConfiguration,
+                                    nextConfiguration: nextConfiguration,
+                                    rightConfiguration: rightConfiguration, title: titleText,
+                                    titleAccessibilityLabel: placeholderConfig.accessibilityLabel)
+
+            // (Bug ID: #78)
+            textField.inputAccessoryView?.tag = IQKeyboardManager.kIQPreviousNextButtonToolbarTag
+
+            if isTableCollectionView {
+                // (Bug ID: #56)
+                // In case of UITableView, the next/previous buttons should always be enabled.
+                textField.iq.toolbar.previousBarButton.isEnabled = true
+                textField.iq.toolbar.nextBarButton.isEnabled = true
+            } else {
+                // If firstTextField, then previous should not be enabled.
+                textField.iq.toolbar.previousBarButton.isEnabled = (siblings.first != textField)
+                // If lastTextField then next should not be enabled.
+                textField.iq.toolbar.nextBarButton.isEnabled = (siblings.last != textField)
+            }
+
+        } else {
+
+            let titleText: String? = placeholderConfig.showPlaceholder ? textField.iq.drawingPlaceholder : nil
+            textField.iq.addToolbar(target: self, rightConfiguration: rightConfiguration,
+                                    title: titleText,
+                                    titleAccessibilityLabel: placeholderConfig.accessibilityLabel)
+
+            textField.inputAccessoryView?.tag = IQKeyboardManager.kIQDoneButtonToolbarTag //  (Bug ID: #78)
+        }
+
+        let toolbar: IQToolbar = textField.iq.toolbar
+
+        // Setting toolbar tintColor //  (Enhancement ID: #30)
+        if toolbarConfiguration.useTextFieldTintColor {
+            toolbar.tintColor = textField.tintColor
+        } else {
+            toolbar.tintColor = toolbarConfiguration.tintColor
+        }
+
+        //  Setting toolbar to keyboard.
+        if let textFieldView: any UITextInput = textField as? (any UITextInput) {
+
+            // Bar style according to keyboard appearance
+            switch textFieldView.keyboardAppearance {
+
+            case .dark?:
+                toolbar.barStyle = .black
+                toolbar.barTintColor = nil
+            default:
+                toolbar.barStyle = .default
+                toolbar.barTintColor = toolbarConfiguration.barTintColor
+            }
+        }
+
+        // Setting toolbar title font.   //  (Enhancement ID: #30)
+        if toolbarConfiguration.placeholderConfiguration.showPlaceholder,
+            !textField.iq.hidePlaceholder {
+
+            // Updating placeholder font to toolbar.     //(Bug ID: #148, #272)
+            if toolbar.titleBarButton.title == nil ||
+                toolbar.titleBarButton.title != textField.iq.drawingPlaceholder {
+                toolbar.titleBarButton.title = textField.iq.drawingPlaceholder
+            }
+
+            // Setting toolbar title font.   //  (Enhancement ID: #30)
+            toolbar.titleBarButton.titleFont = toolbarConfiguration.placeholderConfiguration.font
+
+            // Setting toolbar title color.   //  (Enhancement ID: #880)
+            toolbar.titleBarButton.titleColor = toolbarConfiguration.placeholderConfiguration.color
+
+            // Setting toolbar button title color.   //  (Enhancement ID: #880)
+            toolbar.titleBarButton.selectableTitleColor = toolbarConfiguration.placeholderConfiguration.buttonColor
+
+        } else {
+            toolbar.titleBarButton.title = nil
+        }
+
+        // In case of UITableView (Special), the next/previous buttons has to be refreshed every-time.    (Bug ID: #56)
+
+        // If firstTextField, then previous should not be enabled.
+        textField.iq.toolbar.previousBarButton.isEnabled = (siblings.first != textField)
+
+        // If lastTextField then next should not be enabled.
+        textField.iq.toolbar.nextBarButton.isEnabled = (siblings.last != textField)
+
+        let elapsedTime: CFTimeInterval = CACurrentMediaTime() - startTime
+        showLog("<<<<< \(#function) ended: \(elapsedTime) seconds <<<<<", indentation: -1)
+    }
+    // swiftlint:enable function_body_length
+    // swiftlint:enable cyclomatic_complexity
+
+    /** Remove any toolbar if it is IQToolbar. */
+    internal func removeToolbarIfRequired() {    //  (Bug ID: #18)
+
+        guard let siblings: [UIView] = responderViews(), !siblings.isEmpty else {
+            return
+        }
+
+        showLog(">>>>> \(#function) started >>>>>", indentation: 1)
+        let startTime: CFTimeInterval = CACurrentMediaTime()
+
+        showLog("Found \(siblings.count) responder sibling(s)")
+
+        for view in siblings {
+            removeToolbarIfRequired(of: view)
+        }
+
+        let elapsedTime: CFTimeInterval = CACurrentMediaTime() - startTime
+        showLog("<<<<< \(#function) ended: \(elapsedTime) seconds <<<<<", indentation: -1)
+    }
+
+    /** Remove any toolbar if it is IQToolbar. */
+    internal func removeToolbarIfRequired(of view: UIView) {    //  (Bug ID: #18)
+
+        guard view.responds(to: #selector(setter: UITextField.inputAccessoryView)),
+              let toolbar: IQToolbar = view.inputAccessoryView as? IQToolbar,
+              toolbar.tag == IQKeyboardManager.kIQPreviousNextButtonToolbarTag ||
+                toolbar.tag == IQKeyboardManager.kIQDoneButtonToolbarTag else {
+            return
+        }
+
+        // setInputAccessoryView: check   (Bug ID: #307)
+        if let textField: UITextField = view as? UITextField {
+            textField.inputAccessoryView = nil
+        } else if let textView: UITextView = view as? UITextView {
+            textView.inputAccessoryView = nil
+        }
+    }
+
+    /**    reloadInputViews to reload toolbar buttons enable/disable state on the fly Enhancement ID #434. */
+    @objc func reloadInputViews() {
+
+        // If enabled then adding toolbar.
+        if privateIsEnableAutoToolbar() {
+            self.addToolbarIfRequired()
+        } else {
+            self.removeToolbarIfRequired()
+        }
+    }
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+ToolbarActions.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+ToolbarActions.swift
new file mode 100644 (file)
index 0000000..5b01190
--- /dev/null
@@ -0,0 +1,205 @@
+//
+//  IQKeyboardManager+ToolbarActions.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import UIKit
+
+// MARK: Previous next button actions
+@available(iOSApplicationExtension, unavailable)
+public extension IQKeyboardManager {
+
+    /**
+    Returns YES if can navigate to previous responder textField/textView, otherwise NO.
+    */
+    @objc var canGoPrevious: Bool {
+        // If it is not first textField. then it's previous object canBecomeFirstResponder.
+        guard let textFields: [UIView] = responderViews(),
+              let textFieldRetain: UIView = activeConfiguration.textFieldViewInfo?.textFieldView,
+              let index: Int = textFields.firstIndex(of: textFieldRetain),
+              index > 0 else {
+            return false
+        }
+        return true
+    }
+
+    /**
+    Returns YES if can navigate to next responder textField/textView, otherwise NO.
+    */
+    @objc var canGoNext: Bool {
+        // If it is not first textField. then it's previous object canBecomeFirstResponder.
+        guard let textFields: [UIView] = responderViews(),
+              let textFieldRetain: UIView = activeConfiguration.textFieldViewInfo?.textFieldView,
+              let index: Int = textFields.firstIndex(of: textFieldRetain),
+                index < textFields.count-1 else {
+            return false
+        }
+        return true
+    }
+
+    /**
+    Navigate to previous responder textField/textView.
+    */
+    @discardableResult
+    @objc func goPrevious() -> Bool {
+
+        // If it is not first textField. then it's previous object becomeFirstResponder.
+        guard let textFields: [UIView] = responderViews(),
+              let textFieldRetain: UIView = activeConfiguration.textFieldViewInfo?.textFieldView,
+              let index: Int = textFields.firstIndex(of: textFieldRetain),
+              index > 0 else {
+            return false
+        }
+
+        let nextTextField: UIView = textFields[index-1]
+
+        let isAcceptAsFirstResponder: Bool = nextTextField.becomeFirstResponder()
+
+        //  If it refuses then becoming previous textFieldView as first responder again.    (Bug ID: #96)
+        if !isAcceptAsFirstResponder {
+            showLog("Refuses to become first responder: \(nextTextField)")
+        }
+
+        return isAcceptAsFirstResponder
+    }
+
+    /**
+    Navigate to next responder textField/textView.
+    */
+    @discardableResult
+    @objc func goNext() -> Bool {
+
+        // If it is not first textField. then it's previous object becomeFirstResponder.
+        guard let textFields: [UIView] = responderViews(),
+              let textFieldRetain: UIView = activeConfiguration.textFieldViewInfo?.textFieldView,
+              let index: Int = textFields.firstIndex(of: textFieldRetain),
+                index < textFields.count-1 else {
+            return false
+        }
+
+        let nextTextField: UIView = textFields[index+1]
+
+        let isAcceptAsFirstResponder: Bool = nextTextField.becomeFirstResponder()
+
+        //  If it refuses then becoming previous textFieldView as first responder again.    (Bug ID: #96)
+        if !isAcceptAsFirstResponder {
+            showLog("Refuses to become first responder: \(nextTextField)")
+        }
+
+        return isAcceptAsFirstResponder
+    }
+
+    /**    previousAction. */
+    @objc internal func previousAction (_ barButton: IQBarButtonItem) {
+
+        // If user wants to play input Click sound.
+        if playInputClicks {
+            // Play Input Click Sound.
+            UIDevice.current.playInputClick()
+        }
+
+        guard canGoPrevious,
+              let textFieldRetain: UIView = activeConfiguration.textFieldViewInfo?.textFieldView else {
+            return
+        }
+
+        let isAcceptAsFirstResponder: Bool = goPrevious()
+
+        var invocation: IQInvocation? = barButton.invocation
+        var sender: UIView = textFieldRetain
+
+        // Handling search bar special case
+        do {
+            if let searchBar: UIView = textFieldRetain.iq.textFieldSearchBar() {
+                invocation = searchBar.iq.toolbar.previousBarButton.invocation
+                sender = searchBar
+            }
+        }
+
+        if isAcceptAsFirstResponder {
+            invocation?.invoke(from: sender)
+        }
+    }
+
+    /**    nextAction. */
+    @objc internal func nextAction (_ barButton: IQBarButtonItem) {
+
+        // If user wants to play input Click sound.
+        if playInputClicks {
+            // Play Input Click Sound.
+            UIDevice.current.playInputClick()
+        }
+
+        guard canGoNext,
+              let textFieldRetain: UIView = activeConfiguration.textFieldViewInfo?.textFieldView else {
+            return
+        }
+
+        let isAcceptAsFirstResponder: Bool = goNext()
+
+        var invocation: IQInvocation? = barButton.invocation
+        var sender: UIView = textFieldRetain
+
+        // Handling search bar special case
+        do {
+            if let searchBar: UIView = textFieldRetain.iq.textFieldSearchBar() {
+                invocation = searchBar.iq.toolbar.nextBarButton.invocation
+                sender = searchBar
+            }
+        }
+
+        if isAcceptAsFirstResponder {
+            invocation?.invoke(from: sender)
+        }
+    }
+
+    /**    doneAction. Resigning current textField. */
+    @objc internal func doneAction (_ barButton: IQBarButtonItem) {
+
+        // If user wants to play input Click sound.
+        if playInputClicks {
+            // Play Input Click Sound.
+            UIDevice.current.playInputClick()
+        }
+
+        guard let textFieldRetain: UIView = activeConfiguration.textFieldViewInfo?.textFieldView else {
+            return
+        }
+
+        // Resign textFieldView.
+        let isResignedFirstResponder: Bool = resignFirstResponder()
+
+        var invocation: IQInvocation? = barButton.invocation
+        var sender: UIView = textFieldRetain
+
+        // Handling search bar special case
+        do {
+            if let searchBar: UIView = textFieldRetain.iq.textFieldSearchBar() {
+                invocation = searchBar.iq.toolbar.doneBarButton.invocation
+                sender = searchBar
+            }
+        }
+
+        if isResignedFirstResponder {
+            invocation?.invoke(from: sender)
+        }
+    }
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+UIKeyboardNotification.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+UIKeyboardNotification.swift
new file mode 100644 (file)
index 0000000..a562dbb
--- /dev/null
@@ -0,0 +1,148 @@
+//
+//  IQKeyboardManager+UIKeyboardNotification.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import UIKit
+
+// MARK: UIKeyboard Notifications
+@available(iOSApplicationExtension, unavailable)
+internal extension IQKeyboardManager {
+
+    func handleKeyboardTextFieldViewVisible() {
+        if self.activeConfiguration.rootControllerConfiguration == nil {    //  (Bug ID: #5)
+
+            let rootConfiguration: IQRootControllerConfiguration? = self.activeConfiguration.rootControllerConfiguration
+            if let gestureConfiguration = self.rootConfigurationWhilePopGestureActive,
+               gestureConfiguration.rootController == rootConfiguration?.rootController {
+                self.activeConfiguration.rootControllerConfiguration = gestureConfiguration
+            }
+
+            self.rootConfigurationWhilePopGestureActive = nil
+
+            if let configuration = self.activeConfiguration.rootControllerConfiguration {
+                let classNameString: String = "\(type(of: configuration.rootController.self))"
+                self.showLog("Saving \(classNameString) beginning origin: \(configuration.beginOrigin)")
+            }
+        }
+
+        setupTextFieldView()
+
+        if !privateIsEnabled() {
+            restorePosition()
+        } else {
+            adjustPosition()
+        }
+    }
+
+    func handleKeyboardTextFieldViewChanged() {
+
+        setupTextFieldView()
+
+        if !privateIsEnabled() {
+            restorePosition()
+        } else {
+            adjustPosition()
+        }
+    }
+
+    func handleKeyboardTextFieldViewHide() {
+
+        self.restorePosition()
+        self.banishTextFieldViewSetup()
+
+        if let configuration = self.activeConfiguration.rootControllerConfiguration,
+           configuration.rootController.navigationController?.interactivePopGestureRecognizer?.state == .began {
+            self.rootConfigurationWhilePopGestureActive = configuration
+        }
+
+        self.lastScrollViewConfiguration = nil
+    }
+}
+
+@available(iOSApplicationExtension, unavailable)
+internal extension IQKeyboardManager {
+
+    func setupTextFieldView() {
+
+        guard let textFieldView = activeConfiguration.textFieldViewInfo?.textFieldView else {
+            return
+        }
+
+        do {
+            if let startingConfiguration = startingTextViewConfiguration,
+               startingConfiguration.hasChanged {
+
+                if startingConfiguration.scrollView.contentInset != startingConfiguration.startingContentInset {
+                    showLog("Restoring textView.contentInset to: \(startingConfiguration.startingContentInset)")
+                }
+
+                activeConfiguration.animate(alongsideTransition: {
+                    startingConfiguration.restore(for: textFieldView)
+                })
+            }
+            startingTextViewConfiguration = nil
+        }
+
+        if keyboardConfiguration.overrideAppearance,
+           let textInput: any UITextInput = textFieldView as? (any UITextInput),
+            textInput.keyboardAppearance != keyboardConfiguration.appearance {
+            // Setting textField keyboard appearance and reloading inputViews.
+            if let textFieldView: UITextField = textFieldView as? UITextField {
+                textFieldView.keyboardAppearance = keyboardConfiguration.appearance
+            } else if  let textFieldView: UITextView = textFieldView as? UITextView {
+                textFieldView.keyboardAppearance = keyboardConfiguration.appearance
+            }
+            textFieldView.reloadInputViews()
+        }
+
+        // If autoToolbar enable, then add toolbar on all the UITextField/UITextView's if required.
+        reloadInputViews()
+
+        resignFirstResponderGesture.isEnabled = privateResignOnTouchOutside()
+        textFieldView.window?.addGestureRecognizer(resignFirstResponderGesture)    //   (Enhancement ID: #14)
+    }
+
+    func banishTextFieldViewSetup() {
+
+        guard let textFieldView = activeConfiguration.textFieldViewInfo?.textFieldView else {
+            return
+        }
+
+        // Removing gesture recognizer   (Enhancement ID: #14)
+        textFieldView.window?.removeGestureRecognizer(resignFirstResponderGesture)
+        removeToolbarIfRequired()
+        do {
+            if let startingConfiguration = startingTextViewConfiguration,
+               startingConfiguration.hasChanged {
+
+                if startingConfiguration.scrollView.contentInset != startingConfiguration.startingContentInset {
+                    showLog("Restoring textView.contentInset to: \(startingConfiguration.startingContentInset)")
+                }
+
+                activeConfiguration.animate(alongsideTransition: {
+                    startingConfiguration.restore(for: textFieldView)
+                })
+            }
+            startingTextViewConfiguration = nil
+        }
+    }
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+UITextFieldViewNotification.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+UITextFieldViewNotification.swift
new file mode 100644 (file)
index 0000000..676a8bc
--- /dev/null
@@ -0,0 +1,46 @@
+//
+//  IQKeyboardManager+UITextFieldViewNotification.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import UIKit
+
+// MARK: UITextField/UITextView Notifications
+@available(iOSApplicationExtension, unavailable)
+@MainActor
+internal extension IQKeyboardManager {
+
+    @MainActor
+    private struct AssociatedKeys {
+        static var rootConfigWhilePopActive: Int = 0
+    }
+
+    var rootConfigurationWhilePopGestureActive: IQRootControllerConfiguration? {
+        get {
+            return objc_getAssociatedObject(self,
+                                            &AssociatedKeys.rootConfigWhilePopActive) as? IQRootControllerConfiguration
+        }
+        set(newValue) {
+            objc_setAssociatedObject(self, &AssociatedKeys.rootConfigWhilePopActive,
+                                     newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
+        }
+    }
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager.swift
new file mode 100644 (file)
index 0000000..a22cd91
--- /dev/null
@@ -0,0 +1,332 @@
+//
+//  IQKeyboardManager.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import UIKit
+import CoreGraphics
+import QuartzCore
+
+// MARK: IQToolbar tags
+
+// swiftlint:disable line_length
+// A generic version of KeyboardManagement. (OLD DOCUMENTATION) LINK
+// https://developer.apple.com/library/ios/documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html
+// https://developer.apple.com/documentation/uikit/keyboards_and_input/adjusting_your_layout_with_keyboard_layout_guide
+// swiftlint:enable line_length
+
+/**
+Code-less drop-in universal library allows to prevent issues of keyboard sliding up and cover UITextField/UITextView.
+ Neither need to write any code nor any setup required and much more.
+*/
+@available(iOSApplicationExtension, unavailable)
+@MainActor
+@objc public final class IQKeyboardManager: NSObject {
+
+    /**
+    Returns the default singleton instance.
+    */
+    @MainActor
+    @objc public static let shared: IQKeyboardManager = .init()
+
+    // MARK: UIKeyboard handling
+
+    /**
+    Enable/disable managing distance between keyboard and textField.
+     Default is YES(Enabled when class loads in `+(void)load` method).
+    */
+    @objc public var enable: Bool = false {
+
+        didSet {
+            // If not enable, enable it.
+            if enable, !oldValue {
+                // If keyboard is currently showing.
+                if activeConfiguration.keyboardInfo.keyboardShowing {
+                    adjustPosition()
+                } else {
+                    restorePosition()
+                }
+                showLog("Enabled")
+            } else if !enable, oldValue {   // If not disable, disable it.
+                restorePosition()
+                showLog("Disabled")
+            }
+        }
+    }
+
+    /**
+    To set keyboard distance from textField. can't be less than zero. Default is 10.0.
+    */
+    @objc public var keyboardDistanceFromTextField: CGFloat = 10.0
+
+    // MARK: IQToolbar handling
+
+    /**
+    Automatic add the IQToolbar functionality. Default is YES.
+    */
+    @objc public var enableAutoToolbar: Bool = true {
+        didSet {
+            reloadInputViews()
+            showLog("enableAutoToolbar: \(enableAutoToolbar ? "Yes" : "NO")")
+        }
+    }
+
+    internal var activeConfiguration: IQActiveConfiguration = .init()
+
+    /**
+    Configurations related to the toolbar display over the keyboard.
+    */
+    @objc public let toolbarConfiguration: IQToolbarConfiguration = .init()
+
+    /**
+    Configuration related to keyboard appearance
+    */
+    @objc public let keyboardConfiguration: IQKeyboardConfiguration = .init()
+
+    // MARK: UITextField/UITextView Next/Previous/Resign handling
+
+    /**
+    Resigns Keyboard on touching outside of UITextField/View. Default is NO.
+    */
+    @objc public var resignOnTouchOutside: Bool = false {
+
+        didSet {
+            resignFirstResponderGesture.isEnabled = privateResignOnTouchOutside()
+
+            showLog("resignOnTouchOutside: \(resignOnTouchOutside ? "Yes" : "NO")")
+        }
+    }
+
+    /** TapGesture to resign keyboard on view's touch.
+     It's a readonly property and exposed only for adding/removing dependencies
+     if your added gesture does have collision with this one
+     */
+    @objc public lazy var resignFirstResponderGesture: UITapGestureRecognizer = {
+
+        let tapGesture = UITapGestureRecognizer(target: self, action: #selector(self.tapRecognized(_:)))
+        tapGesture.cancelsTouchesInView = false
+        tapGesture.delegate = self
+
+        return tapGesture
+    }()
+
+    /*******************************************/
+
+    /**
+    Resigns currently first responder field.
+    */
+    @discardableResult
+    @objc public func resignFirstResponder() -> Bool {
+
+        guard let textFieldRetain: UIView = activeConfiguration.textFieldViewInfo?.textFieldView else {
+            return false
+        }
+
+        // Resigning first responder
+        guard textFieldRetain.resignFirstResponder() else {
+            showLog("Refuses to resign first responder: \(textFieldRetain)")
+            //  If it refuses then becoming it as first responder again.    (Bug ID: #96)
+            // If it refuses to resign then becoming it first responder again for getting notifications callback.
+            textFieldRetain.becomeFirstResponder()
+            return false
+        }
+        return true
+    }
+
+    // MARK: UISound handling
+
+    /**
+    If YES, then it plays inputClick sound on next/previous/done click.
+    */
+    @objc public var playInputClicks: Bool = true
+
+    // MARK: UIAnimation handling
+
+    /**
+    If YES, then calls 'setNeedsLayout' and 'layoutIfNeeded' on any frame update of to viewController's view.
+    */
+    @objc public var layoutIfNeededOnUpdate: Bool = false
+
+    // MARK: Class Level disabling methods
+
+    /**
+     Disable distance handling within the scope of disabled distance handling viewControllers classes.
+     Within this scope, 'enabled' property is ignored. Class should be kind of UIViewController.
+     */
+    @objc public var disabledDistanceHandlingClasses: [UIViewController.Type] = []
+
+    /**
+     Enable distance handling within the scope of enabled distance handling viewControllers classes.
+     Within this scope, 'enabled' property is ignored. Class should be kind of UIViewController.
+     If same Class is added in disabledDistanceHandlingClasses list,
+     then enabledDistanceHandlingClasses will be ignored.
+     */
+    @objc public var enabledDistanceHandlingClasses: [UIViewController.Type] = []
+
+    /**
+     Disable automatic toolbar creation within the scope of disabled toolbar viewControllers classes.
+     Within this scope, 'enableAutoToolbar' property is ignored. Class should be kind of UIViewController.
+     */
+    @objc public var disabledToolbarClasses: [UIViewController.Type] = []
+
+    /**
+     Enable automatic toolbar creation within the scope of enabled toolbar viewControllers classes.
+     Within this scope, 'enableAutoToolbar' property is ignored. Class should be kind of UIViewController.
+     If same Class is added in disabledToolbarClasses list, then enabledToolbarClasses will be ignore.
+     */
+    @objc public var enabledToolbarClasses: [UIViewController.Type] = []
+
+    /**
+     Allowed subclasses of UIView to add all inner textField,
+     this will allow to navigate between textField contains in different superview.
+     Class should be kind of UIView.
+     */
+    @objc public var toolbarPreviousNextAllowedClasses: [UIView.Type] = []
+
+    /**
+     Disabled classes to ignore resignOnTouchOutside' property, Class should be kind of UIViewController.
+     */
+    @objc public var disabledTouchResignedClasses: [UIViewController.Type] = []
+
+    /**
+     Enabled classes to forcefully enable 'resignOnTouchOutside' property.
+     Class should be kind of UIViewController
+     . If same Class is added in disabledTouchResignedClasses list, then enabledTouchResignedClasses will be ignored.
+     */
+    @objc public var enabledTouchResignedClasses: [UIViewController.Type] = []
+
+    /**
+     if resignOnTouchOutside is enabled then you can customize the behavior
+     to not recognize gesture touches on some specific view subclasses.
+     Class should be kind of UIView. Default is [UIControl, UINavigationBar]
+     */
+    @objc public var touchResignedGestureIgnoreClasses: [UIView.Type] = []
+
+    // MARK: Third Party Library support
+    /// Add TextField/TextView Notifications customized Notifications.
+    /// For example while using YYTextView https://github.com/ibireme/YYText
+
+   /**************************************************************************************/
+
+    // MARK: Initialization/De-initialization
+
+    /*  Singleton Object Initialization. */
+    override init() {
+
+        super.init()
+
+        self.addActiveConfigurationObserver()
+
+        // Creating gesture for resignOnTouchOutside. (Enhancement ID: #14)
+        resignFirstResponderGesture.isEnabled = resignOnTouchOutside
+
+        disabledDistanceHandlingClasses.append(UITableViewController.self)
+        disabledDistanceHandlingClasses.append(UIInputViewController.self)
+        disabledDistanceHandlingClasses.append(UIAlertController.self)
+
+        disabledToolbarClasses.append(UIAlertController.self)
+        disabledToolbarClasses.append(UIInputViewController.self)
+
+        disabledTouchResignedClasses.append(UIAlertController.self)
+        disabledTouchResignedClasses.append(UIInputViewController.self)
+
+        toolbarPreviousNextAllowedClasses.append(UITableView.self)
+        toolbarPreviousNextAllowedClasses.append(UICollectionView.self)
+        toolbarPreviousNextAllowedClasses.append(IQPreviousNextView.self)
+
+        touchResignedGestureIgnoreClasses.append(UIControl.self)
+        touchResignedGestureIgnoreClasses.append(UINavigationBar.self)
+
+        NotificationCenter.default.addObserver(self, selector: #selector(applicationDidBecomeActive(_:)),
+                                               name: UIApplication.didBecomeActiveNotification, object: nil)
+
+        // (Bug ID: #550)
+        // Loading IQToolbar, IQTitleBarButtonItem, IQBarButtonItem to fix first time keyboard appearance delay
+        // If you experience exception breakpoint issue at below line then try these solutions
+        // https://stackoverflow.com/questions/27375640/all-exception-break-point-is-stopping-for-no-reason-on-simulator
+        DispatchQueue.main.async {
+            let textField: UIView = UITextField()
+            textField.iq.addDone(target: nil, action: #selector(self.doneAction(_:)))
+            textField.iq.addPreviousNextDone(target: nil, previousAction: #selector(self.previousAction(_:)),
+                                             nextAction: #selector(self.nextAction(_:)),
+                                             doneAction: #selector(self.doneAction(_:)))
+        }
+    }
+
+    deinit {
+        //  Disable the keyboard manager.
+        enable = false
+    }
+
+    // MARK: Public Methods
+
+    /*  Refreshes textField/textView position if any external changes is explicitly made by user.   */
+    @objc public func reloadLayoutIfNeeded() {
+
+        guard privateIsEnabled(),
+              activeConfiguration.keyboardInfo.keyboardShowing,
+              activeConfiguration.isReady else {
+                return
+        }
+        adjustPosition()
+    }
+}
+
+@available(iOSApplicationExtension, unavailable)
+extension IQKeyboardManager: UIGestureRecognizerDelegate {
+
+    /** Resigning on tap gesture.   (Enhancement ID: #14)*/
+    @objc private func tapRecognized(_ gesture: UITapGestureRecognizer) {
+
+        if gesture.state == .ended {
+
+            // Resigning currently responder textField.
+            resignFirstResponder()
+        }
+    }
+
+    /** Note: returning YES is guaranteed to allow simultaneous recognition.
+     returning NO is not guaranteed to prevent simultaneous recognition,
+     as the other gesture's delegate may return YES.
+     */
+    @objc public func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer,
+                                        shouldRecognizeSimultaneouslyWith
+                                        otherGestureRecognizer: UIGestureRecognizer) -> Bool {
+        return false
+    }
+
+    /**
+     To not detect touch events in a subclass of UIControl,
+     these may have added their own selector for specific work
+     */
+    @objc public func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer,
+                                        shouldReceive touch: UITouch) -> Bool {
+        // (Bug ID: #145)
+        // Should not recognize gesture if the clicked view is either UIControl or UINavigationBar(<Back button etc...)
+
+        for ignoreClass in touchResignedGestureIgnoreClasses where touch.view?.isKind(of: ignoreClass) ?? false {
+            return false
+        }
+
+        return true
+    }
+
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQKeyboardManagerCompatible/IQKeyboardManagerCompatible.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQKeyboardManagerCompatible/IQKeyboardManagerCompatible.swift
new file mode 100644 (file)
index 0000000..ade61ad
--- /dev/null
@@ -0,0 +1,61 @@
+//
+//  IQKeyboardManagerCompatible.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import Foundation
+
+/// Wrapper for IQKeyboardManager compatible types. This type provides an extension point for
+/// convenience methods in IQKeyboardManager.
+@available(iOSApplicationExtension, unavailable)
+public struct IQKeyboardManagerWrapper<Base: AnyObject> {
+    public private(set) weak var base: Base?
+    public init(_ base: Base) {
+        self.base = base
+    }
+}
+
+// swiftlint:disable identifier_name
+/// Represents an object type that is compatible with IQKeyboardManager. You can use `iq` property to get a
+/// value in the namespace of IQKeyboardManager.
+@available(iOSApplicationExtension, unavailable)
+public protocol IQKeyboardManagerCompatible {
+    /// Type being extended.
+    associatedtype Base: AnyObject
+
+    /// Instance IQKeyboardManager extension point.
+    @MainActor
+    var iq: IQKeyboardManagerWrapper<Base> { get set }
+}
+
+// swiftlint:disable unused_setter_value
+@available(iOSApplicationExtension, unavailable)
+public extension IQKeyboardManagerCompatible where Self: AnyObject {
+
+    /// Instance IQKeyboardManager extension point.
+    @MainActor
+    var iq: IQKeyboardManagerWrapper<Self> {
+        get { IQKeyboardManagerWrapper(self) }
+        set {}
+    }
+}
+// swiftlint:enable unused_setter_value
+// swiftlint:enable identifier_name
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQTextView/IQPlaceholderable.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQTextView/IQPlaceholderable.swift
new file mode 100644 (file)
index 0000000..e8f7188
--- /dev/null
@@ -0,0 +1,39 @@
+//
+//  IQPlaceholderable.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import Foundation
+import UIKit
+
+@available(iOSApplicationExtension, unavailable)
+@MainActor
+public protocol IQPlaceholderable: AnyObject {
+
+    var placeholder: String? { get set }
+    var attributedPlaceholder: NSAttributedString? { get set }
+}
+
+@available(iOSApplicationExtension, unavailable)
+extension UITextField: IQPlaceholderable { }
+
+@available(iOSApplicationExtension, unavailable)
+extension IQTextView: IQPlaceholderable { }
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQTextView/IQTextView.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQTextView/IQTextView.swift
new file mode 100644 (file)
index 0000000..3e07645
--- /dev/null
@@ -0,0 +1,208 @@
+//
+//  IQTextView.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import UIKit
+
+/** @abstract UITextView with placeholder support   */
+@available(iOSApplicationExtension, unavailable)
+@MainActor
+@objc open class IQTextView: UITextView {
+
+    @objc required public init?(coder aDecoder: NSCoder) {
+        super.init(coder: aDecoder)
+        NotificationCenter.default.addObserver(self, selector: #selector(self.refreshPlaceholder),
+                                               name: UITextView.textDidChangeNotification, object: self)
+    }
+
+    @objc override public init(frame: CGRect, textContainer: NSTextContainer?) {
+        super.init(frame: frame, textContainer: textContainer)
+        NotificationCenter.default.addObserver(self, selector: #selector(self.refreshPlaceholder),
+                                               name: UITextView.textDidChangeNotification, object: self)
+    }
+
+    @objc override open func awakeFromNib() {
+        super.awakeFromNib()
+        NotificationCenter.default.addObserver(self, selector: #selector(self.refreshPlaceholder),
+                                               name: UITextView.textDidChangeNotification, object: self)
+    }
+
+    private var placeholderInsets: UIEdgeInsets {
+        let top: CGFloat = self.textContainerInset.top
+        let left: CGFloat = self.textContainerInset.left + self.textContainer.lineFragmentPadding
+        let bottom: CGFloat = self.textContainerInset.bottom
+        let right: CGFloat = self.textContainerInset.right + self.textContainer.lineFragmentPadding
+        return UIEdgeInsets(top: top, left: left, bottom: bottom, right: right)
+    }
+
+    private var placeholderExpectedFrame: CGRect {
+        let insets: UIEdgeInsets = self.placeholderInsets
+        let maxWidth: CGFloat = self.frame.width-insets.left-insets.right
+        let size: CGSize = CGSize(width: maxWidth, height: self.frame.height-insets.top-insets.bottom)
+        let expectedSize: CGSize = placeholderLabel.sizeThatFits(size)
+
+        return CGRect(x: insets.left, y: insets.top, width: maxWidth, height: expectedSize.height)
+    }
+
+    lazy var placeholderLabel: UILabel = {
+        let label = UILabel()
+
+        label.autoresizingMask = [.flexibleWidth, .flexibleHeight]
+        label.lineBreakMode = .byWordWrapping
+        label.numberOfLines = 0
+        label.font = self.font
+        label.textAlignment = self.textAlignment
+        label.backgroundColor = UIColor.clear
+        label.isAccessibilityElement = false
+        label.textColor = UIColor.placeholderText
+        label.alpha = 0
+        self.addSubview(label)
+
+        return label
+    }()
+
+    /** @abstract To set textView's placeholder text color. */
+    @IBInspectable open var placeholderTextColor: UIColor? {
+
+        get {
+            return placeholderLabel.textColor
+        }
+
+        set {
+            placeholderLabel.textColor = newValue
+        }
+    }
+
+    /** @abstract To set textView's placeholder text. Default is nil.    */
+    @IBInspectable open var placeholder: String? {
+
+        get {
+            return placeholderLabel.text
+        }
+
+        set {
+            placeholderLabel.text = newValue
+            refreshPlaceholder()
+        }
+    }
+
+    /** @abstract To set textView's placeholder attributed text. Default is nil.    */
+    open var attributedPlaceholder: NSAttributedString? {
+        get {
+            return placeholderLabel.attributedText
+        }
+
+        set {
+            placeholderLabel.attributedText = newValue
+            refreshPlaceholder()
+        }
+    }
+
+    @objc override open func layoutSubviews() {
+        super.layoutSubviews()
+
+        placeholderLabel.frame = placeholderExpectedFrame
+    }
+
+    @objc private func refreshPlaceholder() {
+
+        let text: String = text ?? attributedText?.string ?? ""
+        if text.isEmpty {
+            placeholderLabel.alpha = 1
+        } else {
+            placeholderLabel.alpha = 0
+        }
+    }
+
+    @objc override open var text: String! {
+
+        didSet {
+            refreshPlaceholder()
+        }
+    }
+
+    open override var attributedText: NSAttributedString! {
+
+        didSet {
+            refreshPlaceholder()
+        }
+    }
+
+    @objc override open var font: UIFont? {
+
+        didSet {
+
+            if let unwrappedFont: UIFont = font {
+                placeholderLabel.font = unwrappedFont
+            } else {
+                placeholderLabel.font = UIFont.systemFont(ofSize: 12)
+            }
+        }
+    }
+
+    @objc override open var textAlignment: NSTextAlignment {
+        didSet {
+            placeholderLabel.textAlignment = textAlignment
+        }
+    }
+
+    @objc override weak open var delegate: (any UITextViewDelegate)? {
+
+        get {
+            refreshPlaceholder()
+            return super.delegate
+        }
+
+        set {
+            super.delegate = newValue
+        }
+    }
+
+    @objc override open var intrinsicContentSize: CGSize {
+        guard !hasText else {
+            return super.intrinsicContentSize
+        }
+
+        var newSize: CGSize = super.intrinsicContentSize
+        let placeholderInsets: UIEdgeInsets = self.placeholderInsets
+        newSize.height = placeholderExpectedFrame.height + placeholderInsets.top + placeholderInsets.bottom
+
+        return newSize
+    }
+
+    @objc override open func caretRect(for position: UITextPosition) -> CGRect {
+        var originalRect = super.caretRect(for: position)
+
+        // When placeholder is visible and text alignment is centered
+        if placeholderLabel.alpha == 1 && self.textAlignment == .center {
+            // Calculate the width of the placeholder text
+            let font = placeholderLabel.font ?? UIFont.systemFont(ofSize: UIFont.systemFontSize)
+            let textSize = placeholderLabel.text?.size(withAttributes: [.font: font]) ?? .zero
+            // Calculate the starting x position of the centered placeholder text
+            let centeredTextX = (self.bounds.size.width - textSize.width) / 2
+            // Update the caret position to match the starting x position of the centered text
+            originalRect.origin.x = centeredTextX
+        }
+
+        return originalRect
+    }
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQBarButtonItem.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQBarButtonItem.swift
new file mode 100644 (file)
index 0000000..52af9cc
--- /dev/null
@@ -0,0 +1,120 @@
+//
+//  IQBarButtonItem.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import UIKit
+
+@available(iOSApplicationExtension, unavailable)
+@MainActor
+@objc open class IQBarButtonItem: UIBarButtonItem {
+
+    internal static let flexibleBarButtonItem: IQBarButtonItem = IQBarButtonItem(barButtonSystemItem: .flexibleSpace,
+                                                                                 target: nil, action: nil)
+
+    @objc public override init() {
+        super.init()
+        initialize()
+    }
+
+    @objc public required init?(coder aDecoder: NSCoder) {
+        super.init(coder: aDecoder)
+        initialize()
+    }
+
+    private func initialize() {
+
+        let states: [UIControl.State] = [.normal, .highlighted, .disabled, .focused]
+
+        for state in states {
+
+            setBackgroundImage(UIImage(), for: state, barMetrics: .default)
+            setBackgroundImage(UIImage(), for: state, style: .plain, barMetrics: .default)
+            setBackButtonBackgroundImage(UIImage(), for: state, barMetrics: .default)
+        }
+
+        setTitlePositionAdjustment(UIOffset(), for: .default)
+        setBackgroundVerticalPositionAdjustment(0, for: .default)
+        setBackButtonBackgroundVerticalPositionAdjustment(0, for: .default)
+    }
+
+    @objc override open var tintColor: UIColor? {
+        didSet {
+
+            var textAttributes: [NSAttributedString.Key: Any] = [:]
+            textAttributes[.foregroundColor] = tintColor
+
+            if let attributes: [NSAttributedString.Key: Any] = titleTextAttributes(for: .normal) {
+                for (key, value) in attributes {
+                    textAttributes[key] = value
+                }
+            }
+
+            setTitleTextAttributes(textAttributes, for: .normal)
+        }
+    }
+
+    /**
+     Boolean to know if it's a system item or custom item,
+     we are having a limitation that we cannot override a designated initializer,
+     so we are manually setting this property once in initialization
+     */
+    internal var isSystemItem: Bool = false
+
+    /**
+     Additional target & action to do get callback action.
+     Note that setting custom target & selector doesn't affect native functionality,
+     this is just an additional target to get a callback.
+     
+     @param target Target object.
+     @param action Target Selector.
+     */
+    @objc open func setTarget(_ target: AnyObject?, action: Selector?) {
+        if let target: AnyObject = target, let action: Selector = action {
+            invocation = IQInvocation(target, action)
+        } else {
+            invocation = nil
+        }
+    }
+
+    /**
+     Customized Invocation to be called when button is pressed.
+     invocation is internally created using setTarget:action: method.
+     */
+    @objc open var invocation: IQInvocation? {
+        didSet {
+            // We have to put this condition here because if we override this function then
+            // We were getting "Cannot override '_' which has been marked unavailable" in Xcode 15
+            if let titleBarButton = self as? IQTitleBarButtonItem {
+
+                if let target = invocation?.target, let action = invocation?.action {
+                    titleBarButton.isEnabled = true
+                    titleBarButton.titleButton?.isEnabled = true
+                    titleBarButton.titleButton?.addTarget(target, action: action, for: .touchUpInside)
+                } else {
+                    titleBarButton.isEnabled = false
+                    titleBarButton.titleButton?.isEnabled = false
+                    titleBarButton.titleButton?.removeTarget(nil, action: nil, for: .touchUpInside)
+                }
+            }
+        }
+    }
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQInvocation.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQInvocation.swift
new file mode 100644 (file)
index 0000000..2ba446a
--- /dev/null
@@ -0,0 +1,42 @@
+//
+//  IQInvocation.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import UIKit
+
+@available(iOSApplicationExtension, unavailable)
+@MainActor
+@objc public final class IQInvocation: NSObject {
+    @objc public weak var target: AnyObject?
+    @objc public var action: Selector
+
+    @objc public init(_ target: AnyObject, _ action: Selector) {
+        self.target = target
+        self.action = action
+    }
+
+    @objc public func invoke(from: Any) {
+        if let target: AnyObject = target {
+            UIApplication.shared.sendAction(action, to: target, from: from, for: UIEvent())
+        }
+    }
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQPreviousNextView.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQPreviousNextView.swift
new file mode 100644 (file)
index 0000000..d841752
--- /dev/null
@@ -0,0 +1,29 @@
+//
+// IQPreviousNextView.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import UIKit
+
+@available(iOSApplicationExtension, unavailable)
+@MainActor
+@objc open class IQPreviousNextView: UIView {
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQTitleBarButtonItem.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQTitleBarButtonItem.swift
new file mode 100644 (file)
index 0000000..089e967
--- /dev/null
@@ -0,0 +1,168 @@
+//
+//  IQTitleBarButtonItem.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import UIKit
+
+@available(iOSApplicationExtension, unavailable)
+@MainActor
+@objc open class IQTitleBarButtonItem: IQBarButtonItem {
+
+    @objc open var titleFont: UIFont? {
+
+        didSet {
+            if let unwrappedFont: UIFont = titleFont {
+                titleButton?.titleLabel?.font = unwrappedFont
+            } else {
+                titleButton?.titleLabel?.font = UIFont.systemFont(ofSize: 13)
+            }
+        }
+    }
+
+    @objc override open var title: String? {
+        didSet {
+            titleButton?.setTitle(title, for: .normal)
+            updateAccessibility()
+        }
+    }
+
+    /**
+     titleColor to be used for displaying button text when displaying title (disabled state).
+     */
+    @objc open var titleColor: UIColor? {
+
+        didSet {
+
+            if let color: UIColor = titleColor {
+                titleButton?.setTitleColor(color, for: .disabled)
+            } else {
+                titleButton?.setTitleColor(UIColor.lightGray, for: .disabled)
+            }
+        }
+    }
+
+    /**
+     selectableTitleColor to be used for displaying button text when button is enabled.
+     */
+    @objc open var selectableTitleColor: UIColor? {
+
+        didSet {
+
+            if let color: UIColor = selectableTitleColor {
+                titleButton?.setTitleColor(color, for: .normal)
+            } else {
+                titleButton?.setTitleColor(UIColor.systemBlue, for: .normal)
+            }
+        }
+    }
+
+    internal var titleButton: UIButton?
+    private var _titleView: UIView?
+
+    override init() {
+        super.init()
+    }
+
+    @objc public convenience init(title: String?) {
+
+        self.init(title: nil, style: .plain, target: nil, action: nil)
+
+        _titleView = UIView()
+        _titleView?.backgroundColor = UIColor.clear
+
+        titleButton = UIButton(type: .system)
+        titleButton?.isAccessibilityElement = false
+        titleButton?.isEnabled = false
+        titleButton?.titleLabel?.numberOfLines = 3
+        titleButton?.setTitleColor(UIColor.lightGray, for: .disabled)
+        titleButton?.setTitleColor(UIColor.systemBlue, for: .normal)
+        titleButton?.backgroundColor = UIColor.clear
+        titleButton?.titleLabel?.textAlignment = .center
+        titleButton?.setTitle(title, for: .normal)
+        titleFont = UIFont.systemFont(ofSize: 13.0)
+        titleButton?.titleLabel?.font = self.titleFont
+        _titleView?.addSubview(titleButton!)
+
+        let lowPriority: UILayoutPriority = UILayoutPriority(rawValue: UILayoutPriority.defaultLow.rawValue-1)
+        let highPriority: UILayoutPriority = UILayoutPriority(rawValue: UILayoutPriority.defaultHigh.rawValue-1)
+
+        _titleView?.translatesAutoresizingMaskIntoConstraints = false
+        _titleView?.setContentHuggingPriority(lowPriority, for: .vertical)
+        _titleView?.setContentHuggingPriority(lowPriority, for: .horizontal)
+        _titleView?.setContentCompressionResistancePriority(highPriority, for: .vertical)
+        _titleView?.setContentCompressionResistancePriority(highPriority, for: .horizontal)
+
+        titleButton?.translatesAutoresizingMaskIntoConstraints = false
+        titleButton?.setContentHuggingPriority(lowPriority, for: .vertical)
+        titleButton?.setContentHuggingPriority(lowPriority, for: .horizontal)
+        titleButton?.setContentCompressionResistancePriority(highPriority, for: .vertical)
+        titleButton?.setContentCompressionResistancePriority(highPriority, for: .horizontal)
+
+        let top: NSLayoutConstraint = NSLayoutConstraint(item: titleButton!, attribute: .top,
+                                                         relatedBy: .equal,
+                                                         toItem: _titleView, attribute: .top,
+                                                         multiplier: 1, constant: 0)
+        let bottom: NSLayoutConstraint = NSLayoutConstraint(item: titleButton!, attribute: .bottom,
+                                                            relatedBy: .equal,
+                                                            toItem: _titleView, attribute: .bottom,
+                                                            multiplier: 1, constant: 0)
+        let leading: NSLayoutConstraint = NSLayoutConstraint(item: titleButton!, attribute: .leading,
+                                                             relatedBy: .equal,
+                                                             toItem: _titleView, attribute: .leading,
+                                                             multiplier: 1, constant: 0)
+        let trailing: NSLayoutConstraint = NSLayoutConstraint(item: titleButton!, attribute: .trailing,
+                                                              relatedBy: .equal,
+                                                              toItem: _titleView, attribute: .trailing,
+                                                              multiplier: 1, constant: 0)
+
+        _titleView?.addConstraints([top, bottom, leading, trailing])
+
+        customView = _titleView
+    }
+
+    @objc required public init?(coder aDecoder: NSCoder) {
+        super.init(coder: aDecoder)
+    }
+
+    private func updateAccessibility() {
+        if title == nil || title?.isEmpty == true {
+            isAccessibilityElement = false
+            // Swift 6: Reference to static property 'none'
+            // is not concurrency-safe because it involves shared mutable state
+//            accessibilityTraits = .none
+            accessibilityTraits = .init(rawValue: 0)
+        } else if titleButton?.isEnabled == true {
+            isAccessibilityElement = true
+            // Swift 6: Reference to static property 'button'
+            // is not concurrency-safe because it involves shared mutable state
+//            accessibilityTraits = .button
+            accessibilityTraits = .init(rawValue: 1)
+        } else {
+            isAccessibilityElement = true
+
+            // Swift 6: Reference to static property 'staticText'
+            // is not concurrency-safe because it involves shared mutable state
+//            accessibilityTraits = .staticText
+            accessibilityTraits = .init(rawValue: 64)
+        }
+    }
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQToolbar.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQToolbar.swift
new file mode 100644 (file)
index 0000000..65d692c
--- /dev/null
@@ -0,0 +1,181 @@
+//
+//  IQToolbar.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import UIKit
+
+/** @abstract   IQToolbar for IQKeyboardManager.    */
+@available(iOSApplicationExtension, unavailable)
+@MainActor
+@objc open class IQToolbar: UIToolbar, UIInputViewAudioFeedback {
+
+    override init(frame: CGRect) {
+        super.init(frame: frame)
+
+        initialize()
+    }
+
+    @objc required public init?(coder aDecoder: NSCoder) {
+        super.init(coder: aDecoder)
+
+        initialize()
+    }
+
+    private func initialize() {
+
+        sizeToFit()
+
+        autoresizingMask = .flexibleWidth
+        self.isTranslucent = true
+        self.barTintColor = nil
+
+        let positions: [UIBarPosition] = [.any, .bottom, .top, .topAttached]
+
+        for position in positions {
+
+            self.setBackgroundImage(nil, forToolbarPosition: position, barMetrics: .default)
+            self.setShadowImage(nil, forToolbarPosition: .any)
+        }
+
+        // Background color
+        self.backgroundColor = nil
+    }
+
+    /**
+     Additional bar buttons to show at the leading side.
+     */
+    open var additionalLeadingItems: [UIBarButtonItem] = []
+
+    /**
+     Additional bar buttons to show at the trailing side.
+     */
+    open var additionalTrailingItems: [UIBarButtonItem] = []
+
+    /**
+     Previous bar button of toolbar.
+     */
+    private var privatePreviousBarButton: IQBarButtonItem?
+    @objc open var previousBarButton: IQBarButtonItem {
+        get {
+            if privatePreviousBarButton == nil {
+                privatePreviousBarButton = IQBarButtonItem(image: nil, style: .plain, target: nil, action: nil)
+            }
+            return privatePreviousBarButton!
+        }
+
+        set (newValue) {
+            privatePreviousBarButton = newValue
+        }
+    }
+
+    /**
+     Next bar button of toolbar.
+     */
+    private var privateNextBarButton: IQBarButtonItem?
+    @objc open var nextBarButton: IQBarButtonItem {
+        get {
+            if privateNextBarButton == nil {
+                privateNextBarButton = IQBarButtonItem(image: nil, style: .plain, target: nil, action: nil)
+            }
+            return privateNextBarButton!
+        }
+
+        set (newValue) {
+            privateNextBarButton = newValue
+        }
+    }
+
+    /**
+     Title bar button of toolbar.
+     */
+    private var privateTitleBarButton: IQTitleBarButtonItem?
+    @objc open var titleBarButton: IQTitleBarButtonItem {
+        get {
+            if privateTitleBarButton == nil {
+                privateTitleBarButton = IQTitleBarButtonItem(title: nil)
+            }
+            return privateTitleBarButton!
+        }
+
+        set (newValue) {
+            privateTitleBarButton = newValue
+        }
+    }
+
+    /**
+     Done bar button of toolbar.
+     */
+    private var privateDoneBarButton: IQBarButtonItem?
+    @objc open var doneBarButton: IQBarButtonItem {
+        get {
+            if privateDoneBarButton == nil {
+                privateDoneBarButton = IQBarButtonItem(title: nil, style: .done, target: nil, action: nil)
+            }
+            return privateDoneBarButton!
+        }
+
+        set (newValue) {
+            privateDoneBarButton = newValue
+        }
+    }
+
+    /**
+     Fixed space bar button of toolbar.
+     */
+    private var privateFixedSpaceBarButton: IQBarButtonItem?
+    @objc open var fixedSpaceBarButton: IQBarButtonItem {
+        get {
+            if privateFixedSpaceBarButton == nil {
+                privateFixedSpaceBarButton = IQBarButtonItem(barButtonSystemItem: .fixedSpace, target: nil, action: nil)
+            }
+            privateFixedSpaceBarButton?.isSystemItem = true
+            privateFixedSpaceBarButton?.width = 6
+
+            return privateFixedSpaceBarButton!
+        }
+
+        set (newValue) {
+            privateFixedSpaceBarButton = newValue
+        }
+    }
+
+    @objc override open func sizeThatFits(_ size: CGSize) -> CGSize {
+        var sizeThatFit: CGSize = super.sizeThatFits(size)
+        sizeThatFit.height = 44
+        return sizeThatFit
+    }
+
+    @objc override open var tintColor: UIColor! {
+
+        didSet {
+            if let unwrappedItems: [UIBarButtonItem] = items {
+                for item in unwrappedItems {
+                    item.tintColor = tintColor
+                }
+            }
+        }
+    }
+
+    @objc open var enableInputClicksWhenVisible: Bool {
+        return true
+    }
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQUIView+IQKeyboardToolbar.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQUIView+IQKeyboardToolbar.swift
new file mode 100644 (file)
index 0000000..49b1316
--- /dev/null
@@ -0,0 +1,333 @@
+//
+//  IQUIView+IQKeyboardToolbar.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import UIKit
+
+@available(iOSApplicationExtension, unavailable)
+@MainActor
+private struct AssociatedKeys {
+    static var toolbar: Int = 0
+    static var hidePlaceholder: Int = 0
+    static var placeholder: Int = 0
+}
+
+@available(iOSApplicationExtension, unavailable)
+@MainActor
+public extension IQKeyboardManagerWrapper where Base: UIView {
+
+    // MARK: Toolbar
+
+    /**
+     IQToolbar references for better customization control.
+     */
+    var toolbar: IQToolbar {
+        var toolbar: IQToolbar? = base?.inputAccessoryView as? IQToolbar
+
+        if toolbar == nil, let base = base {
+            toolbar = objc_getAssociatedObject(base, &AssociatedKeys.toolbar) as? IQToolbar
+        }
+
+        if let unwrappedToolbar: IQToolbar = toolbar {
+            return unwrappedToolbar
+        } else {
+
+            let width: CGFloat = base?.window?.windowScene?.screen.bounds.width ?? 0
+
+            let frame = CGRect(origin: .zero, size: .init(width: width, height: 44))
+            let newToolbar = IQToolbar(frame: frame)
+
+            if let base = base {
+                objc_setAssociatedObject(base, &AssociatedKeys.toolbar, newToolbar, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
+            }
+
+            return newToolbar
+        }
+    }
+
+    // MARK: Toolbar title
+
+    /**
+     If `hideToolbarPlaceholder` is YES, then title will not be added to the toolbar. Default to NO.
+     */
+    var hidePlaceholder: Bool {
+        get {
+            if let base = base {
+                return objc_getAssociatedObject(base, &AssociatedKeys.hidePlaceholder) as? Bool ?? false
+            }
+            return false
+        }
+        set(newValue) {
+            if let base = base {
+                objc_setAssociatedObject(base, &AssociatedKeys.hidePlaceholder,
+                                         newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
+                toolbar.titleBarButton.title = drawingPlaceholder
+            }
+        }
+    }
+
+    /**
+     `toolbarPlaceholder` to override default `placeholder` text when drawing text on toolbar.
+     */
+    var placeholder: String? {
+        get {
+            if let base = base {
+                return objc_getAssociatedObject(base, &AssociatedKeys.placeholder) as? String
+            }
+            return nil
+        }
+        set(newValue) {
+            if let base = base {
+                // swiftlint:disable line_length
+                objc_setAssociatedObject(base, &AssociatedKeys.placeholder, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
+                toolbar.titleBarButton.title = drawingPlaceholder
+                // swiftlint:enable line_length
+            }
+        }
+    }
+
+    /**
+     `drawingToolbarPlaceholder` will be actual text used to draw on toolbar. 
+     This would either `placeholder` or `toolbarPlaceholder`.
+     */
+    var drawingPlaceholder: String? {
+
+        if hidePlaceholder {
+            return nil
+        } else if placeholder?.isEmpty == false {
+            return placeholder
+        } else if let placeholderable: any IQPlaceholderable = base as? (any IQPlaceholderable) {
+
+            if let placeholder = placeholderable.attributedPlaceholder?.string,
+                !placeholder.isEmpty {
+                return placeholder
+            } else if let placeholder = placeholderable.placeholder {
+                return placeholder
+            } else {
+                return nil
+            }
+        } else {
+            return nil
+        }
+    }
+
+    // MARK: Common
+
+    // swiftlint:disable cyclomatic_complexity
+    // swiftlint:disable function_body_length
+    func addToolbar(target: AnyObject?,
+                    previousConfiguration: IQBarButtonItemConfiguration? = nil,
+                    nextConfiguration: IQBarButtonItemConfiguration? = nil,
+                    rightConfiguration: IQBarButtonItemConfiguration? = nil,
+                    title: String?,
+                    titleAccessibilityLabel: String? = nil) {
+
+        // If can't set InputAccessoryView. Then return
+        if base?.responds(to: #selector(setter: UITextField.inputAccessoryView)) == true {
+
+            //  Creating a toolBar for phoneNumber keyboard
+            let toolbar: IQToolbar = toolbar
+
+            var items: [UIBarButtonItem] = []
+
+            if let previousConfiguration: IQBarButtonItemConfiguration = previousConfiguration {
+
+                let prev: IQBarButtonItem = previousConfiguration.apply(on: toolbar.previousBarButton, target: target)
+                toolbar.previousBarButton = prev
+                items.append(prev)
+            }
+
+            if previousConfiguration != nil, nextConfiguration != nil {
+
+                items.append(toolbar.fixedSpaceBarButton)
+            }
+
+            if let nextConfiguration: IQBarButtonItemConfiguration = nextConfiguration {
+
+                let next: IQBarButtonItem = nextConfiguration.apply(on: toolbar.nextBarButton, target: target)
+                toolbar.nextBarButton = next
+                items.append(next)
+            }
+
+            if !toolbar.additionalLeadingItems.isEmpty {
+                items.append(contentsOf: toolbar.additionalLeadingItems)
+            }
+
+            // Title bar button item
+            do {
+                // Flexible space
+                items.append(IQBarButtonItem.flexibleBarButtonItem)
+
+                // Title button
+                toolbar.titleBarButton.title = title
+                toolbar.titleBarButton.accessibilityLabel = titleAccessibilityLabel
+                toolbar.titleBarButton.accessibilityIdentifier = titleAccessibilityLabel
+
+                toolbar.titleBarButton.customView?.frame = .zero
+
+                items.append(toolbar.titleBarButton)
+
+                // Flexible space
+                items.append(IQBarButtonItem.flexibleBarButtonItem)
+            }
+
+            if !toolbar.additionalTrailingItems.isEmpty {
+                items.append(contentsOf: toolbar.additionalTrailingItems)
+            }
+
+            if let rightConfiguration: IQBarButtonItemConfiguration = rightConfiguration {
+
+                let done: IQBarButtonItem = rightConfiguration.apply(on: toolbar.doneBarButton, target: target)
+                toolbar.doneBarButton = done
+                items.append(done)
+            }
+
+            //  Adding button to toolBar.
+            toolbar.items = items
+
+            if let textInput: any UITextInput = base as? (any UITextInput) {
+                switch textInput.keyboardAppearance {
+                case .dark?:
+                    toolbar.barStyle = .black
+                default:
+                    toolbar.barStyle = .default
+                }
+            }
+
+            //  Setting toolbar to keyboard.
+            let reloadInputViews: Bool = base?.inputAccessoryView != toolbar
+            if reloadInputViews {
+                if let textField: UITextField = base as? UITextField {
+                    textField.inputAccessoryView = toolbar
+                } else if let textView: UITextView = base as? UITextView {
+                    textView.inputAccessoryView = toolbar
+                }
+                base?.reloadInputViews()
+            }
+        }
+    }
+    // swiftlint:enable function_body_length
+    // swiftlint:enable cyclomatic_complexity
+
+    // MARK: Right
+    func addDone(target: AnyObject?,
+                 action: Selector,
+                 showPlaceholder: Bool = false, titleAccessibilityLabel: String? = nil) {
+
+        let title: String? = showPlaceholder ? drawingPlaceholder : nil
+
+        addDone(target: target, action: action,
+                   title: title, titleAccessibilityLabel: titleAccessibilityLabel)
+    }
+
+    func addDone(target: AnyObject?,
+                 action: Selector,
+                 title: String?, titleAccessibilityLabel: String? = nil) {
+
+        let rightConfiguration = IQBarButtonItemConfiguration(systemItem: .done, action: action)
+
+        addToolbar(target: target, rightConfiguration: rightConfiguration,
+                   title: title, titleAccessibilityLabel: titleAccessibilityLabel)
+    }
+
+    func addRightButton(target: AnyObject?,
+                        configuration: IQBarButtonItemConfiguration,
+                        showPlaceholder: Bool = false, titleAccessibilityLabel: String? = nil) {
+        let title: String? = showPlaceholder ? drawingPlaceholder : nil
+        addRightButton(target: target, configuration: configuration, title: title,
+                       titleAccessibilityLabel: titleAccessibilityLabel)
+    }
+
+    func addRightButton(target: AnyObject?,
+                        configuration: IQBarButtonItemConfiguration,
+                        title: String?, titleAccessibilityLabel: String? = nil) {
+        addToolbar(target: target, rightConfiguration: configuration, title: title,
+                   titleAccessibilityLabel: titleAccessibilityLabel)
+    }
+
+    // MARK: Right/Left
+    func addRightLeft(target: AnyObject?,
+                      rightConfiguration: IQBarButtonItemConfiguration, leftConfiguration: IQBarButtonItemConfiguration,
+                      showPlaceholder: Bool = false, titleAccessibilityLabel: String? = nil) {
+        let title: String? = showPlaceholder ? drawingPlaceholder : nil
+        addRightLeft(target: target,
+                     rightConfiguration: rightConfiguration, leftConfiguration: leftConfiguration,
+                     title: title, titleAccessibilityLabel: titleAccessibilityLabel)
+    }
+
+    func addRightLeft(target: AnyObject?,
+                      rightConfiguration: IQBarButtonItemConfiguration, leftConfiguration: IQBarButtonItemConfiguration,
+                      title: String?, titleAccessibilityLabel: String? = nil) {
+        addToolbar(target: target,
+                   previousConfiguration: leftConfiguration, rightConfiguration: rightConfiguration,
+                   title: title, titleAccessibilityLabel: titleAccessibilityLabel)
+    }
+
+    // MARK: Previous/Next/Right
+
+    func addPreviousNextRight(target: AnyObject?,
+                              previousConfiguration: IQBarButtonItemConfiguration? = nil,
+                              nextConfiguration: IQBarButtonItemConfiguration? = nil,
+                              rightConfiguration: IQBarButtonItemConfiguration?,
+                              showPlaceholder: Bool = false, titleAccessibilityLabel: String? = nil) {
+
+        let title: String? = showPlaceholder ? drawingPlaceholder : nil
+        addPreviousNextRight(target: target,
+                             previousConfiguration: previousConfiguration, nextConfiguration: nextConfiguration,
+                             rightConfiguration: rightConfiguration,
+                             title: title, titleAccessibilityLabel: titleAccessibilityLabel)
+    }
+
+    func addPreviousNextRight(target: AnyObject?,
+                              previousConfiguration: IQBarButtonItemConfiguration? = nil,
+                              nextConfiguration: IQBarButtonItemConfiguration? = nil,
+                              rightConfiguration: IQBarButtonItemConfiguration?,
+                              title: String?, titleAccessibilityLabel: String? = nil) {
+
+        addToolbar(target: target,
+                   previousConfiguration: previousConfiguration, nextConfiguration: nextConfiguration,
+                   rightConfiguration: rightConfiguration,
+                   title: title, titleAccessibilityLabel: titleAccessibilityLabel)
+    }
+
+    func addPreviousNextDone(target: AnyObject?, previousAction: Selector, nextAction: Selector, doneAction: Selector,
+                             showPlaceholder: Bool = false, titleAccessibilityLabel: String? = nil) {
+        let title: String? = showPlaceholder ? drawingPlaceholder : nil
+        addPreviousNextDone(target: target, previousAction: previousAction, nextAction: nextAction,
+                            doneAction: doneAction,
+                            title: title, titleAccessibilityLabel: titleAccessibilityLabel)
+    }
+
+    func addPreviousNextDone(target: AnyObject?,
+                             previousAction: Selector, nextAction: Selector, doneAction: Selector,
+                             title: String?, titleAccessibilityLabel: String? = nil) {
+
+        let previousConfiguration = IQBarButtonItemConfiguration(image: UIImage.keyboardPreviousImage,
+                                                                 action: previousAction)
+        let nextConfiguration = IQBarButtonItemConfiguration(image: UIImage.keyboardNextImage, action: nextAction)
+        let rightConfiguration = IQBarButtonItemConfiguration(systemItem: .done, action: doneAction)
+
+        addToolbar(target: target, previousConfiguration: previousConfiguration,
+                   nextConfiguration: nextConfiguration, rightConfiguration: rightConfiguration,
+                   title: title, titleAccessibilityLabel: titleAccessibilityLabel)
+    }
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQUIView+IQKeyboardToolbarDeprecated.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQUIView+IQKeyboardToolbarDeprecated.swift
new file mode 100644 (file)
index 0000000..9437935
--- /dev/null
@@ -0,0 +1,228 @@
+//
+//  IQUIView+IQKeyboardToolbarDeprecated.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import UIKit
+
+// swiftlint:disable unused_setter_value
+// swiftlint:disable line_length
+// swiftlint:disable function_parameter_count
+@available(iOSApplicationExtension, unavailable)
+@MainActor
+@objc public extension UIView {
+
+    @available(*, unavailable, renamed: "iq.toolbar")
+    var keyboardToolbar: IQToolbar {
+        get { fatalError() }
+        set {}
+    }
+
+    @available(*, unavailable, renamed: "iq.hidePlaceholder")
+    var shouldHideToolbarPlaceholder: Bool {
+        get { false }
+        set {}
+    }
+
+    @available(*, unavailable, renamed: "iq.placeholder")
+    var toolbarPlaceholder: String? {
+        get { nil }
+        set {}
+    }
+
+    @available(*, unavailable, renamed: "iq.drawingPlaceholder")
+    var drawingToolbarPlaceholder: String? {
+        get { nil }
+        set {}
+    }
+
+    @available(*, unavailable, renamed: "iq.addToolbar(target:previousConfiguration:nextConfiguration:rightConfiguration:title:titleAccessibilityLabel:)")
+    func addKeyboardToolbarWithTarget(target: AnyObject?,
+                                      titleText: String?,
+                                      titleAccessibilityLabel: String? = nil,
+                                      rightBarButtonConfiguration: IQBarButtonItemConfiguration?,
+                                      previousBarButtonConfiguration: IQBarButtonItemConfiguration? = nil,
+                                      nextBarButtonConfiguration: IQBarButtonItemConfiguration? = nil) {
+    }
+
+    @available(*, unavailable, renamed: "iq.addDone(target:action:showPlaceholder:titleAccessibilityLabel:)")
+    func addDoneOnKeyboardWithTarget(_ target: AnyObject?,
+                                     action: Selector,
+                                     shouldShowPlaceholder: Bool = false,
+                                     titleAccessibilityLabel: String? = nil) {
+    }
+
+    @available(*, unavailable, renamed: "iq.addDone(target:action:title:titleAccessibilityLabel:)")
+    func addDoneOnKeyboardWithTarget(_ target: AnyObject?,
+                                     action: Selector,
+                                     titleText: String?,
+                                     titleAccessibilityLabel: String? = nil) {
+    }
+
+    @available(*, unavailable, renamed: "iq.addRightButton(target:configuration:showPlaceholder:titleAccessibilityLabel:)")
+    func addRightButtonOnKeyboardWithImage(_ image: UIImage,
+                                           target: AnyObject?,
+                                           action: Selector,
+                                           shouldShowPlaceholder: Bool = false,
+                                           titleAccessibilityLabel: String? = nil) {
+    }
+
+    @available(*, unavailable, renamed: "iq.addRightButton(target:configuration:title:titleAccessibilityLabel:)")
+    func addRightButtonOnKeyboardWithImage(_ image: UIImage,
+                                           target: AnyObject?,
+                                           action: Selector,
+                                           titleText: String?,
+                                           titleAccessibilityLabel: String? = nil) {
+    }
+
+    @available(*, unavailable, renamed: "iq.addRightButton(target:configuration:showPlaceholder:titleAccessibilityLabel:)")
+    func addRightButtonOnKeyboardWithText(_ text: String,
+                                          target: AnyObject?,
+                                          action: Selector,
+                                          shouldShowPlaceholder: Bool = false,
+                                          titleAccessibilityLabel: String? = nil) {
+    }
+
+    @available(*, unavailable, renamed: "iq.addRightButton(target:configuration:title:titleAccessibilityLabel:)")
+    func addRightButtonOnKeyboardWithText(_ text: String,
+                                          target: AnyObject?,
+                                          action: Selector,
+                                          titleText: String?,
+                                          titleAccessibilityLabel: String? = nil) {
+    }
+
+    @available(*, unavailable, renamed: "iq.addRightLeft(target:rightConfiguration:leftConfiguration:showPlaceholder:titleAccessibilityLabel:)")
+    func addCancelDoneOnKeyboardWithTarget(_ target: AnyObject?,
+                                           cancelAction: Selector,
+                                           doneAction: Selector,
+                                           shouldShowPlaceholder: Bool = false,
+                                           titleAccessibilityLabel: String? = nil) {
+    }
+
+    @available(*, unavailable, renamed: "iq.addRightLeft(target:rightConfiguration:leftConfiguration:showPlaceholder:titleAccessibilityLabel:)")
+    func addRightLeftOnKeyboardWithTarget(_ target: AnyObject?,
+                                          leftButtonTitle: String,
+                                          rightButtonTitle: String,
+                                          leftButtonAction: Selector,
+                                          rightButtonAction: Selector,
+                                          shouldShowPlaceholder: Bool = false,
+                                          titleAccessibilityLabel: String? = nil) {
+    }
+
+    @available(*, unavailable, renamed: "iq.addRightLeft(target:rightConfiguration:leftConfiguration:showPlaceholder:titleAccessibilityLabel:)")
+    func addRightLeftOnKeyboardWithTarget(_ target: AnyObject?,
+                                          leftButtonImage: UIImage,
+                                          rightButtonImage: UIImage,
+                                          leftButtonAction: Selector,
+                                          rightButtonAction: Selector,
+                                          shouldShowPlaceholder: Bool = false,
+                                          titleAccessibilityLabel: String? = nil) {
+    }
+
+    @available(*, unavailable, renamed: "iq.addRightLeft(target:rightConfiguration:leftConfiguration:title:titleAccessibilityLabel:)")
+    func addCancelDoneOnKeyboardWithTarget(_ target: AnyObject?,
+                                           cancelAction: Selector,
+                                           doneAction: Selector,
+                                           titleText: String?,
+                                           titleAccessibilityLabel: String? = nil) {
+    }
+
+    @available(*, unavailable, renamed: "iq.addRightLeft(target:rightConfiguration:leftConfiguration:title:titleAccessibilityLabel:)")
+    func addRightLeftOnKeyboardWithTarget(_ target: AnyObject?,
+                                          leftButtonTitle: String,
+                                          rightButtonTitle: String,
+                                          leftButtonAction: Selector,
+                                          rightButtonAction: Selector,
+                                          titleText: String?,
+                                          titleAccessibilityLabel: String? = nil) {
+    }
+
+    @available(*, unavailable, renamed: "iq.addRightLeft(target:rightConfiguration:leftConfiguration:title:titleAccessibilityLabel:)")
+    func addRightLeftOnKeyboardWithTarget(_ target: AnyObject?,
+                                          leftButtonImage: UIImage,
+                                          rightButtonImage: UIImage,
+                                          leftButtonAction: Selector,
+                                          rightButtonAction: Selector,
+                                          titleText: String?,
+                                          titleAccessibilityLabel: String? = nil) {
+    }
+
+    @available(*, unavailable, renamed: "iq.addPreviousNextDone(target:previousAction:nextAction:doneAction:showPlaceholder:titleAccessibilityLabel:)")
+    func addPreviousNextDone(_ target: AnyObject?,
+                             previousAction: Selector,
+                             nextAction: Selector,
+                             doneAction: Selector,
+                             shouldShowPlaceholder: Bool = false,
+                             titleAccessibilityLabel: String? = nil) {
+    }
+
+    @available(*, unavailable, renamed: "iq.addPreviousNextDone(target:previousAction:nextAction:doneAction:title:titleAccessibilityLabel:)")
+    func addPreviousNextDoneOnKeyboardWithTarget(_ target: AnyObject?,
+                                                 previousAction: Selector,
+                                                 nextAction: Selector,
+                                                 doneAction: Selector,
+                                                 titleText: String?,
+                                                 titleAccessibilityLabel: String? = nil) {
+    }
+
+    @available(*, unavailable, renamed: "iq.addPreviousNextRight(target:previousConfiguration:nextConfiguration:rightConfiguration:showPlaceholder:titleAccessibilityLabel:)")
+    func addPreviousNextRightOnKeyboardWithTarget(_ target: AnyObject?,
+                                                  rightButtonImage: UIImage,
+                                                  previousAction: Selector,
+                                                  nextAction: Selector,
+                                                  rightButtonAction: Selector,
+                                                  shouldShowPlaceholder: Bool = false,
+                                                  titleAccessibilityLabel: String? = nil) {
+    }
+
+    @available(*, unavailable, renamed: "iq.addPreviousNextRight(target:previousConfiguration:nextConfiguration:rightConfiguration:showPlaceholder:titleAccessibilityLabel:)")
+    func addPreviousNextRightOnKeyboardWithTarget(_ target: AnyObject?,
+                                                  rightButtonTitle: String,
+                                                  previousAction: Selector,
+                                                  nextAction: Selector,
+                                                  rightButtonAction: Selector,
+                                                  shouldShowPlaceholder: Bool = false,
+                                                  titleAccessibilityLabel: String? = nil) {
+    }
+
+    @available(*, unavailable, renamed: "iq.addPreviousNextRight(target:previousConfiguration:nextConfiguration:rightConfiguration:title:titleAccessibilityLabel:)")
+    func addPreviousNextRightOnKeyboardWithTarget(_ target: AnyObject?,
+                                                  rightButtonImage: UIImage,
+                                                  previousAction: Selector,
+                                                  nextAction: Selector,
+                                                  rightButtonAction: Selector,
+                                                  titleText: String?,
+                                                  titleAccessibilityLabel: String? = nil) {
+    }
+
+    @available(*, unavailable, renamed: "iq.addPreviousNextRight(target:previousConfiguration:nextConfiguration:rightConfiguration:title:titleAccessibilityLabel:)")
+    func addPreviousNextRightOnKeyboardWithTarget(_ target: AnyObject?,
+                                                  rightButtonTitle: String,
+                                                  previousAction: Selector,
+                                                  nextAction: Selector,
+                                                  rightButtonAction: Selector,
+                                                  titleText: String?,
+                                                  titleAccessibilityLabel: String? = nil) {
+    }
+}
+// swiftlint:enable unused_setter_value
+// swiftlint:enable line_length
+// swiftlint:enable function_parameter_count
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/LIsteners/IQKeyboardListener.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/LIsteners/IQKeyboardListener.swift
new file mode 100644 (file)
index 0000000..b0e53a3
--- /dev/null
@@ -0,0 +1,115 @@
+//
+//  IQKeyboardListener.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import UIKit
+
+@available(iOSApplicationExtension, unavailable)
+@MainActor
+public class IQKeyboardListener {
+
+    private var sizeObservers: [AnyHashable: SizeCompletion] = [:]
+
+    private(set) var keyboardInfo: IQKeyboardInfo {
+        didSet {
+            if keyboardInfo != oldValue {
+                sendEvent()
+            }
+        }
+    }
+
+    public var keyboardShowing: Bool {
+        keyboardInfo.keyboardShowing
+    }
+
+    public var frame: CGRect {
+        keyboardInfo.frame
+    }
+
+    public init() {
+        keyboardInfo = IQKeyboardInfo(notification: nil, name: .didHide)
+        //  Registering for keyboard notification.
+        NotificationCenter.default.addObserver(self, selector: #selector(self.keyboardWillShow(_:)),
+                                               name: UIResponder.keyboardWillShowNotification, object: nil)
+        NotificationCenter.default.addObserver(self, selector: #selector(self.keyboardDidShow(_:)),
+                                               name: UIResponder.keyboardDidShowNotification, object: nil)
+        NotificationCenter.default.addObserver(self, selector: #selector(self.keyboardWillHide(_:)),
+                                               name: UIResponder.keyboardWillHideNotification, object: nil)
+        NotificationCenter.default.addObserver(self, selector: #selector(self.keyboardDidHide(_:)),
+                                               name: UIResponder.keyboardDidHideNotification, object: nil)
+        NotificationCenter.default.addObserver(self, selector: #selector(self.keyboardWillChangeFrame(_:)),
+                                               name: UIResponder.keyboardWillChangeFrameNotification, object: nil)
+        NotificationCenter.default.addObserver(self, selector: #selector(self.keyboardDidChangeFrame(_:)),
+                                               name: UIResponder.keyboardDidChangeFrameNotification, object: nil)
+    }
+
+    @objc private func keyboardWillShow(_ notification: Notification) {
+        keyboardInfo = IQKeyboardInfo(notification: notification, name: .willShow)
+    }
+
+    @objc private func keyboardDidShow(_ notification: Notification) {
+        keyboardInfo = IQKeyboardInfo(notification: notification, name: .didShow)
+    }
+
+    @objc private func keyboardWillHide(_ notification: Notification?) {
+        keyboardInfo = IQKeyboardInfo(notification: notification, name: .willHide)
+    }
+
+    @objc private func keyboardDidHide(_ notification: Notification) {
+        keyboardInfo = IQKeyboardInfo(notification: notification, name: .didHide)
+    }
+
+    @objc private func keyboardWillChangeFrame(_ notification: Notification) {
+        keyboardInfo = IQKeyboardInfo(notification: notification, name: .willChangeFrame)
+    }
+
+    @objc private func keyboardDidChangeFrame(_ notification: Notification) {
+        keyboardInfo = IQKeyboardInfo(notification: notification, name: .didChangeFrame)
+    }
+
+    public func animate(alongsideTransition transition: @escaping () -> Void, completion: (() -> Void)? = nil) {
+        keyboardInfo.animate(alongsideTransition: transition, completion: completion)
+    }
+}
+
+@available(iOSApplicationExtension, unavailable)
+public extension IQKeyboardListener {
+
+    typealias SizeCompletion = (_ name: IQKeyboardInfo.Name, _ size: CGSize) -> Void
+
+    func registerSizeChange(identifier: AnyHashable, changeHandler: @escaping SizeCompletion) {
+        sizeObservers[identifier] = changeHandler
+    }
+
+    func unregisterSizeChange(identifier: AnyHashable) {
+        sizeObservers[identifier] = nil
+    }
+
+    private func sendEvent() {
+
+        let size: CGSize = keyboardInfo.frame.size
+
+        for block in sizeObservers.values {
+            block(keyboardInfo.name, size)
+        }
+    }
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/LIsteners/IQTextFieldViewListener.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/LIsteners/IQTextFieldViewListener.swift
new file mode 100644 (file)
index 0000000..7718e81
--- /dev/null
@@ -0,0 +1,126 @@
+//
+//  IQTextFieldViewListener.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import UIKit
+
+@available(iOSApplicationExtension, unavailable)
+@MainActor
+public class IQTextFieldViewListener {
+
+    private var textFieldViewObservers: [AnyHashable: TextFieldViewCompletion] = [:]
+
+#if swift(>=5.7)
+    private(set) var lastTextFieldViewInfo: IQTextFieldViewInfo?
+#endif
+
+    private(set) var textFieldViewInfo: IQTextFieldViewInfo?
+
+    public var textFieldView: UIView? {
+        return textFieldViewInfo?.textFieldView
+    }
+
+    public init() {
+        //  Registering for keyboard notification.
+        NotificationCenter.default.addObserver(self, selector: #selector(self.didBeginEditing(_:)),
+                                               name: UITextField.textDidBeginEditingNotification, object: nil)
+        NotificationCenter.default.addObserver(self, selector: #selector(self.didEndEditing(_:)),
+                                               name: UITextField.textDidEndEditingNotification, object: nil)
+
+        NotificationCenter.default.addObserver(self, selector: #selector(self.didBeginEditing(_:)),
+                                               name: UITextView.textDidBeginEditingNotification, object: nil)
+        NotificationCenter.default.addObserver(self, selector: #selector(self.didEndEditing(_:)),
+                                               name: UITextView.textDidEndEditingNotification, object: nil)
+    }
+
+    @objc private func didBeginEditing(_ notification: Notification) {
+        guard let info: IQTextFieldViewInfo = IQTextFieldViewInfo(notification: notification,
+                                                                  name: .beginEditing) else {
+            return
+        }
+
+#if swift(>=5.7)
+
+        if #available(iOS 16.0, *),
+           let lastTextFieldViewInfo = lastTextFieldViewInfo,
+           let textView: UITextView = lastTextFieldViewInfo.textFieldView as? UITextView,
+           textView.findInteraction?.isFindNavigatorVisible == true {
+            // // This means the this didBeginEditing call comes due to find interaction
+            textFieldViewInfo = lastTextFieldViewInfo
+            sendEvent(info: lastTextFieldViewInfo)
+        } else if textFieldViewInfo != info {
+            textFieldViewInfo = info
+            lastTextFieldViewInfo = nil
+            sendEvent(info: info)
+        } else {
+            lastTextFieldViewInfo = nil
+        }
+#else
+        if textFieldViewInfo != info {
+            textFieldViewInfo = info
+            sendEvent(info: info)
+        }
+#endif
+    }
+
+    @objc private func didEndEditing(_ notification: Notification) {
+        guard let info: IQTextFieldViewInfo = IQTextFieldViewInfo(notification: notification, name: .endEditing) else {
+            return
+        }
+
+        if textFieldViewInfo != info {
+#if swift(>=5.7)
+            if #available(iOS 16.0, *),
+               let textView: UITextView = info.textFieldView as? UITextView,
+                textView.isFindInteractionEnabled {
+                lastTextFieldViewInfo = textFieldViewInfo
+            } else {
+                lastTextFieldViewInfo = nil
+            }
+#endif
+            textFieldViewInfo = info
+            sendEvent(info: info)
+            textFieldViewInfo = nil
+        }
+    }
+}
+
+@available(iOSApplicationExtension, unavailable)
+public extension IQTextFieldViewListener {
+
+    typealias TextFieldViewCompletion = (_ info: IQTextFieldViewInfo) -> Void
+
+    func registerTextFieldViewChange(identifier: AnyHashable, changeHandler: @escaping TextFieldViewCompletion) {
+        textFieldViewObservers[identifier] = changeHandler
+    }
+
+    func unregisterSizeChange(identifier: AnyHashable) {
+        textFieldViewObservers[identifier] = nil
+    }
+
+    private func sendEvent(info: IQTextFieldViewInfo) {
+
+        for block in textFieldViewObservers.values {
+            block(info)
+        }
+    }
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/LIsteners/Info/IQKeyboardInfo.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/LIsteners/Info/IQKeyboardInfo.swift
new file mode 100644 (file)
index 0000000..b06a473
--- /dev/null
@@ -0,0 +1,135 @@
+//
+//  IQKeyboardInfo.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import UIKit
+
+@available(iOSApplicationExtension, unavailable)
+@MainActor
+public struct IQKeyboardInfo: Equatable {
+    nonisolated public static func == (lhs: Self, rhs: Self) -> Bool {
+        lhs.frame.equalTo(rhs.frame)
+    }
+
+    @objc public enum Name: Int {
+        case willShow
+        case didShow
+        case willHide
+        case didHide
+        case willChangeFrame
+        case didChangeFrame
+    }
+
+    public let name: Name
+
+    /** To save keyboard frame. */
+    public let frame: CGRect
+
+    /** To save keyboard animation duration. */
+    public let animationDuration: TimeInterval
+
+    /** To mimic the keyboard animation */
+    public let animationCurve: UIView.AnimationCurve
+
+    public var keyboardShowing: Bool {
+        frame.height > 0
+    }
+
+    public init(notification: Notification?, name: Name) {
+        self.name = name
+
+        let screenBounds: CGRect
+        if let screen: UIScreen = notification?.object as? UIScreen {
+            screenBounds = screen.bounds
+        } else {
+            screenBounds = UIScreen.main.bounds
+        }
+
+        if let info: [AnyHashable: Any] = notification?.userInfo {
+
+            //  Getting keyboard animation.
+            if let curveValue: Int = info[UIResponder.keyboardAnimationCurveUserInfoKey] as? Int,
+               let curve: UIView.AnimationCurve = UIView.AnimationCurve(rawValue: curveValue) {
+                animationCurve = curve
+            } else {
+                animationCurve = .easeOut
+            }
+
+            //  Getting keyboard animation duration
+            if let duration: TimeInterval = info[UIResponder.keyboardAnimationDurationUserInfoKey] as? TimeInterval,
+               duration != 0.0 {
+                animationDuration = duration
+            } else {
+                animationDuration = 0.25
+            }
+
+            //  Getting UIKeyboardSize.
+            if var kbFrame: CGRect = info[UIResponder.keyboardFrameEndUserInfoKey] as? CGRect {
+
+                // If this is floating keyboard
+                if kbFrame.width < screenBounds.width,
+                   kbFrame.maxY < screenBounds.height {
+                    kbFrame.size = CGSize(width: kbFrame.size.width, height: 0)
+                } else {
+                    // (Bug ID: #469) (Bug ID: #381) (Bug ID: #1506)
+                    // Calculating actual keyboard covered size respect to window,
+                    // keyboard frame may be different when hardware keyboard is attached
+                    let keyboardHeight = CGFloat.maximum(screenBounds.height - kbFrame.minY, 0)
+                    kbFrame.size = CGSize(width: kbFrame.size.width, height: keyboardHeight)
+                }
+
+                frame = kbFrame
+            } else {
+                frame = CGRect(x: 0, y: screenBounds.height, width: screenBounds.width, height: 0)
+            }
+        } else {
+            animationCurve = .easeOut
+            animationDuration = 0.25
+            frame = CGRect(x: 0, y: screenBounds.height, width: screenBounds.width, height: 0)
+        }
+    }
+
+    public func animate(alongsideTransition transition: @escaping () -> Void, completion: (() -> Void)? = nil) {
+
+//        if let timing = UIView.AnimationCurve.RawValue(exactly: animationCurve.rawValue),
+//           let curve = UIView.AnimationCurve(rawValue: timing) {
+//            let animator = UIViewPropertyAnimator(duration: animationDuration, curve: curve) {
+//                transition()
+//            }
+//            animator.addCompletion { _ in
+//                completion?()
+//            }
+//            animator.isUserInteractionEnabled = true
+//            animator.startAnimation()
+//        } else {
+        var animationOptions: UIView.AnimationOptions = .init(rawValue: UInt(animationCurve.rawValue << 16))
+        animationOptions.formUnion(.allowUserInteraction)
+        animationOptions.formUnion(.beginFromCurrentState)
+        UIView.animate(withDuration: animationDuration, delay: 0,
+                       options: animationOptions,
+                       animations: transition,
+                       completion: { _ in
+            completion?()
+        })
+//        }
+    }
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/LIsteners/Info/IQTextFieldViewInfo.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/LIsteners/Info/IQTextFieldViewInfo.swift
new file mode 100644 (file)
index 0000000..eb0eaf6
--- /dev/null
@@ -0,0 +1,57 @@
+//
+//  IQTextFieldViewInfo.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import UIKit
+
+@available(iOSApplicationExtension, unavailable)
+@MainActor
+public struct IQTextFieldViewInfo: Equatable {
+
+    nonisolated public static func == (lhs: Self, rhs: Self) -> Bool {
+        return lhs.textFieldView == rhs.textFieldView &&
+        lhs.name == rhs.name
+    }
+
+    @MainActor
+    @objc public enum Name: Int {
+        case beginEditing
+        case endEditing
+    }
+
+    public let name: Name
+
+    public let textFieldView: UIView
+
+    public init?(notification: Notification?, name: Name) {
+        guard let view: UIView = notification?.object as? UIView else {
+            return nil
+        }
+
+        guard !view.iq.isAlertViewTextField() else {
+            return nil
+        }
+
+        self.name = name
+        textFieldView = view
+    }
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/PrivacyInfo.xcprivacy b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/PrivacyInfo.xcprivacy
new file mode 100644 (file)
index 0000000..9021190
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+       <key>NSPrivacyAccessedAPITypes</key>
+       <array/>
+       <key>NSPrivacyTrackingDomains</key>
+       <array/>
+       <key>NSPrivacyCollectedDataTypes</key>
+       <array/>
+       <key>NSPrivacyTracking</key>
+       <false/>
+</dict>
+</plist>
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/ReturnKeyHandler/IQKeyboardReturnKeyHandler+TextFieldDelegate.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/ReturnKeyHandler/IQKeyboardReturnKeyHandler+TextFieldDelegate.swift
new file mode 100644 (file)
index 0000000..bb31b03
--- /dev/null
@@ -0,0 +1,154 @@
+//
+//  IQKeyboardReturnKeyHandler+TextFieldDelegate.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import UIKit
+
+// MARK: UITextFieldDelegate
+@available(iOSApplicationExtension, unavailable)
+extension IQKeyboardReturnKeyHandler: UITextFieldDelegate {
+
+    @objc public func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
+
+        if delegate == nil {
+
+            if let unwrapDelegate: any UITextFieldDelegate = textFieldViewCachedInfo(textField)?.textFieldDelegate {
+                if unwrapDelegate.responds(to: #selector((any UITextFieldDelegate).textFieldShouldBeginEditing(_:))) {
+                    return unwrapDelegate.textFieldShouldBeginEditing?(textField) ?? false
+                }
+            }
+        }
+
+        return true
+    }
+
+    @objc public func textFieldShouldEndEditing(_ textField: UITextField) -> Bool {
+
+        if delegate == nil {
+
+            if let unwrapDelegate: any UITextFieldDelegate = textFieldViewCachedInfo(textField)?.textFieldDelegate {
+                if unwrapDelegate.responds(to: #selector((any UITextFieldDelegate).textFieldShouldEndEditing(_:))) {
+                    return unwrapDelegate.textFieldShouldEndEditing?(textField) ?? false
+                }
+            }
+        }
+
+        return true
+    }
+
+    @objc public func textFieldDidBeginEditing(_ textField: UITextField) {
+        updateReturnKeyTypeOnTextField(textField)
+
+        var aDelegate: (any UITextFieldDelegate)? = delegate
+
+        if aDelegate == nil {
+
+            if let model: IQTextFieldViewInfoModel = textFieldViewCachedInfo(textField) {
+                aDelegate = model.textFieldDelegate
+            }
+        }
+
+        aDelegate?.textFieldDidBeginEditing?(textField)
+    }
+
+    @objc public func textFieldDidEndEditing(_ textField: UITextField) {
+
+        var aDelegate: (any UITextFieldDelegate)? = delegate
+
+        if aDelegate == nil {
+
+            if let model: IQTextFieldViewInfoModel = textFieldViewCachedInfo(textField) {
+                aDelegate = model.textFieldDelegate
+            }
+        }
+
+        aDelegate?.textFieldDidEndEditing?(textField)
+    }
+
+    @objc public func textFieldDidEndEditing(_ textField: UITextField, reason: UITextField.DidEndEditingReason) {
+
+        var aDelegate: (any UITextFieldDelegate)? = delegate
+
+        if aDelegate == nil {
+
+            if let model: IQTextFieldViewInfoModel = textFieldViewCachedInfo(textField) {
+                aDelegate = model.textFieldDelegate
+            }
+        }
+
+        aDelegate?.textFieldDidEndEditing?(textField, reason: reason)
+    }
+
+    @objc public func textField(_ textField: UITextField,
+                                shouldChangeCharactersIn range: NSRange,
+                                replacementString string: String) -> Bool {
+
+        if delegate == nil {
+
+            if let unwrapDelegate: any UITextFieldDelegate = textFieldViewCachedInfo(textField)?.textFieldDelegate {
+                let selector: Selector = #selector((any UITextFieldDelegate).textField(_:shouldChangeCharactersIn:
+                                                                                    replacementString:))
+                if unwrapDelegate.responds(to: selector) {
+                    return unwrapDelegate.textField?(textField,
+                                                     shouldChangeCharactersIn: range,
+                                                     replacementString: string) ?? false
+                }
+            }
+        }
+        return true
+    }
+
+    @objc public func textFieldShouldClear(_ textField: UITextField) -> Bool {
+
+        if delegate == nil {
+
+            if let unwrapDelegate: any UITextFieldDelegate = textFieldViewCachedInfo(textField)?.textFieldDelegate {
+                if unwrapDelegate.responds(to: #selector((any UITextFieldDelegate).textFieldShouldClear(_:))) {
+                    return unwrapDelegate.textFieldShouldClear?(textField) ?? false
+                }
+            }
+        }
+
+        return true
+    }
+
+    @objc public func textFieldShouldReturn(_ textField: UITextField) -> Bool {
+
+        var isReturn: Bool = true
+
+        if delegate == nil {
+
+            if let unwrapDelegate: any UITextFieldDelegate = textFieldViewCachedInfo(textField)?.textFieldDelegate {
+                if unwrapDelegate.responds(to: #selector((any UITextFieldDelegate).textFieldShouldReturn(_:))) {
+                    isReturn = unwrapDelegate.textFieldShouldReturn?(textField) ?? false
+                }
+            }
+        }
+
+        if isReturn {
+            goToNextResponderOrResign(textField)
+            return true
+        } else {
+            return goToNextResponderOrResign(textField)
+        }
+    }
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/ReturnKeyHandler/IQKeyboardReturnKeyHandler+TextViewDelegate.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/ReturnKeyHandler/IQKeyboardReturnKeyHandler+TextViewDelegate.swift
new file mode 100644 (file)
index 0000000..3a799dc
--- /dev/null
@@ -0,0 +1,349 @@
+//
+//  IQKeyboardReturnKeyHandler+TextViewDelegate.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import UIKit
+
+// MARK: UITextViewDelegate
+@available(iOSApplicationExtension, unavailable)
+extension IQKeyboardReturnKeyHandler: UITextViewDelegate {
+
+    @objc public func textViewShouldBeginEditing(_ textView: UITextView) -> Bool {
+
+        if delegate == nil {
+
+            if let unwrapDelegate: any UITextViewDelegate = textFieldViewCachedInfo(textView)?.textViewDelegate {
+                if unwrapDelegate.responds(to: #selector((any UITextViewDelegate).textViewShouldBeginEditing(_:))) {
+                    return unwrapDelegate.textViewShouldBeginEditing?(textView) ?? false
+                }
+            }
+        }
+
+        return true
+    }
+
+    @objc public func textViewShouldEndEditing(_ textView: UITextView) -> Bool {
+
+        if delegate == nil {
+
+            if let unwrapDelegate: any UITextViewDelegate = textFieldViewCachedInfo(textView)?.textViewDelegate {
+                if unwrapDelegate.responds(to: #selector((any UITextViewDelegate).textViewShouldEndEditing(_:))) {
+                    return unwrapDelegate.textViewShouldEndEditing?(textView) ?? false
+                }
+            }
+        }
+
+        return true
+    }
+
+    @objc public func textViewDidBeginEditing(_ textView: UITextView) {
+        updateReturnKeyTypeOnTextField(textView)
+
+        var aDelegate: (any UITextViewDelegate)? = delegate
+
+        if aDelegate == nil {
+
+            if let model: IQTextFieldViewInfoModel = textFieldViewCachedInfo(textView) {
+                aDelegate = model.textViewDelegate
+            }
+        }
+
+        aDelegate?.textViewDidBeginEditing?(textView)
+    }
+
+    @objc public func textViewDidEndEditing(_ textView: UITextView) {
+
+        var aDelegate: (any UITextViewDelegate)? = delegate
+
+        if aDelegate == nil {
+
+            if let model: IQTextFieldViewInfoModel = textFieldViewCachedInfo(textView) {
+                aDelegate = model.textViewDelegate
+            }
+        }
+
+        aDelegate?.textViewDidEndEditing?(textView)
+    }
+
+    @objc public func textView(_ textView: UITextView,
+                               shouldChangeTextIn range: NSRange,
+                               replacementText text: String) -> Bool {
+
+        var isReturn = true
+
+        if delegate == nil {
+
+            if let unwrapDelegate: any UITextViewDelegate = textFieldViewCachedInfo(textView)?.textViewDelegate {
+                let selector = #selector((any UITextViewDelegate).textView(_:shouldChangeTextIn:replacementText:))
+                if unwrapDelegate.responds(to: selector) {
+                    isReturn = (unwrapDelegate.textView?(textView,
+                                                         shouldChangeTextIn: range,
+                                                         replacementText: text)) ?? false
+                }
+            }
+        }
+
+        if isReturn, text == "\n" {
+            isReturn = goToNextResponderOrResign(textView)
+        }
+
+        return isReturn
+    }
+
+    @objc public func textViewDidChange(_ textView: UITextView) {
+
+        var aDelegate: (any UITextViewDelegate)? = delegate
+
+        if aDelegate == nil {
+
+            if let model: IQTextFieldViewInfoModel = textFieldViewCachedInfo(textView) {
+                aDelegate = model.textViewDelegate
+            }
+        }
+
+        aDelegate?.textViewDidChange?(textView)
+    }
+
+    @objc public func textViewDidChangeSelection(_ textView: UITextView) {
+
+        var aDelegate: (any UITextViewDelegate)? = delegate
+
+        if aDelegate == nil {
+
+            if let model: IQTextFieldViewInfoModel = textFieldViewCachedInfo(textView) {
+                aDelegate = model.textViewDelegate
+            }
+        }
+
+        aDelegate?.textViewDidChangeSelection?(textView)
+    }
+
+    @objc public func textView(_ aTextView: UITextView,
+                               shouldInteractWith URL: URL,
+                               in characterRange: NSRange,
+                               interaction: UITextItemInteraction) -> Bool {
+
+        if delegate == nil {
+
+            if let unwrapDelegate: any UITextViewDelegate = textFieldViewCachedInfo(aTextView)?.textViewDelegate {
+                let selector: Selector = #selector(textView as
+                                                   (UITextView, URL, NSRange, UITextItemInteraction) -> Bool)
+                if unwrapDelegate.responds(to: selector) {
+                    return unwrapDelegate.textView?(aTextView,
+                                                    shouldInteractWith: URL,
+                                                    in: characterRange,
+                                                    interaction: interaction) ?? false
+                }
+            }
+        }
+
+        return true
+    }
+
+    @objc public func textView(_ aTextView: UITextView,
+                               shouldInteractWith textAttachment: NSTextAttachment,
+                               in characterRange: NSRange,
+                               interaction: UITextItemInteraction) -> Bool {
+
+        if delegate == nil {
+
+            if let unwrapDelegate: any UITextViewDelegate = textFieldViewCachedInfo(aTextView)?.textViewDelegate {
+                let selector: Selector = #selector(textView as
+                                                   (UITextView, NSTextAttachment, NSRange, UITextItemInteraction)
+                                                   -> Bool)
+                if unwrapDelegate.responds(to: selector) {
+                    return unwrapDelegate.textView?(aTextView,
+                                                    shouldInteractWith: textAttachment,
+                                                    in: characterRange,
+                                                    interaction: interaction) ?? false
+                }
+            }
+        }
+
+        return true
+    }
+
+    @available(iOS, deprecated: 10.0)
+    @objc public func textView(_ aTextView: UITextView,
+                               shouldInteractWith URL: URL,
+                               in characterRange: NSRange) -> Bool {
+
+        if delegate == nil {
+
+            if let unwrapDelegate: any UITextViewDelegate = textFieldViewCachedInfo(aTextView)?.textViewDelegate {
+                if unwrapDelegate.responds(to: #selector(textView as (UITextView, URL, NSRange) -> Bool)) {
+                    return unwrapDelegate.textView?(aTextView,
+                                                    shouldInteractWith: URL,
+                                                    in: characterRange) ?? false
+                }
+            }
+        }
+
+        return true
+    }
+
+    @available(iOS, deprecated: 10.0)
+    @objc public func textView(_ aTextView: UITextView,
+                               shouldInteractWith textAttachment: NSTextAttachment,
+                               in characterRange: NSRange) -> Bool {
+
+        if delegate == nil {
+
+            if let unwrapDelegate: any UITextViewDelegate = textFieldViewCachedInfo(aTextView)?.textViewDelegate {
+                if unwrapDelegate.responds(to: #selector(textView as (UITextView, NSTextAttachment, NSRange) -> Bool)) {
+                    return unwrapDelegate.textView?(aTextView,
+                                                    shouldInteractWith: textAttachment,
+                                                    in: characterRange) ?? false
+                }
+            }
+        }
+
+        return true
+    }
+}
+
+#if swift(>=5.7)
+@available(iOS 16.0, *)
+@available(iOSApplicationExtension, unavailable)
+extension IQKeyboardReturnKeyHandler {
+    public func textView(_ aTextView: UITextView,
+                         editMenuForTextIn range: NSRange,
+                         suggestedActions: [UIMenuElement]) -> UIMenu? {
+        if delegate == nil {
+
+            if let unwrapDelegate: any UITextViewDelegate = textFieldViewCachedInfo(aTextView)?.textViewDelegate {
+
+                let selector: Selector = #selector(textView as
+                                                   (UITextView, NSRange, [UIMenuElement]) -> UIMenu?)
+                if unwrapDelegate.responds(to: selector) {
+                    return unwrapDelegate.textView?(aTextView,
+                                                    editMenuForTextIn: range,
+                                                    suggestedActions: suggestedActions)
+                }
+            }
+        }
+
+        return nil
+    }
+
+    public func textView(_ aTextView: UITextView,
+                         willPresentEditMenuWith animator: any UIEditMenuInteractionAnimating) {
+        var aDelegate: (any UITextViewDelegate)? = delegate
+
+        if aDelegate == nil {
+
+            if let model: IQTextFieldViewInfoModel = textFieldViewCachedInfo(aTextView) {
+                aDelegate = model.textViewDelegate
+            }
+        }
+
+        aDelegate?.textView?(aTextView, willPresentEditMenuWith: animator)
+    }
+
+    public func textView(_ aTextView: UITextView,
+                         willDismissEditMenuWith animator: any UIEditMenuInteractionAnimating) {
+        var aDelegate: (any UITextViewDelegate)? = delegate
+
+        if aDelegate == nil {
+
+            if let model: IQTextFieldViewInfoModel = textFieldViewCachedInfo(aTextView) {
+                aDelegate = model.textViewDelegate
+            }
+        }
+
+        aDelegate?.textView?(aTextView, willDismissEditMenuWith: animator)
+    }
+}
+#endif
+
+#if swift(>=5.9)
+@available(iOS 17.0, *)
+@available(iOSApplicationExtension, unavailable)
+extension IQKeyboardReturnKeyHandler {
+
+    public func textView(_ aTextView: UITextView,
+                         primaryActionFor textItem: UITextItem,
+                         defaultAction: UIAction) -> UIAction? {
+        if delegate == nil {
+
+            if let unwrapDelegate = textFieldViewCachedInfo(aTextView)?.textViewDelegate {
+                if unwrapDelegate.responds(to: #selector(textView as (UITextView, UITextItem, UIAction) -> UIAction?)) {
+                    return unwrapDelegate.textView?(aTextView,
+                                                    primaryActionFor: textItem,
+                                                    defaultAction: defaultAction)
+                }
+            }
+        }
+
+        return nil
+    }
+
+    public func textView(_ aTextView: UITextView,
+                         menuConfigurationFor textItem: UITextItem,
+                         defaultMenu: UIMenu) -> UITextItem.MenuConfiguration? {
+        if delegate == nil {
+
+            if let unwrapDelegate = textFieldViewCachedInfo(aTextView)?.textViewDelegate {
+                let selector: Selector = #selector(textView as (UITextView, UITextItem, UIMenu)
+                                                   -> UITextItem.MenuConfiguration?)
+                if unwrapDelegate.responds(to: selector) {
+                    return unwrapDelegate.textView?(aTextView,
+                                                    menuConfigurationFor: textItem,
+                                                    defaultMenu: defaultMenu)
+                }
+            }
+        }
+
+        return nil
+    }
+
+    public func textView(_ textView: UITextView,
+                         textItemMenuWillDisplayFor textItem: UITextItem,
+                         animator: any UIContextMenuInteractionAnimating) {
+        var aDelegate: (any UITextViewDelegate)? = delegate
+
+        if aDelegate == nil {
+
+            if let model = textFieldViewCachedInfo(textView) {
+                aDelegate = model.textViewDelegate
+            }
+        }
+
+        aDelegate?.textView?(textView, textItemMenuWillDisplayFor: textItem, animator: animator)
+    }
+
+    public func textView(_ textView: UITextView,
+                         textItemMenuWillEndFor textItem: UITextItem,
+                         animator: any UIContextMenuInteractionAnimating) {
+        var aDelegate: (any UITextViewDelegate)? = delegate
+
+        if aDelegate == nil {
+
+            if let model = textFieldViewCachedInfo(textView) {
+                aDelegate = model.textViewDelegate
+            }
+        }
+
+        aDelegate?.textView?(textView, textItemMenuWillEndFor: textItem, animator: animator)
+    }
+}
+#endif
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/ReturnKeyHandler/IQKeyboardReturnKeyHandler.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/ReturnKeyHandler/IQKeyboardReturnKeyHandler.swift
new file mode 100644 (file)
index 0000000..a2f5d9e
--- /dev/null
@@ -0,0 +1,261 @@
+//
+//  IQKeyboardReturnKeyHandler.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import UIKit
+
+/**
+Manages the return key to work like next/done in a view hierarchy.
+*/
+@available(iOSApplicationExtension, unavailable)
+@MainActor
+@objc public final class IQKeyboardReturnKeyHandler: NSObject {
+
+    // MARK: Settings
+
+    /**
+    Delegate of textField/textView.
+    */
+    @objc public weak var delegate: (any UITextFieldDelegate & UITextViewDelegate)?
+
+    /**
+    Set the last textfield return key type. Default is UIReturnKeyDefault.
+    */
+    @objc public var lastTextFieldReturnKeyType: UIReturnKeyType = UIReturnKeyType.default {
+
+        didSet {
+            for model in textFieldInfoCache {
+                if let view: UIView = model.textFieldView {
+                    updateReturnKeyTypeOnTextField(view)
+                }
+            }
+        }
+    }
+
+    // MARK: Initialization/De-initialization
+
+    @objc public override init() {
+        super.init()
+    }
+
+    /**
+    Add all the textFields available in UIViewController's view.
+    */
+    @objc public init(controller: UIViewController) {
+        super.init()
+
+        addResponderFromView(controller.view)
+    }
+
+    deinit {
+
+//        for model in textFieldInfoCache {
+//            model.restore()
+//        }
+
+        textFieldInfoCache.removeAll()
+    }
+
+    // MARK: Private variables
+    private var textFieldInfoCache: [IQTextFieldViewInfoModel] = []
+
+    // MARK: Private Functions
+    internal func textFieldViewCachedInfo(_ textField: UIView) -> IQTextFieldViewInfoModel? {
+
+        for model in textFieldInfoCache {
+
+            if let view: UIView = model.textFieldView {
+                if view == textField {
+                    return model
+                }
+            }
+        }
+
+        return nil
+    }
+
+    internal func updateReturnKeyTypeOnTextField(_ view: UIView) {
+        var superConsideredView: UIView?
+
+        // If find any consider responderView in it's upper hierarchy then will get deepResponderView. (Bug ID: #347)
+        for allowedClasse in IQKeyboardManager.shared.toolbarPreviousNextAllowedClasses {
+
+            superConsideredView = view.iq.superviewOf(type: allowedClasse)
+
+            if superConsideredView != nil {
+                break
+            }
+        }
+
+        var textFields: [UIView] = []
+
+        // If there is a tableView in view's hierarchy, then fetching all it's subview that responds.
+        if let unwrappedTableView: UIView = superConsideredView {     //   (Enhancement ID: #22)
+            textFields = unwrappedTableView.iq.deepResponderViews()
+        } else {  // Otherwise fetching all the siblings
+
+            textFields = view.iq.responderSiblings()
+
+            // Sorting textFields according to behavior
+            switch IQKeyboardManager.shared.toolbarConfiguration.manageBehavior {
+                // If needs to sort it by tag
+            case .byTag:        textFields = textFields.sortedByTag()
+                // If needs to sort it by Position
+            case .byPosition:   textFields = textFields.sortedByPosition()
+            default:    break
+            }
+        }
+
+        if let lastView: UIView = textFields.last {
+
+            if let textField: UITextField = view as? UITextField {
+
+                // If it's the last textField in responder view, else next
+                textField.returnKeyType = (view == lastView)    ?   lastTextFieldReturnKeyType: UIReturnKeyType.next
+            } else if let textView: UITextView = view as? UITextView {
+
+                // If it's the last textField in responder view, else next
+                textView.returnKeyType = (view == lastView)    ?   lastTextFieldReturnKeyType: UIReturnKeyType.next
+            }
+        }
+    }
+
+    // MARK: Registering/Unregistering textFieldView
+
+    /**
+    Should pass UITextField/UITextView instance. Assign textFieldView delegate to self, change it's returnKeyType.
+
+    @param view UITextField/UITextView object to register.
+    */
+    @objc public func addTextFieldView(_ view: UIView) {
+
+        if let textField: UITextField = view as? UITextField {
+            let model = IQTextFieldViewInfoModel(textField: textField)
+            textFieldInfoCache.append(model)
+            textField.delegate = self
+
+        } else if let textView: UITextView = view as? UITextView {
+            let model = IQTextFieldViewInfoModel(textView: textView)
+            textFieldInfoCache.append(model)
+            textView.delegate = self
+        }
+    }
+
+    /**
+    Should pass UITextField/UITextView instance. Restore it's textFieldView delegate and it's returnKeyType.
+    
+    @param view UITextField/UITextView object to unregister.
+    */
+    @objc public func removeTextFieldView(_ view: UIView) {
+
+        if let model: IQTextFieldViewInfoModel = textFieldViewCachedInfo(view) {
+            model.restore()
+
+            if let index: Int = textFieldInfoCache.firstIndex(where: { $0.textFieldView == view}) {
+                textFieldInfoCache.remove(at: index)
+            }
+        }
+    }
+
+    /**
+    Add all the UITextField/UITextView responderView's.
+    
+    @param view UIView object to register all it's responder subviews.
+    */
+    @objc public func addResponderFromView(_ view: UIView) {
+
+        let textFields: [UIView] = view.iq.deepResponderViews()
+
+        for textField in textFields {
+
+            addTextFieldView(textField)
+        }
+    }
+
+    /**
+    Remove all the UITextField/UITextView responderView's.
+    
+    @param view UIView object to unregister all it's responder subviews.
+    */
+    @objc public func removeResponderFromView(_ view: UIView) {
+
+        let textFields: [UIView] = view.iq.deepResponderViews()
+
+        for textField in textFields {
+
+            removeTextFieldView(textField)
+        }
+    }
+
+    @discardableResult
+    internal func goToNextResponderOrResign(_ view: UIView) -> Bool {
+
+        var superConsideredView: UIView?
+
+        // If find any consider responderView in it's upper hierarchy then will get deepResponderView. (Bug ID: #347)
+        for allowedClass in IQKeyboardManager.shared.toolbarPreviousNextAllowedClasses {
+
+            superConsideredView = view.iq.superviewOf(type: allowedClass)
+
+            if superConsideredView != nil {
+                break
+            }
+        }
+
+        var textFields: [UIView] = []
+
+        // If there is a tableView in view's hierarchy, then fetching all it's subview that responds.
+        if let unwrappedTableView: UIView = superConsideredView {     //   (Enhancement ID: #22)
+            textFields = unwrappedTableView.iq.deepResponderViews()
+        } else {  // Otherwise fetching all the siblings
+
+            textFields = view.iq.responderSiblings()
+
+            // Sorting textFields according to behavior
+            switch IQKeyboardManager.shared.toolbarConfiguration.manageBehavior {
+                // If needs to sort it by tag
+            case .byTag:        textFields = textFields.sortedByTag()
+                // If needs to sort it by Position
+            case .byPosition:   textFields = textFields.sortedByPosition()
+            default:
+                break
+            }
+        }
+
+        //  Getting index of current textField.
+        if let index: Int = textFields.firstIndex(of: view) {
+            //  If it is not last textField. then it's next object becomeFirstResponder.
+            if index < (textFields.count - 1) {
+
+                let nextTextField: UIView = textFields[index+1]
+                nextTextField.becomeFirstResponder()
+                return false
+            } else {
+
+                view.resignFirstResponder()
+                return true
+            }
+        } else {
+            return true
+        }
+    }
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/ReturnKeyHandler/IQTextFieldViewInfoModel.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/ReturnKeyHandler/IQTextFieldViewInfoModel.swift
new file mode 100644 (file)
index 0000000..619cc52
--- /dev/null
@@ -0,0 +1,56 @@
+//
+//  IQTextFieldViewInfoModel.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import UIKit
+
+@available(iOSApplicationExtension, unavailable)
+@MainActor
+internal final class IQTextFieldViewInfoModel: NSObject {
+
+    weak var textFieldDelegate: (any UITextFieldDelegate)?
+    weak var textViewDelegate: (any UITextViewDelegate)?
+    weak var textFieldView: UIView?
+    let originalReturnKeyType: UIReturnKeyType
+
+    init(textField: UITextField) {
+        self.textFieldView = textField
+        self.textFieldDelegate = textField.delegate
+        self.originalReturnKeyType = textField.returnKeyType
+    }
+
+    init(textView: UITextView) {
+        self.textFieldView = textView
+        self.textViewDelegate = textView.delegate
+        self.originalReturnKeyType = textView.returnKeyType
+    }
+
+    func restore() {
+        if let textField = textFieldView as? UITextField {
+            textField.returnKeyType = originalReturnKeyType
+            textField.delegate = textFieldDelegate
+        } else if let textView = textFieldView as? UITextView {
+            textView.returnKeyType = originalReturnKeyType
+            textView.delegate = textViewDelegate
+        }
+    }
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/UIKitExtensions/IQNSArray+Sort.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/UIKitExtensions/IQNSArray+Sort.swift
new file mode 100644 (file)
index 0000000..24c542a
--- /dev/null
@@ -0,0 +1,57 @@
+//
+//  IQNSArray+Sort.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import UIKit
+
+/**
+UIView.subviews sorting category.
+*/
+@available(iOSApplicationExtension, unavailable)
+@MainActor
+internal extension Array where Element: UIView {
+
+    /**
+    Returns the array by sorting the UIView's by their tag property.
+    */
+    func sortedByTag() -> [Element] {
+
+        return sorted(by: { (obj1: Element, obj2: Element) -> Bool in
+
+            return (obj1.tag < obj2.tag)
+        })
+    }
+
+    /**
+    Returns the array by sorting the UIView's by their tag property.
+    */
+    func sortedByPosition() -> [Element] {
+
+        return sorted(by: { (obj1: Element, obj2: Element) -> Bool in
+            if obj1.frame.minY != obj2.frame.minY {
+                return obj1.frame.minY < obj2.frame.minY
+            } else {
+                return obj1.frame.minX < obj2.frame.minX
+            }
+        })
+    }
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/UIKitExtensions/IQUICollectionView+Additions.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/UIKitExtensions/IQUICollectionView+Additions.swift
new file mode 100644 (file)
index 0000000..7da92ea
--- /dev/null
@@ -0,0 +1,48 @@
+//
+//  IQUICollectionView+Additions.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import UIKit
+
+@available(iOSApplicationExtension, unavailable)
+@MainActor
+internal extension UICollectionView {
+
+    func previousIndexPath(of indexPath: IndexPath) -> IndexPath? {
+        var previousRow: Int = indexPath.row - 1
+        var previousSection: Int = indexPath.section
+
+        // Fixing indexPath
+        if previousRow < 0 {
+            previousSection -= 1
+            if previousSection >= 0 {
+                previousRow = self.numberOfItems(inSection: previousSection) - 1
+            }
+        }
+
+        if previousRow >= 0, previousSection >= 0 {
+            return IndexPath(item: previousRow, section: previousSection)
+        } else {
+            return nil
+        }
+    }
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/UIKitExtensions/IQUIScrollView+Additions.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/UIKitExtensions/IQUIScrollView+Additions.swift
new file mode 100644 (file)
index 0000000..1798f45
--- /dev/null
@@ -0,0 +1,131 @@
+//
+//  IQUIScrollView+Additions.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import UIKit
+
+@available(iOSApplicationExtension, unavailable)
+@MainActor
+private struct AssociatedKeys {
+    static var ignoreScrollingAdjustment: Int = 0
+    static var ignoreContentInsetAdjustment: Int = 0
+    static var restoreContentOffset: Int = 0
+}
+
+// swiftlint:disable identifier_name
+// swiftlint:disable unused_setter_value
+@available(iOSApplicationExtension, unavailable)
+extension UIScrollView: IQKeyboardManagerCompatible {
+
+    // This property is explicitly written otherwise we were having
+    // compilation error when archiving
+    public var iq: IQKeyboardManagerWrapper<UIView> {
+        get { IQKeyboardManagerWrapper(self) }
+        set {}
+    }
+}
+// swiftlint:enable unused_setter_value
+// swiftlint:enable identifier_name
+
+@available(iOSApplicationExtension, unavailable)
+@MainActor
+public extension IQKeyboardManagerWrapper where Base: UIScrollView {
+
+    /**
+     If YES, then scrollview will ignore scrolling (simply not scroll it) for adjusting textfield position.
+     Default is NO.
+     */
+    var ignoreScrollingAdjustment: Bool {
+        get {
+            if let base = base {
+                return objc_getAssociatedObject(base, &AssociatedKeys.ignoreScrollingAdjustment) as? Bool ?? false
+            }
+            return false
+        }
+        set(newValue) {
+            if let base = base {
+                objc_setAssociatedObject(base, &AssociatedKeys.ignoreScrollingAdjustment,
+                                         newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
+            }
+        }
+    }
+
+    /**
+     If YES, then scrollview will ignore content inset adjustment (simply not updating it) when keyboard is shown.
+     Default is NO.
+     */
+    var ignoreContentInsetAdjustment: Bool {
+        get {
+            if let base = base {
+                return objc_getAssociatedObject(base, &AssociatedKeys.ignoreContentInsetAdjustment) as? Bool ?? false
+            }
+            return false
+        }
+        set(newValue) {
+            if let base = base {
+                objc_setAssociatedObject(base, &AssociatedKeys.ignoreContentInsetAdjustment,
+                                         newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
+            }
+        }
+    }
+
+    /**
+     To set customized distance from keyboard for textField/textView. Can't be less than zero
+     */
+    var restoreContentOffset: Bool {
+        get {
+            if let base = base {
+                return objc_getAssociatedObject(base, &AssociatedKeys.restoreContentOffset) as? Bool ?? false
+            }
+            return false
+        }
+        set(newValue) {
+            if let base = base {
+                objc_setAssociatedObject(base, &AssociatedKeys.restoreContentOffset,
+                                         newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
+            }
+        }
+    }
+}
+
+// swiftlint:disable unused_setter_value
+@available(iOSApplicationExtension, unavailable)
+@objc public extension UIScrollView {
+    @available(*, unavailable, renamed: "iq.ignoreScrollingAdjustment")
+    var shouldIgnoreScrollingAdjustment: Bool {
+        get { false }
+        set { }
+    }
+
+    @available(*, unavailable, renamed: "iq.ignoreContentInsetAdjustment")
+    var shouldIgnoreContentInsetAdjustment: Bool {
+        get { false }
+        set { }
+    }
+
+    @available(*, unavailable, renamed: "iq.restoreContentOffset")
+    var shouldRestoreScrollViewContentOffset: Bool {
+        get { false }
+        set { }
+    }
+}
+// swiftlint:enable unused_setter_value
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/UIKitExtensions/IQUITableView+Additions.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/UIKitExtensions/IQUITableView+Additions.swift
new file mode 100644 (file)
index 0000000..022a94d
--- /dev/null
@@ -0,0 +1,48 @@
+//
+//  IQUITableView+Additions.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import UIKit
+
+@available(iOSApplicationExtension, unavailable)
+@MainActor
+internal extension UITableView {
+
+    func previousIndexPath(of indexPath: IndexPath) -> IndexPath? {
+        var previousRow: Int = indexPath.row - 1
+        var previousSection: Int = indexPath.section
+
+        // Fixing indexPath
+        if previousRow < 0 {
+            previousSection -= 1
+            if previousSection >= 0 {
+                previousRow = self.numberOfRows(inSection: previousSection) - 1
+            }
+        }
+
+        if previousRow >= 0, previousSection >= 0 {
+            return IndexPath(row: previousRow, section: previousSection)
+        } else {
+            return nil
+        }
+    }
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/UIKitExtensions/IQUITextFieldView+Additions.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/UIKitExtensions/IQUITextFieldView+Additions.swift
new file mode 100644 (file)
index 0000000..6613743
--- /dev/null
@@ -0,0 +1,155 @@
+//
+//  IQUITextFieldView+Additions.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import UIKit
+
+@available(iOSApplicationExtension, unavailable)
+@MainActor
+private struct AssociatedKeys {
+    static var distanceFromKeyboard: Int = 0
+    static var ignoreSwitchingByNextPrevious: Int = 0
+    static var enableMode: Int = 0
+    static var resignOnTouchOutsideMode: Int = 0
+}
+
+@available(iOSApplicationExtension, unavailable)
+extension UIView: IQKeyboardManagerCompatible {
+
+    public static let defaultKeyboardDistance: CGFloat = CGFloat.greatestFiniteMagnitude
+}
+
+@available(iOSApplicationExtension, unavailable)
+@available(*, unavailable, renamed: "UIView.defaultKeyboardDistance")
+public let kIQUseDefaultKeyboardDistance = CGFloat.greatestFiniteMagnitude
+
+/**
+UIView category for managing UITextField/UITextView
+*/
+@available(iOSApplicationExtension, unavailable)
+@MainActor
+public extension IQKeyboardManagerWrapper where Base: UIView {
+
+    /**
+     To set customized distance from keyboard for textField/textView. Can't be less than zero
+     */
+    var distanceFromKeyboard: CGFloat {
+        get {
+            if let base = base {
+                if let value = objc_getAssociatedObject(base, &AssociatedKeys.distanceFromKeyboard) as? CGFloat {
+                    return value
+                }
+            }
+            return UIView.defaultKeyboardDistance
+        }
+        set(newValue) {
+            if let base = base {
+                objc_setAssociatedObject(base, &AssociatedKeys.distanceFromKeyboard,
+                                         newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
+            }
+        }
+    }
+
+    /**
+     If ignoreSwitchingByNextPrevious is true then library will ignore this textField/textView
+     while moving to other textField/textView using keyboard toolbar next previous buttons.
+     Default is false
+     */
+    var ignoreSwitchingByNextPrevious: Bool {
+        get {
+            if let base = base {
+                return objc_getAssociatedObject(base, &AssociatedKeys.ignoreSwitchingByNextPrevious) as? Bool ?? false
+            }
+            return false
+        }
+        set(newValue) {
+            if let base = base {
+                objc_setAssociatedObject(base, &AssociatedKeys.ignoreSwitchingByNextPrevious,
+                                         newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
+            }
+        }
+    }
+
+    /**
+     Override Enable/disable managing distance between keyboard and textField behavior for this particular textField.
+     */
+    var enableMode: IQEnableMode {
+        get {
+            if let base = base {
+                return objc_getAssociatedObject(base, &AssociatedKeys.enableMode) as? IQEnableMode ?? .default
+            }
+            return .default
+        }
+        set(newValue) {
+            if let base = base {
+                objc_setAssociatedObject(base, &AssociatedKeys.enableMode, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
+            }
+        }
+    }
+
+    /**
+     Override resigns Keyboard on touching outside of UITextField/View behavior for this particular textField.
+     */
+    var resignOnTouchOutsideMode: IQEnableMode {
+        get {
+            guard let base = base else {
+                return .default
+            }
+            return objc_getAssociatedObject(base, &AssociatedKeys.resignOnTouchOutsideMode) as? IQEnableMode ?? .default
+        }
+        set(newValue) {
+            if let base = base {
+                objc_setAssociatedObject(base, &AssociatedKeys.resignOnTouchOutsideMode,
+                                         newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
+            }
+        }
+    }
+}
+
+// swiftlint:disable unused_setter_value
+@available(iOSApplicationExtension, unavailable)
+@objc public extension UIView {
+    @available(*, unavailable, renamed: "iq.distanceFromKeyboard")
+    var keyboardDistanceFromTextField: CGFloat {
+        get { 0 }
+        set { }
+    }
+
+    @available(*, unavailable, renamed: "iq.ignoreSwitchingByNextPrevious")
+    var ignoreSwitchingByNextPrevious: Bool {
+        get { false }
+        set { }
+    }
+
+    @available(*, unavailable, renamed: "iq.enableMode")
+    var enableMode: IQEnableMode {
+        get { .default }
+        set { }
+    }
+
+    @available(*, unavailable, renamed: "iq.resignOnTouchOutsideMode")
+    var shouldResignOnTouchOutsideMode: IQEnableMode {
+        get { .default }
+        set { }
+    }
+}
+// swiftlint:enable unused_setter_value
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/UIKitExtensions/IQUIView+Hierarchy.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/UIKitExtensions/IQUIView+Hierarchy.swift
new file mode 100644 (file)
index 0000000..6cea406
--- /dev/null
@@ -0,0 +1,356 @@
+//
+//  IQUIView+Hierarchy.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import UIKit
+
+/**
+UIView hierarchy category.
+*/
+
+@available(iOSApplicationExtension, unavailable)
+@MainActor
+public extension IQKeyboardManagerWrapper where Base: UIView {
+
+    // MARK: viewControllers
+
+    /**
+    Returns the UIViewController object that manages the receiver.
+    */
+    func viewContainingController() -> UIViewController? {
+
+        var nextResponder: UIResponder? = base
+
+        repeat {
+            nextResponder = nextResponder?.next
+
+            if let viewController: UIViewController = nextResponder as? UIViewController {
+                return viewController
+            }
+
+        } while nextResponder != nil
+
+        return nil
+    }
+
+    /**
+    Returns the topMost UIViewController object in hierarchy.
+    */
+    func topMostController() -> UIViewController? {
+
+        var controllersHierarchy: [UIViewController] = []
+
+        if var topController: UIViewController = base?.window?.rootViewController {
+            controllersHierarchy.append(topController)
+
+            while let presented: UIViewController = topController.presentedViewController {
+
+                topController = presented
+
+                controllersHierarchy.append(presented)
+            }
+
+            var matchController: UIResponder? = viewContainingController()
+
+            while let mController: UIViewController = matchController as? UIViewController,
+                    !controllersHierarchy.contains(mController) {
+
+                repeat {
+                    matchController = matchController?.next
+
+                } while matchController != nil && matchController is UIViewController == false
+            }
+
+            return matchController as? UIViewController
+
+        } else {
+            return viewContainingController()
+        }
+    }
+
+    /**
+     Returns the UIViewController object that is actually the parent of this object.
+     Most of the time it's the viewController object which actually contains it,
+     but result may be different if it's viewController is added as childViewController of another viewController.
+     */
+    func parentContainerViewController() -> UIViewController? {
+
+        var matchController: UIViewController? = viewContainingController()
+        var parentContainerViewController: UIViewController?
+
+        if var navController: UINavigationController = matchController?.navigationController {
+
+            while let parentNav: UINavigationController = navController.navigationController {
+                navController = parentNav
+            }
+
+            var parentController: UIViewController = navController
+
+            while let parent: UIViewController = parentController.parent,
+                  !(parent is UINavigationController) &&
+                   !(parent is UITabBarController) &&
+                   !(parent is UISplitViewController) {
+
+                        parentController = parent
+            }
+
+            if navController == parentController {
+                parentContainerViewController = navController.topViewController
+            } else {
+                parentContainerViewController = parentController
+            }
+        } else if let tabController: UITabBarController = matchController?.tabBarController {
+            let selectedController = tabController.selectedViewController
+            if let navController: UINavigationController = selectedController as? UINavigationController {
+                parentContainerViewController = navController.topViewController
+            } else {
+                parentContainerViewController = tabController.selectedViewController
+            }
+        } else {
+            while let parent: UIViewController = matchController?.parent,
+                  !(parent is UINavigationController) &&
+                   !(parent is UITabBarController) &&
+                   !(parent is UISplitViewController) {
+
+                        matchController = parent
+            }
+
+            parentContainerViewController = matchController
+        }
+
+        if let controller: UIViewController = parentContainerViewController?.iq_parentContainerViewController() {
+            return controller
+        } else {
+            return parentContainerViewController
+        }
+    }
+
+    // MARK: Superviews/Subviews/Siblings
+
+    /**
+    Returns the superView of provided class type.
+
+     
+     @param classType class type of the object which is to be search in above hierarchy and return
+     
+     @param belowView view object in upper hierarchy where method should stop searching and return nil
+*/
+    func superviewOf<T: UIView>(type classType: T.Type, belowView: UIView? = nil) -> T? {
+
+        var superView: UIView? = base?.superview
+
+        while let unwrappedSuperView: UIView = superView {
+
+            if unwrappedSuperView.isKind(of: classType) {
+
+                // If it's UIScrollView, then validating for special cases
+                if unwrappedSuperView is UIScrollView {
+
+                    let classNameString: String = "\(type(of: unwrappedSuperView.self))"
+
+                    // If it's not UITableViewWrapperView class,
+                    // this is internal class which is actually manage in UITableview.
+                    // The speciality of this class is that it's superview is UITableView.
+                    // If it's not UITableViewCellScrollView class, 
+                    // this is internal class which is actually manage in UITableviewCell.
+                    // The speciality of this class is that it's superview is UITableViewCell.
+                    // If it's not _UIQueuingScrollView class, 
+                    // actually we validate for _ prefix which usually used by Apple internal classes
+                    if !(unwrappedSuperView.superview is UITableView),
+                        !(unwrappedSuperView.superview is UITableViewCell),
+                        !classNameString.hasPrefix("_") {
+                        return superView as? T
+                    }
+                } else {
+                    return superView as? T
+                }
+            } else if unwrappedSuperView == belowView {
+                return nil
+            }
+
+            superView = unwrappedSuperView.superview
+        }
+
+        return nil
+    }
+}
+
+@available(iOSApplicationExtension, unavailable)
+@MainActor
+internal extension IQKeyboardManagerWrapper where Base: UIView {
+
+    /**
+    Returns all siblings of the receiver which canBecomeFirstResponder.
+    */
+    func responderSiblings() -> [UIView] {
+
+        // Array of (UITextField/UITextView's).
+        var tempTextFields: [UIView] = []
+
+        //    Getting all siblings
+        if let siblings: [UIView] = base?.superview?.subviews {
+            for textField in siblings {
+                if textField == base || !textField.iq.ignoreSwitchingByNextPrevious,
+                    textField.iq.canBecomeFirstResponder() {
+                    tempTextFields.append(textField)
+                }
+            }
+        }
+
+        return tempTextFields
+    }
+
+    /**
+    Returns all deep subViews of the receiver which canBecomeFirstResponder.
+    */
+    func deepResponderViews() -> [UIView] {
+
+        // Array of (UITextField/UITextView's).
+        var textfields: [UIView] = []
+
+        for textField in base?.subviews ?? [] {
+
+            if textField == base || !textField.iq.ignoreSwitchingByNextPrevious,
+               textField.iq.canBecomeFirstResponder() {
+                textfields.append(textField)
+            }
+            // Sometimes there are hidden or disabled views and textField inside them still recorded,
+            // so we added some more validations here (Bug ID: #458)
+            // Uncommented else (Bug ID: #625)
+            else if textField.subviews.count != 0,
+                    base?.isUserInteractionEnabled == true,
+                    base?.isHidden == false, base?.alpha != 0.0 {
+                for deepView in textField.iq.deepResponderViews() {
+                    textfields.append(deepView)
+                }
+            }
+        }
+
+        // subviews are returning in opposite order. Sorting according the frames 'y'.
+        return textfields.sorted(by: { (view1: UIView, view2: UIView) -> Bool in
+
+            let frame1: CGRect = view1.convert(view1.bounds, to: base)
+            let frame2: CGRect = view2.convert(view2.bounds, to: base)
+
+            if frame1.minY != frame2.minY {
+                return frame1.minY < frame2.minY
+            } else {
+                return frame1.minX < frame2.minX
+            }
+        })
+    }
+
+    private func canBecomeFirstResponder() -> Bool {
+
+        var canBecomeFirstResponder: Bool = false
+
+        if base?.conforms(to: (any UITextInput).self) == true {
+            //  Setting toolbar to keyboard.
+            if let textView: UITextView = base as? UITextView {
+                canBecomeFirstResponder = textView.isEditable
+            } else if let textField: UITextField = base as? UITextField {
+                canBecomeFirstResponder = textField.isEnabled
+            }
+        }
+
+        if canBecomeFirstResponder {
+            canBecomeFirstResponder = base?.isUserInteractionEnabled == true &&
+            base?.isHidden == false &&
+            base?.alpha != 0.0 &&
+            !isAlertViewTextField() &&
+            textFieldSearchBar() == nil
+        }
+
+        return canBecomeFirstResponder
+    }
+
+    // MARK: Special TextFields
+
+    /**
+     Returns searchBar if receiver object is UISearchBarTextField, otherwise return nil.
+    */
+    func textFieldSearchBar() -> UISearchBar? {
+
+        var responder: UIResponder? = base?.next
+
+        while let bar: UIResponder = responder {
+
+            if let searchBar: UISearchBar = bar as? UISearchBar {
+                return searchBar
+            } else if bar is UIViewController {
+                break
+            }
+
+            responder = bar.next
+        }
+
+        return nil
+    }
+
+    /**
+    Returns YES if the receiver object is UIAlertSheetTextField, otherwise return NO.
+    */
+    func isAlertViewTextField() -> Bool {
+
+        var alertViewController: UIResponder? = viewContainingController()
+
+        var isAlertViewTextField: Bool = false
+
+        while let controller: UIResponder = alertViewController, !isAlertViewTextField {
+
+            if controller is UIAlertController {
+                isAlertViewTextField = true
+                break
+            }
+
+            alertViewController = controller.next
+        }
+
+        return isAlertViewTextField
+    }
+
+    func depth() -> Int {
+        var depth: Int = 0
+
+        if let superView: UIView = base?.superview {
+            depth = superView.iq.depth()+1
+        }
+
+        return depth
+    }
+}
+
+@available(iOSApplicationExtension, unavailable)
+@objc public extension UIView {
+
+    @available(*, unavailable, renamed: "iq.viewContainingController()")
+    func viewContainingController() -> UIViewController? { nil }
+
+    @available(*, unavailable, renamed: "iq.topMostController()")
+    func topMostController() -> UIViewController? { nil }
+
+    @available(*, unavailable, renamed: "iq.parentContainerViewController()")
+    func parentContainerViewController() -> UIViewController? { nil }
+
+    @available(*, unavailable, renamed: "iq.superviewOf(type:belowView:)")
+    func superviewOfClassType(_ classType: UIView.Type, belowView: UIView? = nil) -> UIView? { nil }
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/UIKitExtensions/IQUIViewController+Additions.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/UIKitExtensions/IQUIViewController+Additions.swift
new file mode 100644 (file)
index 0000000..7bd0792
--- /dev/null
@@ -0,0 +1,48 @@
+//
+//  IQUIViewController+Additions.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import UIKit
+
+@available(iOSApplicationExtension, unavailable)
+@MainActor
+@objc extension UIViewController {
+
+    /**
+     This method is provided to override by viewController's
+     if the library lifts a viewController which you doesn't want to lift.
+     This may happen if you have implemented side menu feature
+     in your app and the library try to lift the side menu controller.
+     Overriding this method in side menu class to return correct controller should fix the problem.
+    */
+    open func iq_parentContainerViewController() -> UIViewController? {
+        return self
+    }
+}
+
+@available(iOSApplicationExtension, unavailable)
+@objc extension UIViewController {
+    @available(*, unavailable, renamed: "iq_parentContainerViewController()")
+    open func parentIQContainerViewController() -> UIViewController? {
+        return self
+    }
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/UIKitExtensions/MainActor+AssumeIsolated.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/UIKitExtensions/MainActor+AssumeIsolated.swift
new file mode 100644 (file)
index 0000000..b32650c
--- /dev/null
@@ -0,0 +1,44 @@
+//
+//  MainActor+AssumeIsolated.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import Foundation
+
+extension MainActor {
+    // https://forums.swift.org/t/replacement-for-mainactor-unsafe/65956/2
+    @_unavailableFromAsync
+    static func assumeIsolatedBackDeployed<T: Sendable>(_ body: @MainActor () throws -> T) rethrows -> T {
+#if swift(>=6)  // Xcode 16
+        if #available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) {
+            return try assumeIsolated(body)
+        }
+#elseif swift(>=5.9)  // Xcode 15
+        if #available(macOS 14.0, iOS 17.0, watchOS 10.0, tvOS 17.0, *) {
+            return try assumeIsolated(body)
+        }
+#endif
+        dispatchPrecondition(condition: .onQueue(.main))
+        return try withoutActuallyEscaping(body) { function in
+            try unsafeBitCast(function, to: (() throws -> T).self)()
+        }
+    }
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/UIKitExtensions/UIImage+NextPrevious.swift b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/UIKitExtensions/UIImage+NextPrevious.swift
new file mode 100644 (file)
index 0000000..fe1d1a1
--- /dev/null
@@ -0,0 +1,60 @@
+//
+//  UIImage+NextPrevious.swift
+//  https://github.com/hackiftekhar/IQKeyboardManager
+//  Copyright (c) 2013-24 Iftekhar Qurashi.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import UIKit
+
+/**
+ UIImage category methods to get next/prev images
+ */
+@available(iOSApplicationExtension, unavailable)
+@objc public extension UIImage {
+
+    static let keyboardPreviousImage: UIImage = {
+        // swiftlint:disable line_length
+        let base64Data: String = "iVBORw0KGgoAAAANSUhEUgAAAD8AAAAkCAYAAAA+TuKHAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAABWWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyI+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgpMwidZAAAGmklEQVRoBd1ZWWwbRRie2bVz27s2adPGxzqxqAQCIRA3CDVJGxpKaEtRoSAVISQQggdeQIIHeIAHkOCBFyQeKlARhaYHvUJa0ksVoIgKUKFqKWqdeG2nR1Lsdeo0h73D54iku7NO6ySOk3alyPN//+zM/81/7MyEkDl66j2eJXWK8vocTT82rTgXk/t8vqBNEI9QSp9zOeVkPJnomgs7ik5eUZQ6OxGOEEq9WcKUksdlWbqU0LRfi70ARSXv8Xi8dkE8CsJ+I1FK6BNYgCgW4A8jPtvtopFHqNeWCLbDIF6fkxQjK91O1z9IgRM59bMAFoV8YEFgka1EyBJfMhkH5L9ACFstS9IpRMDJyfoVEp918sGamoVCme0QyN3GG87wAKcTOBYA4hrJKf+VSCb+nsBnqYHVnr2ntra2mpWWH0BVu52fhRH2XSZDmsA/xensokC21Pv9T3J4wcWrq17gob1er7tEhMcJuYsfGoS3hdTweuBpxaM0iCJph8fLuX7DJMPWnI2GOzi8YOKseD4gB+RSQezMRRx5vRPEn88Sz7IIx8KHgT3FCBniWJUyke6o8/uXc3jBxIKTd7vdTsFJfkSo38NbCY/vPRsOPwt81KgLqeoBXc+sBjZsxLF4ZfgM7goqSqMRL1S7oOSrq6sdLodjH0rYfbyByPEOePwZ4CO8Liv3RCL70Wctr8+mA2NkT53P91iu92aCFYx8TU1NpbOi8gfs2R7iDYLxnXqYPg3c5Fm+Xygcbs/omXXATZGBBagQqNAe9Psf4d+ZiVwQ8qjqFVVl5dmi9ShvDEL90IieXtVDevic5ruOyYiAXYiA9YSxsZow0YnSKkKFjoAn8OAENsPGjKs9qnp5iSDuBXFLXsLjR4fSIy29vb2DU7UThW4d8n0zxjXtRVAYNaJnlocikWNTHZPvP1PPl2LLujM3cfbzwJXUyukQzxrZraptRCcbEDm60Wh4S0IE7McByVJQjf3yac+EfEm9ouxAcWu2TsS6koOplr6+vstWXf5IKBrejBR4ybIAlLpE1JE6j8eyh8h/dEKmS95e7w9sy57G+MkQ6sdYMrmiv79/gNdNR0YEbGKUvIIFQMRffRBtbkG0HQj6fHdcRafWmg55Gzy+BR5vtUzF2O96kjSH4nHNopsB0B0Ob6SEvcYvAPYS1UwQDyqLFcu5IZ/pTMUkjxfEoD/wLVY9+z02PXDL8RE9s0y9qMZNigIJcU37TZblfj7aUAMqURLXuqqq9sQHBi5NZbqpkBfh8a9BPLtDMz3wyImh9GhTLBab0uSmQfIQcNQ95pJkDVG3wtgdC1KFA+HaSodjdzKZ/Neou1Y7X/JC0K98BeIvWAdjp+jwUKN6/nyfVVd4JK4lunDrkwJhc6Gl1GGjwhqnLO3UNC2Rz8z5kKfw+EYQf5EfEKF+Wh+kDd0XYxd43WzKiIBfEAEjiIAm0zyUSFiU1XJF+feJy5evW3euR57C41+A+MumSbICY2dGmd6gnlPPWXRFABABP7llCXsA2mCcDjVAJoK4qryycsfAwEDSqOPb1yQPj38O4q/yL4F4aCiTXhqNRmMWXREBFMGjslOywUbToQeyyy4IrVVO53bUgEk/uZOSr/MHPsOd0hs8F4R6mI2ONKi9vRFeNxdyIqkddknOMhA2nyuy+wAqtEol8rbEYCLnZisneXj8UxB/00KGkUiGsqU90WiPRTeHACLgoNsp4eBDHzaagRS4RbCzle6ysq3xVIq/LiMW8ti5fYRVfMs4yFibsdgI05eqqhqy6OYBEE9qnSiCLhRB7tRHFzDR1oIasBU1wHTAMpHHjcmHIP4OzwXf8XMkk24IR6NneN18klEE97mc0gJwuN9oF+SFNlF8vNJR1YYacGVcN0Eet6XvY6Pw3rhi/Bc5fiEzShp7eiOnx7H5/IsI6EAELEIE3Gu0EymwyCbQZocktWEfMHa3MEa+zqe8KwjCB8bO/7f70kxvVGPqyRy6eQshAtpdsuTDN/9us5F0MQ4zTS5BaIsPDQ3jO+5/G+fjj82dIDF2CZeKjd3R6J8W3Y0BYFca+JJQssFqLuvSUqlmESHSiZywGzsgx+OZNFnWE4scN+I3WJshAnYjAm5FBNxptp16y+y2hICLEtOVMXJcI0xvDveGi/ofU7NxBZN0XIpuIIy0mUZkZNNZVf1kDAt6lZagEhjGnxbweh8wdbw5hOwdxHbwY/j9BpTM9xi4MGzFvZhpk3Bz8J5gkb19ym7cJr5w/wEmUjzJqoNVhwAAAABJRU5ErkJggg=="
+        // swiftlint:enable line_length
+
+        // Support for RTL languages like Arabic, Persia etc... (Bug ID: #448)
+        if let data: Data = Data(base64Encoded: base64Data, options: .ignoreUnknownCharacters),
+           let image = UIImage(data: data, scale: 3)?.imageFlippedForRightToLeftLayoutDirection() {
+            return image
+        }
+
+        return UIImage()
+    }()
+
+    static let keyboardNextImage: UIImage = {
+
+        // swiftlint:disable line_length
+        let base64Data: String = "iVBORw0KGgoAAAANSUhEUgAAAD8AAAAkCAYAAAA+TuKHAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAABWWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyI+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgpMwidZAAAGp0lEQVRoBd1ZCWhcRRiemff25WrydmOtuXbfZlMo4lEpKkppm6TpZUovC4UqKlQoUhURqQcUBcWDIkhVUCuI9SpJa+2h0VZjUawUEUUUirLNXqmxSnc32WaT7O4bv0nd5R1bc+2maR8s7z9m5v+/+f/5Z94sIf89jW73Yp/bfUuWvwLfDp/H8zhwObLYmCCaPJ6FjLJPCWNHNU1bkFVeQW/Zp2l7KWUvNmlaB3DJAhvz1ntvI5R1EUpnUUKdEifHGuvr519BwKUmj/cDYNtwARNd5/NoH4GWKIhzlFKXCSzn/xCut/jD4V9N8suPYYj4ewC+2e46f55Rwp/geExKSmdzJn2l1WrXmuSXF8MQ8XfyAeeEn9KTyV3MHwq9RTh50IqLEjJHUkh3Y13dPKvuMuApIr6bUHKP1VeE+Y8MIa09Z8/+JQlltD/+Q7VaFcW6X2VsjFmbRRnbUFFZeai/v/+cUTeDaYqIv4GlfL/NR879I3qmORwOnxG6UfCCiMbjJ51VagKdlgs+91BaKVO6oVJVD8bj8WhOPkMJn1t7jTL6gNU9pHpgKJ1q7u3tjWR1OfBCEOuPf+9Sq4YwAW3ZBqNvSqsYpeuc5WUHYolE3KSbQYzP430FwB+yuoSCFtKHaXP4z3DIqDOBFwpkwHfVThXLgrYaG6IGOAmT1pZVVHw8MDDQb9TNBLrJre0E8EdtvnAeSRPeHOwN9lh1NvCiASbgG5fqRLDJEmMHsSU6GFuDGrAfNWDAqLuUNE5uL6A2bbf5wPkZrmdaAuGw36aDIC940TAajx1HBijIgEWmjpRWS4ytrnKq+1EDEibdJWAa3dqzjLGnrKaxxvt4OtXS09v7u1WX5S8KXjRABnQ7VbUCEV+Y7SDeWAJX4dfuLCnZFzt//rxRN500jqo74NvTVptY42fTnLcGI5FTVp2R/1/womEsHj/mwgxg27vd2BH8bCrLq0rKyjoTicSgUTcdNIrbkwD+nM2WOJ3qmaVI9d9sOotgTPCiPTLgi+oqdTbOAbea+lM6xyHLK8pnVXSiCCZNuiIyjZr2GArSS1YTOKie45n0UqT6L1ZdPn5c4EVHHIS6sA3WYLZvNg6E9L9GZmwZzgEdqAFDRl0xaET8EQB/2To21ngsQ0kbIv6zVXcxftzgxQDIgM+qVbUeGbDAPCCtxbfxUhdjHdGhoWGzrnAcIr4NwHflGbGf6PqyQCj0Yx7dRUUTAi9GwQQccapOL7bBm4yjIiPqSElpC5VYRzKZLPgE4M5hK0rt67CDZDM9A+k0XxmIhE6apONgJgxejBmLxw65VHUu/LjRaANeNZQpyhJZUToGBwdHjLqp0Ij4FgB/0wocaxw7DV8F4CcmM/6kwMMQRwYcrFad87DvXW8yTKlbkZVFSmlJB3bBlEk3CQYRvxfA3wbw0Vun7BAAPqjrmfaecPjbrGyib2sKTbS/LG5F4NhGe0d+fDiTuSMSiUx6F8Bn6V343N6TB3gSyb/aHwx22+2OX2KazfF3y7VMnw4FcUvCP8lJcgRtVph0yEu8pTnRBAiv270JwN+1AscQw5zr66YKXLgyVfBijBQc2YQ0PCIY4wPH2yQPERNTYpSPRSPid0qUvY/+1mU5QjJ8PVL96FhjjEdfCPDCzggyAKnPP7cZpWQFlsZ+yPGdMPaDiK/F6fEjbKeypXVK5/pGfyTYZZFPmi0UeOHAcCZI1+Oa6JjVG0SwHbcrnZDn7sytbQSPiLdLTBJXy+Z2nKcR8U09odDhfP0mKyskeBIggaERPb0WGfC1zSFK1gDcXsitER1t6m3wrkTEbRmC5ZTRCd+MiB+wjTlFwVSrfV7zdXV15aWy0oWKvNjWgJMOfyiAIklwYXLhwfd4G/47OAxnTMVRAKec3u0PB8SkFfyxFpSCGMBHTkpWHPsU2bEEKe8xDUrJdfhKnItzgiiEXKvXWhijR9CuzNgOwHWc1+87HQ5+aJQXki4KeOGgOOFJDkdnqeJowSGlweg00vsGHJAa1UpnTJKIAF5u1AM4R8S3APgeo7zQdFHS3uikz+VSSWXVlwBo+hoUbUR0ITfVHQEcEd+K4rbbOE4xaJPhYhg4HY3GcYG4HFB/so5vBT6q53TbdAAXtooe+SzghoaGakWSu2FwflZmfWMffxjAX7XKi8VPG3gBoKam5uoKpeQEDjBz7YD4dpwUd9rlxZMUPe2Nrvf19f2dTKdasap7jHIsiR3TDdxsfxq5xtpazad5g02al+Na6plpND0zTHk8Hp+4iLyU3vwLp0orLWXqrZQAAAAASUVORK5CYII="
+        // swiftlint:enable line_length
+
+        // Support for RTL languages like Arabic, Persia etc... (Bug ID: #448)
+        if let data: Data = Data(base64Encoded: base64Data, options: .ignoreUnknownCharacters),
+           let image = UIImage(data: data, scale: 3)?.imageFlippedForRightToLeftLayoutDirection() {
+            return image
+        }
+
+        return UIImage()
+    }()
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/LICENSE.md b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/LICENSE.md
new file mode 100644 (file)
index 0000000..0c652ed
--- /dev/null
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2013-2023 Iftekhar Qurashi
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/README.md b/IOTBluetooth/IOTBluetooth/Pods/IQKeyboardManagerSwift/README.md
new file mode 100644 (file)
index 0000000..6323ee9
--- /dev/null
@@ -0,0 +1,220 @@
+<p align="center">
+  <img src="https://raw.githubusercontent.com/hackiftekhar/IQKeyboardManager/master/Demo/Resources/icon.png" alt="Icon"/>
+</p>
+<H1 align="center">IQKeyboardManager</H1>
+<p align="center">
+  <img src="https://img.shields.io/github/license/hackiftekhar/IQKeyboardManager.svg"
+  alt="GitHub license"/>
+
+
+[![Build Status](https://travis-ci.org/hackiftekhar/IQKeyboardManager.svg)](https://travis-ci.org/hackiftekhar/IQKeyboardManager)
+
+
+While developing iOS apps, we often run into issues where the iPhone keyboard slides up and covers the `UITextField/UITextView`. `IQKeyboardManager` allows you to prevent this issue of keyboard sliding up and covering `UITextField/UITextView` without needing you to write any code or make any additional setup. To use `IQKeyboardManager` you simply need to add source files to your project.
+
+
+#### Key Features
+
+1) `One Lines of Code`
+
+2) `Works Automatically`
+
+3) `No More UIScrollView`
+
+4) `No More Subclasses`
+
+5) `No More Manual Work`
+
+6) `No More #imports`
+
+`IQKeyboardManager` works on all orientations, and with the toolbar. It also has nice optional features allowing you to customize the distance from the text field, behaviour of previous, next and done buttons in the keyboard toolbar, play sound when the user navigates through the form and more.
+
+
+## Screenshot
+[![Screenshot 1](https://raw.githubusercontent.com/hackiftekhar/IQKeyboardManager/master/Screenshot/README_Screenshot1.png)](http://youtu.be/6nhLw6hju2A)
+[![Screenshot 2](https://raw.githubusercontent.com/hackiftekhar/IQKeyboardManager/master/Screenshot/README_Screenshot2.png)](http://youtu.be/6nhLw6hju2A)
+[![Screenshot 3](https://raw.githubusercontent.com/hackiftekhar/IQKeyboardManager/master/Screenshot/README_Screenshot3.png)](http://youtu.be/6nhLw6hju2A)
+[![Screenshot 4](https://raw.githubusercontent.com/hackiftekhar/IQKeyboardManager/master/Screenshot/README_Screenshot4.png)](http://youtu.be/6nhLw6hju2A)
+[![Screenshot 5](https://raw.githubusercontent.com/hackiftekhar/IQKeyboardManager/master/Screenshot/README_Screenshot5.png)](http://youtu.be/6nhLw6hju2A)
+
+## GIF animation
+[![IQKeyboardManager](https://raw.githubusercontent.com/hackiftekhar/IQKeyboardManager/v3.3.0/Screenshot/IQKeyboardManager.gif)](http://youtu.be/6nhLw6hju2A)
+
+## Video
+
+<a href="http://youtu.be/WAYc2Qj-OQg" target="_blank"><img src="http://img.youtube.com/vi/WAYc2Qj-OQg/0.jpg"
+alt="IQKeyboardManager Demo Video" width="480" height="360" border="10" /></a>
+
+## Tutorial video by @rebeloper ([#1135](https://github.com/hackiftekhar/IQKeyboardManager/issues/1135))
+
+@rebeloper demonstrated two videos on how to implement **IQKeyboardManager** at it's core:
+
+<a href="https://www.youtube.com/playlist?list=PL_csAAO9PQ8aTL87XnueOXi3RpWE2m_8v" target="_blank"><img src="https://raw.githubusercontent.com/hackiftekhar/IQKeyboardManager/master/Screenshot/ThirdPartyYoutubeTutorial.jpg"
+alt="Youtube Tutorial Playlist"/></a>
+
+https://www.youtube.com/playlist?list=PL_csAAO9PQ8aTL87XnueOXi3RpWE2m_8v
+
+## Warning
+
+- **If you're planning to build SDK/library/framework and want to handle UITextField/UITextView with IQKeyboardManager then you're totally going the wrong way.** I would never suggest to add **IQKeyboardManager** as **dependency/adding/shipping** with any third-party library. Instead of adding **IQKeyboardManager** you should implement your own solution to achieve same kind of results. **IQKeyboardManager** is totally designed for projects to help developers for their convenience, it's not designed for **adding/dependency/shipping** with any **third-party library**, because **doing this could block adoption by other developers for their projects as well (who are not using IQKeyboardManager and have implemented their custom solution to handle UITextField/UITextView in the project).**
+- If **IQKeyboardManager** conflicts with other **third-party library**, then it's **developer responsibility** to **enable/disable IQKeyboardManager** when **presenting/dismissing** third-party library UI. Third-party libraries are not responsible to handle IQKeyboardManager.
+
+## Requirements
+[![Platform iOS](https://img.shields.io/badge/Platform-iOS-blue.svg?style=fla)]()
+
+|                        | Language | Minimum iOS Target | Minimum Xcode Version |
+|------------------------|----------|--------------------|-----------------------|
+| IQKeyboardManager      | Obj-C    | iOS 11.0            | Xcode 13             |
+| IQKeyboardManagerSwift | Swift    | iOS 13.0            | Xcode 13             |
+| Demo Project           |          |                     | Xcode 15             |
+
+#### Swift versions support
+
+| Swift             | Xcode | IQKeyboardManagerSwift |
+|-------------------|-------|------------------------|
+| 5.9, 5.8, 5.7, 5.6| 15  | >= 7.0.0       |
+| 5.5, 5.4, 5.3, 5.2, 5.1, 5.0, 4.2| 11  | >= 6.5.7       |
+| 5.1, 5.0, 4.2, 4.0, 3.2, 3.0| 11  | >= 6.5.0       |
+| 5.0,4.2, 4.0, 3.2, 3.0| 10.2  | >= 6.2.1           |
+| 4.2, 4.0, 3.2, 3.0| 10.0  | >= 6.0.4               |
+| 4.0, 3.2, 3.0     | 9.0   | 5.0.0                  |
+
+## 7.0.0 version notes
+- In this major release, a lot of variables and functions have been moved here and there. We have mentioned most of the major things in the MIGRATION GUIDE. So please take a look to make changes in your project when upgrading to this version.
+- The 7.0.0 version adopted the latest Swift Concurrency/Actor feature and only available iOS 13.0 and above.
+- Internal keyboard management handling have been updated with a different and better approach than legacy versions. However when adopting 7.0.0, please verify if it is working as expected in your apps, if there are any serious problems with 7.0.0 please open an issue with all the details and switch back to legacy version temporarily.
+
+Installation
+==========================
+
+#### Installation with CocoaPods
+
+[![CocoaPods](https://img.shields.io/cocoapods/v/IQKeyboardManager.svg)](http://cocoadocs.org/docsets/IQKeyboardManager)
+
+***IQKeyboardManager (Objective-C):*** IQKeyboardManager is available through [CocoaPods](http://cocoapods.org). To install
+it, simply add the following line to your Podfile: ([#9](https://github.com/hackiftekhar/IQKeyboardManager/issues/9))
+
+```ruby
+pod 'IQKeyboardManager' #iOS13 and later
+```
+
+***IQKeyboardManager (Swift):*** IQKeyboardManagerSwift is available through [CocoaPods](http://cocoapods.org). To install
+it, simply add the following line to your Podfile: ([#236](https://github.com/hackiftekhar/IQKeyboardManager/issues/236))
+
+*Swift 5.9, 5.8, 5.7, 5.6, 5.5 (Xcode 15)*
+
+```ruby
+pod 'IQKeyboardManagerSwift'
+```
+
+*Or you can choose the version you need based on Swift support table from [Requirements](README.md#requirements)*
+
+```ruby
+pod 'IQKeyboardManagerSwift', '6.3.0'
+```
+
+In AppDelegate.swift, just import IQKeyboardManagerSwift framework and enable IQKeyboardManager.
+
+```swift
+import IQKeyboardManagerSwift
+
+@UIApplicationMain
+class AppDelegate: UIResponder, UIApplicationDelegate {
+
+    var window: UIWindow?
+
+    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
+
+      IQKeyboardManager.shared.enable = true
+
+      return true
+    }
+}
+```
+
+#### Installation with Carthage
+
+[Carthage](https://github.com/Carthage/Carthage) is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.
+
+You can install Carthage with [Homebrew](http://brew.sh/) using the following command:
+
+```bash
+$ brew update
+$ brew install carthage
+```
+
+To integrate `IQKeyboardManger` or `IQKeyboardManagerSwift` into your Xcode project using Carthage, add the following line to your `Cartfile`:
+
+```ogdl
+github "hackiftekhar/IQKeyboardManager"
+```
+
+Run `carthage` to build the frameworks and drag the appropriate framework (`IQKeyboardManager.framework` or `IQKeyboardManagerSwift.framework`) into your Xcode project based on your need. Make sure to add only one framework and not both.
+
+
+#### Installation with Source Code
+
+[![Github tag](https://img.shields.io/github/tag/hackiftekhar/iqkeyboardmanager.svg)]()
+
+
+
+***IQKeyboardManager (Objective-C):*** Just ***drag and drop*** `IQKeyboardManager` directory from demo project to your project. That's it.
+
+***IQKeyboardManager (Swift):*** ***Drag and drop*** `IQKeyboardManagerSwift` directory from demo project to your project
+
+In AppDelegate.swift, just enable IQKeyboardManager.
+
+```swift
+@UIApplicationMain
+class AppDelegate: UIResponder, UIApplicationDelegate {
+
+    var window: UIWindow?
+
+    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
+
+      IQKeyboardManager.shared.enable = true
+
+      return true
+    }
+}
+```
+
+#### Installation with Swift Package Manager
+
+[Swift Package Manager(SPM)](https://swift.org/package-manager/) is Apple's dependency manager tool. It is now supported in Xcode 11. So it can be used in all appleOS types of projects. It can be used alongside other tools like CocoaPods and Carthage as well. 
+
+To install IQKeyboardManagerSwift package via Xcode
+
+ * Go to File -> Swift Packages -> Add Package Dependency...
+ * Then search for https://github.com/hackiftekhar/IQKeyboardManager.git
+ * And choose the version you want
+
+Migration Guide
+==========================
+- [IQKeyboardManager 6.0.0 Migration Guide](https://github.com/hackiftekhar/IQKeyboardManager/wiki/IQKeyboardManager-6.0.0-Migration-Guide)
+- [IQKeyboardManager 7.0.0 Migration Guide](https://github.com/hackiftekhar/IQKeyboardManager/wiki/IQKeyboardManager-7.0.0-Migration-Guide)
+
+Other Links
+==========================
+
+- [Known Issues](https://github.com/hackiftekhar/IQKeyboardManager/wiki/Known-Issues)
+- [Manual Management Tweaks](https://github.com/hackiftekhar/IQKeyboardManager/wiki/Manual-Management)
+- [Properties and functions usage](https://github.com/hackiftekhar/IQKeyboardManager/wiki/Properties-&-Functions)
+
+## Flow Diagram
+[![IQKeyboardManager CFD](https://raw.githubusercontent.com/hackiftekhar/IQKeyboardManager/master/Screenshot/IQKeyboardManagerFlowDiagram.jpg)](https://raw.githubusercontent.com/hackiftekhar/IQKeyboardManager/master/Screenshot/IQKeyboardManagerFlowDiagram.jpg)
+
+If you would like to see detailed Flow diagram then check [Detailed Flow Diagram](https://raw.githubusercontent.com/hackiftekhar/IQKeyboardManager/v3.3.0/Screenshot/IQKeyboardManagerCFD.jpg).
+
+
+LICENSE
+---
+Distributed under the MIT License.
+
+Contributions
+---
+Any contribution is more than welcome! You can contribute through pull requests and issues on GitHub.
+
+Author
+---
+If you wish to contact me, email at: hack.iftekhar@gmail.com
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Manifest.lock b/IOTBluetooth/IOTBluetooth/Pods/Manifest.lock
new file mode 100644 (file)
index 0000000..c5eca7c
--- /dev/null
@@ -0,0 +1,24 @@
+PODS:
+  - IQKeyboardManagerSwift (7.1.1)
+  - SnapKit (5.7.1)
+  - Toast-Swift (5.1.1)
+
+DEPENDENCIES:
+  - IQKeyboardManagerSwift
+  - SnapKit (~> 5.7.0)
+  - Toast-Swift
+
+SPEC REPOS:
+  https://gitee.com/mirrors/CocoaPods-Specs.git:
+    - IQKeyboardManagerSwift
+    - SnapKit
+    - Toast-Swift
+
+SPEC CHECKSUMS:
+  IQKeyboardManagerSwift: d7f3d3a562c237a0e7335e657cd598c452f57f1b
+  SnapKit: d612e99e678a2d3b95bf60b0705ed0a35c03484a
+  Toast-Swift: 7a03a532afe3a560d4044bc7c237e2864d295173
+
+PODFILE CHECKSUM: 4bbdc884a7c5baa7f070a0c257de0c5b68144a6f
+
+COCOAPODS: 1.16.2
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Pods.xcodeproj/project.pbxproj b/IOTBluetooth/IOTBluetooth/Pods/Pods.xcodeproj/project.pbxproj
new file mode 100644 (file)
index 0000000..b79c7cf
--- /dev/null
@@ -0,0 +1,1680 @@
+// !$*UTF8*$!
+{
+       archiveVersion = 1;
+       classes = {
+       };
+       objectVersion = 56;
+       objects = {
+
+/* Begin PBXBuildFile section */
+               00DE7AE1D2A7B7F94F93458DB7754809 /* IQPreviousNextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E85435BBABFCFD56B7EF9E6697212B7E /* IQPreviousNextView.swift */; };
+               064D909CD827405E8DCC309DB1B7775A /* ConstraintLayoutSupportDSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38AABFEEFBDD4105F5BFF99D3C8E59CE /* ConstraintLayoutSupportDSL.swift */; };
+               070601D9903BE1D11DD6DD1367C3F012 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED3234428715ED881C945B13B58F9250 /* Foundation.framework */; };
+               09E1F569A93FAD4B9149E30B9301F44A /* ConstraintPriority.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8860AF7CDE4B3C1AFE143BE010DCA041 /* ConstraintPriority.swift */; };
+               0C7E48CC6391092D8F5B4341E1EE7485 /* Toast-Swift-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 6480E2EA7CA54E0E42264119F3DD71AD /* Toast-Swift-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+               0CA7A132ABE7018DE9295456732F38BB /* ConstraintAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28D2337421B60A473CD4C044E069484B /* ConstraintAttributes.swift */; };
+               0DDF4216E3E48EF14B994DEAF828EEA2 /* IQKeyboardManager+Internal.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAC87C7CE96871270C101D7F8EBE0A3D /* IQKeyboardManager+Internal.swift */; };
+               0DE5DB9C6227B3416778D8417DD95EA9 /* ConstraintView+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E7502DF550C07D50EEC4D85AC276061 /* ConstraintView+Extensions.swift */; };
+               1194E62AA3F6F506799B1A43B16942B5 /* ConstraintDirectionalInsets.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7359C5366E43E1907650C5A863ECA683 /* ConstraintDirectionalInsets.swift */; };
+               11B67C495111E3AA200F8E6852A73A55 /* IQKeyboardManagerSwift-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B670392E9D2D684F633CC90B5587F702 /* IQKeyboardManagerSwift-dummy.m */; };
+               139F8FB4B5A5FA7A297976A723CDCC9A /* IQUITextFieldView+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2EB2A643D562618B99FBF0A0B2D33D2B /* IQUITextFieldView+Additions.swift */; };
+               172B6B4E5550420B8131FBD62C975821 /* Toast.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D8FD8BB27FDD914F91F6033577D8C8C /* Toast.swift */; };
+               17850B3BCF62F3E9C80608BF8B16291A /* IQTextFieldViewListener.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B762AC05EB903CB7142202224E8B187 /* IQTextFieldViewListener.swift */; };
+               1ACC61B072F4BB20E73C2F462A7E16FB /* UIImage+NextPrevious.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA7AA919DFBAE3752F49D688B9C019DD /* UIImage+NextPrevious.swift */; };
+               205EB01AED14BB574DD54EAFE26E4786 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED3234428715ED881C945B13B58F9250 /* Foundation.framework */; };
+               2B2EB369550CE92CEEFCBFD3D32B8A3F /* ConstraintInsetTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3F8D179AF556D50D6BF4F71AC2B45E5 /* ConstraintInsetTarget.swift */; };
+               3577F172FA68CBAE47CFEE6FE25C5404 /* ConstraintOffsetTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B786AD23AC011C7A9C451AEE9791523 /* ConstraintOffsetTarget.swift */; };
+               3A3D2697E544C969F5C736F404A1BB66 /* IQKeyboardManagerSwift-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 81E89D6561DC8A1E0CBA0ED55E074E46 /* IQKeyboardManagerSwift-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+               3CBB581828D3D4237FF0E318F3457FC9 /* IQBarButtonItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = F5D4B046C004C89840FD41919DA848ED /* IQBarButtonItem.swift */; };
+               3D3B646B4988314275B40E97BEB16C7F /* ConstraintLayoutGuideDSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9BD95591930D45D768ABE6E85A729CD /* ConstraintLayoutGuideDSL.swift */; };
+               3EEB67A2DC733DD8677E443D43BA9A5A /* IQKeyboardInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9772F0CC15AB90A422885ED47164415 /* IQKeyboardInfo.swift */; };
+               45B3D0DA40BE97096DE3CDECE622585E /* IQKeyboardManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D63AC5FF4C8B919A3BF3D780A5CFF10B /* IQKeyboardManager.swift */; };
+               4F4DEB687C0E4834A5B291DEE0651D6A /* ConstraintMaker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D356761FB2DAA9C91DF8D9D126DE637 /* ConstraintMaker.swift */; };
+               54D89FF142C65EDD590F8651A0CFCB6E /* IQTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8841E119B0141289D182E582BE7277C /* IQTextView.swift */; };
+               57C4F6EFB30DDD14E960AC2D6B34F904 /* SnapKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = A0DBC24939A32FDF60D4274B29B62A66 /* SnapKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+               57EA452F77A51C3654DBC92A9A2B771A /* IQUIScrollView+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1805F77AB3F135F0A35F48C1124283E /* IQUIScrollView+Additions.swift */; };
+               5922A6A0AE7152CF436356B3556F1835 /* ConstraintItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEDED7281E5EFA018E864E104E2D7C3B /* ConstraintItem.swift */; };
+               595079712F4E905BEEC8C8EAA167EA03 /* IQToolbarConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC865F72E5F47038DDA969FCC4136472 /* IQToolbarConfiguration.swift */; };
+               59E13CB1013047AB75A9B464B1D82C2F /* IQKeyboardConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBE86E23D0923F9E6C71B2FB2E435963 /* IQKeyboardConfiguration.swift */; };
+               59F34874DA4ABB2F5C4E09EA6865936B /* ConstraintLayoutGuide.swift in Sources */ = {isa = PBXBuildFile; fileRef = CA1B618A2D4FFF48117063DC941E3814 /* ConstraintLayoutGuide.swift */; };
+               5CA32A2520B7868CF67B02C1C830F5A8 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A912741BDA04F14F5D091E6DD6B95F90 /* QuartzCore.framework */; };
+               5D269576532F504523EAA39DDB1557F4 /* IQKeyboardManager+Debug.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA3BF63EDEE01B4EBDE785204C0EA42F /* IQKeyboardManager+Debug.swift */; };
+               663F1294E62250BD0DF7888F2173B0D6 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9CE1B6592A29ADBBC5FB53143C4D4955 /* CoreGraphics.framework */; };
+               67FE77018A04D8691A906DECD6CFFCA2 /* IQKeyboardReturnKeyHandler+TextViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D832084CF440FCE5F20FBC5B98997D5 /* IQKeyboardReturnKeyHandler+TextViewDelegate.swift */; };
+               68D7B750E799100042584648B0634DDD /* IQTitleBarButtonItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A6A6F4E0441FEC671A89F081D3C468B /* IQTitleBarButtonItem.swift */; };
+               6C08C17E6D1DB2B4D1D0669F59F09368 /* IQKeyboardManagerCompatible.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC5D6F56C551358D37CD3CC8CDADB308 /* IQKeyboardManagerCompatible.swift */; };
+               6DD19D888A917365E4C36AFE31FA2C27 /* IQKeyboardManager+Position.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28A29EBBD8A8588B67A9C3148F9D0740 /* IQKeyboardManager+Position.swift */; };
+               6E39129FC8643A70C276801FEF4C280D /* Constraint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7827F4A9CC80D317E7EC0632D268B40D /* Constraint.swift */; };
+               70364D5528E3495AA5DE40030C0852B8 /* IQUITableView+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA3F3E99485012C444C03D8AEFAE4EDB /* IQUITableView+Additions.swift */; };
+               72E7B39F6D1F97F30C08E04D211D304E /* IQKeyboardReturnKeyHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31CF3B3E56A735C453C5F18DEA482DFF /* IQKeyboardReturnKeyHandler.swift */; };
+               742CBD9F365744155B66ADE0EC6CF94B /* IQToolbarPlaceholderConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79C58FD990400B8AB18178EF88ED66BE /* IQToolbarPlaceholderConfiguration.swift */; };
+               743A1D7C259156C99A14E4B1FD01A52C /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 69301F4E598400CA4CB88505EAF858B1 /* UIKit.framework */; };
+               7AF516B98D45391B909D507D0244104C /* ConstraintDescription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24AF392592ADF9A6B7D56DEF6A064AFC /* ConstraintDescription.swift */; };
+               7B0BC17748C9775A8299A96D501CE5A8 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A912741BDA04F14F5D091E6DD6B95F90 /* QuartzCore.framework */; };
+               7D42390CDB4FA147504B03DA2A174A0C /* ConstraintViewDSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 786DA7E2F26C5CB8966412310C7277CC /* ConstraintViewDSL.swift */; };
+               83A2615D5A90DC223EA13831DFA4CE13 /* IQUIView+IQKeyboardToolbarDeprecated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 267E8F754906E07A8B9DAF989F7C09C0 /* IQUIView+IQKeyboardToolbarDeprecated.swift */; };
+               84585A9E2B8E7FEB3F01C4A65DDEA3AA /* Pods-Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D6D7C498FA339E02BD53ECB8916CEA8E /* Pods-Example-dummy.m */; };
+               851B0A1B6750B5464D9300F8DE62CAF2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED3234428715ED881C945B13B58F9250 /* Foundation.framework */; };
+               868A9F524A7985BDA1EA124D9BF4CA63 /* ConstraintDSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7177E0F7EDAAACF7F30BF86978047DA8 /* ConstraintDSL.swift */; };
+               86CAB01D950C8BC35EDE0BDC01A2500B /* ConstraintView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C660EC43022B9B30F27A2D41B4FEF7A5 /* ConstraintView.swift */; };
+               87E921A1D8B0C683DA2133709C867859 /* Toast-Swift-Toast-Swift in Resources */ = {isa = PBXBuildFile; fileRef = 13FD39576595D8A884BF5166065C5236 /* Toast-Swift-Toast-Swift */; };
+               883EDEE1C699497CF2A77C3B8A32A790 /* ConstraintMultiplierTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA043C571AB1FB654FCD317C806CC6EA /* ConstraintMultiplierTarget.swift */; };
+               8BABA32F7B94A25D8E9208C0A8D90B2E /* ConstraintMakerRelatable+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 781F4E8646637FD21213695B7845466E /* ConstraintMakerRelatable+Extensions.swift */; };
+               8E009955E1CD921871B03BCDDCE7650F /* Pods-Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 7825A90E082A1582EB16256B0E722B3F /* Pods-Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+               8ECCBA8E91C632E4F56D0D7F40F135F9 /* IQKeyboardManager+UITextFieldViewNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18322484F39B0AA1F691FBFCCCA1C3FB /* IQKeyboardManager+UITextFieldViewNotification.swift */; };
+               9A578D9CD4BEC7C1168A1D9820DE40A8 /* IQKeyboardManager+ToolbarActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2168A4DBBB0E9A91E7BB3EBCDFF7413A /* IQKeyboardManager+ToolbarActions.swift */; };
+               9AD8B9EFD0F8D7B60A5DC4359601ED60 /* MainActor+AssumeIsolated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 10D70A661E9C006E9436199E3F97E55E /* MainActor+AssumeIsolated.swift */; };
+               9E0045B41BFE697DB4ADE151228024D2 /* SnapKit-SnapKit_Privacy in Resources */ = {isa = PBXBuildFile; fileRef = B9DCB5EC0B1CDADD221717CADDF62359 /* SnapKit-SnapKit_Privacy */; };
+               A267DD79A7AAD3036D940CDE6249255B /* IQNSArray+Sort.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C494A65C968572398F4DD06447758FA /* IQNSArray+Sort.swift */; };
+               A9B5C45C3C4D517B581E536DE846A078 /* Toast-Swift-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 78B84BA581D1B72D71D33EAA79EF9EAD /* Toast-Swift-dummy.m */; };
+               A9D7688EFF99BED99A406255EBFCCC6D /* IQUIViewController+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71F58B658A639080D77D592017E8BED5 /* IQUIViewController+Additions.swift */; };
+               AABEF13464BA7F4621BD94736C1D057C /* ConstraintMakerPrioritizable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83068BD0213FBA725C02317AD3423FAB /* ConstraintMakerPrioritizable.swift */; };
+               ABCE13FE54D5DEE5CD02838201676A92 /* IQTextFieldViewInfoModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9945075F6E108B8ACAF8F32A238211BB /* IQTextFieldViewInfoModel.swift */; };
+               AE224EDB6D044C0FE86B086E950FC2F9 /* Debugging.swift in Sources */ = {isa = PBXBuildFile; fileRef = B49DC626E7DAE3E057513F2EE3D4E9A0 /* Debugging.swift */; };
+               AF022BD7571EF5BCBB1EF3F1FD8EB7DD /* IQRootControllerConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = D885C8DF1AD7EC186F0CD564F9CFDDCC /* IQRootControllerConfiguration.swift */; };
+               AF760C78F1C7E11BF7CB9E9B29903530 /* ConstraintInsets.swift in Sources */ = {isa = PBXBuildFile; fileRef = A4CC9447079CFC0CE0B24F0B709A13B5 /* ConstraintInsets.swift */; };
+               B0786F3CFD6093FC5FEDE748445C6FAC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED3234428715ED881C945B13B58F9250 /* Foundation.framework */; };
+               B0875E3AB8718E7DFE5C53497C02A15E /* ConstraintLayoutSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF4474210B83011E99ECFA42B0FBEF0F /* ConstraintLayoutSupport.swift */; };
+               B903049E7C1BED7918DAB208754107C7 /* ConstraintMakerFinalizable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0309EC85084CD7E4C3E4F71EA2E881AE /* ConstraintMakerFinalizable.swift */; };
+               BA2FB695DEB0D179253EEB8DFCE3578B /* SnapKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9AF26C3D88411B38B1261FB7CF12D76B /* SnapKit-dummy.m */; };
+               BBF8220B30095D0EB91D4933B4769D9E /* IQActiveConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = C32EB114A07F0FA10A26E8BF6D41434A /* IQActiveConfiguration.swift */; };
+               BDA5C7CC91E86448237CF40954FAC5AF /* ConstraintMakerRelatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7EBF485974C47A16B03CF21FC82DA44 /* ConstraintMakerRelatable.swift */; };
+               BF1AE4D97E813B95C43EA4A298B973D1 /* LayoutConstraint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 504C0FC5F20876E193F2FF38C0EA5088 /* LayoutConstraint.swift */; };
+               C07CB3E9A4D1BF00F841E4285629A2B2 /* ConstraintRelatableTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA5D78DC6B04FB370A2753ECC47B870A /* ConstraintRelatableTarget.swift */; };
+               C14F10B663FE2898EACAB90C202B3F50 /* ConstraintMakerEditable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A94C4F2E1128ACF0FC8B4DD926D387E /* ConstraintMakerEditable.swift */; };
+               C347AB10AA080AEF17907D23CBE8C810 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = C9BD6044E2352EFA372C1004BF1CB58C /* PrivacyInfo.xcprivacy */; };
+               C3E307D86BC99500B675C38EDCBFB0AC /* IQInvocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB92A2A172FC35DD4E24E6A6B5103EB /* IQInvocation.swift */; };
+               C6A4302ACE006C4E2CDD481287E2916B /* Typealiases.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335622869A4630904A6E5FB9C4AC03AA /* Typealiases.swift */; };
+               C6F45595676957ADBEC18EB3F23EAEC4 /* LayoutConstraintItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02EE4CC7F651DC165672D48020AB0277 /* LayoutConstraintItem.swift */; };
+               C892112213688A3A4523CDD9F323998B /* IQKeyboardReturnKeyHandler+TextFieldDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE101B4C70CDDC67D0D10026A117A845 /* IQKeyboardReturnKeyHandler+TextFieldDelegate.swift */; };
+               CE593943A9E7CF83822CF60304BCAD43 /* ConstraintConstantTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4E89228FBA1EC8803A71B4301EA4F99D /* ConstraintConstantTarget.swift */; };
+               D0C9D7424D667076070CE75180ECCD6B /* IQToolbar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D0AC40B4B0DD69F0C6198DB43846BE0 /* IQToolbar.swift */; };
+               D38710A2338E377897571CC4051F85B5 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 45336DFC6C88342A9F741D2FEE970C1F /* PrivacyInfo.xcprivacy */; };
+               D4218DA55B2BA45937589200CC0DF1FB /* ConstraintMakerExtendable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26D795F47486ED2F87593ABBA15C0100 /* ConstraintMakerExtendable.swift */; };
+               D4E8DE674C6B890FE9D56D40BA77DD15 /* IQUIView+Hierarchy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09C831BC0433AB4F6D60421796F44B70 /* IQUIView+Hierarchy.swift */; };
+               D5DB713D87E6A5525B6B9DA5F706E0FB /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = E06137D498517DD9E8DA43F974135CE5 /* PrivacyInfo.xcprivacy */; };
+               DBA4803F4765E1650B8C6841157F5D73 /* ConstraintPriorityTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7E51A9F23CAB98CBAB848469E2D2E183 /* ConstraintPriorityTarget.swift */; };
+               DC00471B9629D6BA4DECB8796D6532EC /* IQKeyboardListener.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4209C4E6D3813FBA036449385A05EFCE /* IQKeyboardListener.swift */; };
+               DDE98DAE6570A84BB1C07E14DA12C4D4 /* IQKeyboardManager+UIKeyboardNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = F99AAB2A26686038394AE2120B949E6D /* IQKeyboardManager+UIKeyboardNotification.swift */; };
+               E37671A03B4C17A1CF3766A6125833BB /* ConstraintDirectionalInsetTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9820093DBE06A8821B66BA89A7BCEB75 /* ConstraintDirectionalInsetTarget.swift */; };
+               E3D779DEE753C0B0D33BA8E73A980265 /* ConstraintLayoutGuide+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63E5CC4BB2BF49880BCB01A6523F1118 /* ConstraintLayoutGuide+Extensions.swift */; };
+               E3FD0840B77157C01FF5D52E72B31664 /* IQKeyboardManagerSwift-IQKeyboardManagerSwift in Resources */ = {isa = PBXBuildFile; fileRef = 8D8069D3964814114ACEC3084C010B59 /* IQKeyboardManagerSwift-IQKeyboardManagerSwift */; };
+               E5F8F6C107339F507114C3AB566ED585 /* IQUIView+IQKeyboardToolbar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F3B65F524DB021715BC12735F4870B5 /* IQUIView+IQKeyboardToolbar.swift */; };
+               E7095898E9F45BD384B5BF177B642AFD /* IQUICollectionView+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BB8E305B8F5BBD09897C3EEC890F39B /* IQUICollectionView+Additions.swift */; };
+               E7E7C94378820F81492BCF0CB798D46C /* IQKeyboardManager+Toolbar.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDFF3215A962C67DD4B1E824B649F8CC /* IQKeyboardManager+Toolbar.swift */; };
+               EB6131723350AB4DCB5AEDF242D458AC /* IQScrollViewConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 623266148C6A711F78F24ADF46E86438 /* IQScrollViewConfiguration.swift */; };
+               ECC5C2ADC2682F9171FEA22AF10DCE53 /* ConstraintRelation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C7B65D34762D57F480123BE480B818E /* ConstraintRelation.swift */; };
+               EE49210BAAF30051C28298E265D3D659 /* IQPlaceholderable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 837896B623DE365258BB6DF4FC55ACFA /* IQPlaceholderable.swift */; };
+               F633379AD81BA605AB1B01385C4B9248 /* IQKeyboardManagerConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6FC25131FACCDC8438C5F554800DC097 /* IQKeyboardManagerConstants.swift */; };
+               F6F33E8B268F3D41075374D95B8088DC /* UILayoutSupport+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06A48ED9920272E365B9A2DBAD5ACC2F /* UILayoutSupport+Extensions.swift */; };
+               F86C621FA07210C325437A3D8FA7CC68 /* IQKeyboardManager+Deprecated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14DFA4E68F4494F72B504BD1DD4BEDC9 /* IQKeyboardManager+Deprecated.swift */; };
+               F9EBA65892D78A31C068D727D84BCB88 /* ConstraintConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDF7C6BB5F4F37EB3CCB77A22DD4C540 /* ConstraintConfig.swift */; };
+               FA0B149FAA1A1C60DA9B92EC2569520E /* IQBarButtonItemConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33A5157610B3BA3E11D9587B92F4C397 /* IQBarButtonItemConfiguration.swift */; };
+               FE4B49773ED7A97B84316CF892D5D455 /* IQTextFieldViewInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EBE1544A39BAB189DEDDA0F4545147E /* IQTextFieldViewInfo.swift */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+               2C3890DB22C3798DBD04FF11BB1E3763 /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
+                       proxyType = 1;
+                       remoteGlobalIDString = B990BD87169C76A3ED3FE8A9258D91A3;
+                       remoteInfo = "Toast-Swift";
+               };
+               7516A63BFCBFC4EE43188C5CC5C9C90F /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
+                       proxyType = 1;
+                       remoteGlobalIDString = 8A8DB685241263AFDF5E6B20FE67B93A;
+                       remoteInfo = "SnapKit-SnapKit_Privacy";
+               };
+               C04B96E80AC4BC69934A81924717A242 /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
+                       proxyType = 1;
+                       remoteGlobalIDString = C344E85893FCDEE5B70436E0A4A3472B;
+                       remoteInfo = "Toast-Swift-Toast-Swift";
+               };
+               D63BD9F2997AAB93FD047009D145B137 /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
+                       proxyType = 1;
+                       remoteGlobalIDString = 19622742EBA51E823D6DAE3F8CDBFAD4;
+                       remoteInfo = SnapKit;
+               };
+               DDE9D020CDC7E91D5827DFE3287EB2CA /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
+                       proxyType = 1;
+                       remoteGlobalIDString = B490E7485944099E16C9CBD79119D1D4;
+                       remoteInfo = IQKeyboardManagerSwift;
+               };
+               EEE971D13C12B11703BA672AF4AA9EBE /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
+                       proxyType = 1;
+                       remoteGlobalIDString = 982A68D37F5DCBC1FC1FDC0BB2F0EB8E;
+                       remoteInfo = "IQKeyboardManagerSwift-IQKeyboardManagerSwift";
+               };
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+               02EE4CC7F651DC165672D48020AB0277 /* LayoutConstraintItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LayoutConstraintItem.swift; path = Sources/LayoutConstraintItem.swift; sourceTree = "<group>"; };
+               0309EC85084CD7E4C3E4F71EA2E881AE /* ConstraintMakerFinalizable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMakerFinalizable.swift; path = Sources/ConstraintMakerFinalizable.swift; sourceTree = "<group>"; };
+               05ADABC71B19770B1EC37350B70BE449 /* IQKeyboardManagerSwift.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = IQKeyboardManagerSwift.modulemap; sourceTree = "<group>"; };
+               05C92DF614B75B78526637B00FED4FDB /* IQKeyboardManagerSwift.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = IQKeyboardManagerSwift.release.xcconfig; sourceTree = "<group>"; };
+               06A48ED9920272E365B9A2DBAD5ACC2F /* UILayoutSupport+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UILayoutSupport+Extensions.swift"; path = "Sources/UILayoutSupport+Extensions.swift"; sourceTree = "<group>"; };
+               09C831BC0433AB4F6D60421796F44B70 /* IQUIView+Hierarchy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUIView+Hierarchy.swift"; path = "IQKeyboardManagerSwift/UIKitExtensions/IQUIView+Hierarchy.swift"; sourceTree = "<group>"; };
+               0C1553D064BF9CC76243991B2983E53D /* IQKeyboardManagerSwift-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "IQKeyboardManagerSwift-Info.plist"; sourceTree = "<group>"; };
+               10D70A661E9C006E9436199E3F97E55E /* MainActor+AssumeIsolated.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "MainActor+AssumeIsolated.swift"; path = "IQKeyboardManagerSwift/UIKitExtensions/MainActor+AssumeIsolated.swift"; sourceTree = "<group>"; };
+               13FD39576595D8A884BF5166065C5236 /* Toast-Swift-Toast-Swift */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "Toast-Swift-Toast-Swift"; path = "Toast-Swift.bundle"; sourceTree = BUILT_PRODUCTS_DIR; };
+               14DFA4E68F4494F72B504BD1DD4BEDC9 /* IQKeyboardManager+Deprecated.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+Deprecated.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+Deprecated.swift"; sourceTree = "<group>"; };
+               157412EB9B9CCDC0D9BB2C649A235073 /* ResourceBundle-Toast-Swift-Toast-Swift-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-Toast-Swift-Toast-Swift-Info.plist"; sourceTree = "<group>"; };
+               18322484F39B0AA1F691FBFCCCA1C3FB /* IQKeyboardManager+UITextFieldViewNotification.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+UITextFieldViewNotification.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+UITextFieldViewNotification.swift"; sourceTree = "<group>"; };
+               1B762AC05EB903CB7142202224E8B187 /* IQTextFieldViewListener.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQTextFieldViewListener.swift; path = IQKeyboardManagerSwift/LIsteners/IQTextFieldViewListener.swift; sourceTree = "<group>"; };
+               1D356761FB2DAA9C91DF8D9D126DE637 /* ConstraintMaker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMaker.swift; path = Sources/ConstraintMaker.swift; sourceTree = "<group>"; };
+               1D832084CF440FCE5F20FBC5B98997D5 /* IQKeyboardReturnKeyHandler+TextViewDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardReturnKeyHandler+TextViewDelegate.swift"; path = "IQKeyboardManagerSwift/ReturnKeyHandler/IQKeyboardReturnKeyHandler+TextViewDelegate.swift"; sourceTree = "<group>"; };
+               1F667CC0E19EAF34E5A4119E2121F585 /* Pods-Example */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-Example"; path = Pods_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+               2168A4DBBB0E9A91E7BB3EBCDFF7413A /* IQKeyboardManager+ToolbarActions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+ToolbarActions.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+ToolbarActions.swift"; sourceTree = "<group>"; };
+               243410B9535472556EA4BB6DBC133A0D /* Pods-Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Example.release.xcconfig"; sourceTree = "<group>"; };
+               24AF392592ADF9A6B7D56DEF6A064AFC /* ConstraintDescription.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintDescription.swift; path = Sources/ConstraintDescription.swift; sourceTree = "<group>"; };
+               267E8F754906E07A8B9DAF989F7C09C0 /* IQUIView+IQKeyboardToolbarDeprecated.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUIView+IQKeyboardToolbarDeprecated.swift"; path = "IQKeyboardManagerSwift/IQToolbar/IQUIView+IQKeyboardToolbarDeprecated.swift"; sourceTree = "<group>"; };
+               26D795F47486ED2F87593ABBA15C0100 /* ConstraintMakerExtendable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMakerExtendable.swift; path = Sources/ConstraintMakerExtendable.swift; sourceTree = "<group>"; };
+               28A29EBBD8A8588B67A9C3148F9D0740 /* IQKeyboardManager+Position.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+Position.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+Position.swift"; sourceTree = "<group>"; };
+               28D2337421B60A473CD4C044E069484B /* ConstraintAttributes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintAttributes.swift; path = Sources/ConstraintAttributes.swift; sourceTree = "<group>"; };
+               2A6A6F4E0441FEC671A89F081D3C468B /* IQTitleBarButtonItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQTitleBarButtonItem.swift; path = IQKeyboardManagerSwift/IQToolbar/IQTitleBarButtonItem.swift; sourceTree = "<group>"; };
+               2C7B65D34762D57F480123BE480B818E /* ConstraintRelation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintRelation.swift; path = Sources/ConstraintRelation.swift; sourceTree = "<group>"; };
+               2EB2A643D562618B99FBF0A0B2D33D2B /* IQUITextFieldView+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUITextFieldView+Additions.swift"; path = "IQKeyboardManagerSwift/UIKitExtensions/IQUITextFieldView+Additions.swift"; sourceTree = "<group>"; };
+               31C1D37707DFAA5E6A164BCC07834264 /* Pods-Example-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Example-Info.plist"; sourceTree = "<group>"; };
+               31CF3B3E56A735C453C5F18DEA482DFF /* IQKeyboardReturnKeyHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQKeyboardReturnKeyHandler.swift; path = IQKeyboardManagerSwift/ReturnKeyHandler/IQKeyboardReturnKeyHandler.swift; sourceTree = "<group>"; };
+               335622869A4630904A6E5FB9C4AC03AA /* Typealiases.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Typealiases.swift; path = Sources/Typealiases.swift; sourceTree = "<group>"; };
+               33A5157610B3BA3E11D9587B92F4C397 /* IQBarButtonItemConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQBarButtonItemConfiguration.swift; path = IQKeyboardManagerSwift/Configuration/IQBarButtonItemConfiguration.swift; sourceTree = "<group>"; };
+               35C305D3797C284E6F5BAA1D3E6F9BF8 /* Pods-Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-Example.modulemap"; sourceTree = "<group>"; };
+               38AABFEEFBDD4105F5BFF99D3C8E59CE /* ConstraintLayoutSupportDSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintLayoutSupportDSL.swift; path = Sources/ConstraintLayoutSupportDSL.swift; sourceTree = "<group>"; };
+               3C494A65C968572398F4DD06447758FA /* IQNSArray+Sort.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQNSArray+Sort.swift"; path = "IQKeyboardManagerSwift/UIKitExtensions/IQNSArray+Sort.swift"; sourceTree = "<group>"; };
+               3D0AC40B4B0DD69F0C6198DB43846BE0 /* IQToolbar.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQToolbar.swift; path = IQKeyboardManagerSwift/IQToolbar/IQToolbar.swift; sourceTree = "<group>"; };
+               3EBE1544A39BAB189DEDDA0F4545147E /* IQTextFieldViewInfo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQTextFieldViewInfo.swift; path = IQKeyboardManagerSwift/LIsteners/Info/IQTextFieldViewInfo.swift; sourceTree = "<group>"; };
+               4209C4E6D3813FBA036449385A05EFCE /* IQKeyboardListener.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQKeyboardListener.swift; path = IQKeyboardManagerSwift/LIsteners/IQKeyboardListener.swift; sourceTree = "<group>"; };
+               441854E35F81731E63E53DC7E4EEAD9D /* Pods-Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Example-acknowledgements.markdown"; sourceTree = "<group>"; };
+               45336DFC6C88342A9F741D2FEE970C1F /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = IQKeyboardManagerSwift/PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
+               4BB8E305B8F5BBD09897C3EEC890F39B /* IQUICollectionView+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUICollectionView+Additions.swift"; path = "IQKeyboardManagerSwift/UIKitExtensions/IQUICollectionView+Additions.swift"; sourceTree = "<group>"; };
+               4E89228FBA1EC8803A71B4301EA4F99D /* ConstraintConstantTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintConstantTarget.swift; path = Sources/ConstraintConstantTarget.swift; sourceTree = "<group>"; };
+               504C0FC5F20876E193F2FF38C0EA5088 /* LayoutConstraint.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LayoutConstraint.swift; path = Sources/LayoutConstraint.swift; sourceTree = "<group>"; };
+               5F3B65F524DB021715BC12735F4870B5 /* IQUIView+IQKeyboardToolbar.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUIView+IQKeyboardToolbar.swift"; path = "IQKeyboardManagerSwift/IQToolbar/IQUIView+IQKeyboardToolbar.swift"; sourceTree = "<group>"; };
+               5FDBFEC1141A4D55C757D492BC2C20DA /* Toast-Swift.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Toast-Swift.modulemap"; sourceTree = "<group>"; };
+               623266148C6A711F78F24ADF46E86438 /* IQScrollViewConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQScrollViewConfiguration.swift; path = IQKeyboardManagerSwift/Configuration/IQScrollViewConfiguration.swift; sourceTree = "<group>"; };
+               63E5CC4BB2BF49880BCB01A6523F1118 /* ConstraintLayoutGuide+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ConstraintLayoutGuide+Extensions.swift"; path = "Sources/ConstraintLayoutGuide+Extensions.swift"; sourceTree = "<group>"; };
+               6480E2EA7CA54E0E42264119F3DD71AD /* Toast-Swift-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Toast-Swift-umbrella.h"; sourceTree = "<group>"; };
+               69301F4E598400CA4CB88505EAF858B1 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; };
+               6E7502DF550C07D50EEC4D85AC276061 /* ConstraintView+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ConstraintView+Extensions.swift"; path = "Sources/ConstraintView+Extensions.swift"; sourceTree = "<group>"; };
+               6FC25131FACCDC8438C5F554800DC097 /* IQKeyboardManagerConstants.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQKeyboardManagerConstants.swift; path = IQKeyboardManagerSwift/Constants/IQKeyboardManagerConstants.swift; sourceTree = "<group>"; };
+               711E832E092D12FB2F90CE913442DA20 /* ResourceBundle-IQKeyboardManagerSwift-IQKeyboardManagerSwift-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-IQKeyboardManagerSwift-IQKeyboardManagerSwift-Info.plist"; sourceTree = "<group>"; };
+               7177E0F7EDAAACF7F30BF86978047DA8 /* ConstraintDSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintDSL.swift; path = Sources/ConstraintDSL.swift; sourceTree = "<group>"; };
+               71F58B658A639080D77D592017E8BED5 /* IQUIViewController+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUIViewController+Additions.swift"; path = "IQKeyboardManagerSwift/UIKitExtensions/IQUIViewController+Additions.swift"; sourceTree = "<group>"; };
+               7359C5366E43E1907650C5A863ECA683 /* ConstraintDirectionalInsets.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintDirectionalInsets.swift; path = Sources/ConstraintDirectionalInsets.swift; sourceTree = "<group>"; };
+               781F4E8646637FD21213695B7845466E /* ConstraintMakerRelatable+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ConstraintMakerRelatable+Extensions.swift"; path = "Sources/ConstraintMakerRelatable+Extensions.swift"; sourceTree = "<group>"; };
+               7825A90E082A1582EB16256B0E722B3F /* Pods-Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Example-umbrella.h"; sourceTree = "<group>"; };
+               7827F4A9CC80D317E7EC0632D268B40D /* Constraint.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Constraint.swift; path = Sources/Constraint.swift; sourceTree = "<group>"; };
+               786DA7E2F26C5CB8966412310C7277CC /* ConstraintViewDSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintViewDSL.swift; path = Sources/ConstraintViewDSL.swift; sourceTree = "<group>"; };
+               78B84BA581D1B72D71D33EAA79EF9EAD /* Toast-Swift-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Toast-Swift-dummy.m"; sourceTree = "<group>"; };
+               79C58FD990400B8AB18178EF88ED66BE /* IQToolbarPlaceholderConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQToolbarPlaceholderConfiguration.swift; path = IQKeyboardManagerSwift/Configuration/IQToolbarPlaceholderConfiguration.swift; sourceTree = "<group>"; };
+               7B786AD23AC011C7A9C451AEE9791523 /* ConstraintOffsetTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintOffsetTarget.swift; path = Sources/ConstraintOffsetTarget.swift; sourceTree = "<group>"; };
+               7D8FD8BB27FDD914F91F6033577D8C8C /* Toast.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Toast.swift; path = Toast/Toast.swift; sourceTree = "<group>"; };
+               7E51A9F23CAB98CBAB848469E2D2E183 /* ConstraintPriorityTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintPriorityTarget.swift; path = Sources/ConstraintPriorityTarget.swift; sourceTree = "<group>"; };
+               81E89D6561DC8A1E0CBA0ED55E074E46 /* IQKeyboardManagerSwift-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "IQKeyboardManagerSwift-umbrella.h"; sourceTree = "<group>"; };
+               83068BD0213FBA725C02317AD3423FAB /* ConstraintMakerPrioritizable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMakerPrioritizable.swift; path = Sources/ConstraintMakerPrioritizable.swift; sourceTree = "<group>"; };
+               837896B623DE365258BB6DF4FC55ACFA /* IQPlaceholderable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQPlaceholderable.swift; path = IQKeyboardManagerSwift/IQTextView/IQPlaceholderable.swift; sourceTree = "<group>"; };
+               84BE8ECCEF26804A8D79F702228A310A /* SnapKit.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SnapKit.release.xcconfig; sourceTree = "<group>"; };
+               8860AF7CDE4B3C1AFE143BE010DCA041 /* ConstraintPriority.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintPriority.swift; path = Sources/ConstraintPriority.swift; sourceTree = "<group>"; };
+               8D8069D3964814114ACEC3084C010B59 /* IQKeyboardManagerSwift-IQKeyboardManagerSwift */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "IQKeyboardManagerSwift-IQKeyboardManagerSwift"; path = IQKeyboardManagerSwift.bundle; sourceTree = BUILT_PRODUCTS_DIR; };
+               979486118B3E90C08386079D57962701 /* SnapKit */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SnapKit; path = SnapKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+               9820093DBE06A8821B66BA89A7BCEB75 /* ConstraintDirectionalInsetTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintDirectionalInsetTarget.swift; path = Sources/ConstraintDirectionalInsetTarget.swift; sourceTree = "<group>"; };
+               9945075F6E108B8ACAF8F32A238211BB /* IQTextFieldViewInfoModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQTextFieldViewInfoModel.swift; path = IQKeyboardManagerSwift/ReturnKeyHandler/IQTextFieldViewInfoModel.swift; sourceTree = "<group>"; };
+               9A94C4F2E1128ACF0FC8B4DD926D387E /* ConstraintMakerEditable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMakerEditable.swift; path = Sources/ConstraintMakerEditable.swift; sourceTree = "<group>"; };
+               9AF26C3D88411B38B1261FB7CF12D76B /* SnapKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SnapKit-dummy.m"; sourceTree = "<group>"; };
+               9CE1B6592A29ADBBC5FB53143C4D4955 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; };
+               9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
+               A0DBC24939A32FDF60D4274B29B62A66 /* SnapKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SnapKit-umbrella.h"; sourceTree = "<group>"; };
+               A4CC9447079CFC0CE0B24F0B709A13B5 /* ConstraintInsets.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintInsets.swift; path = Sources/ConstraintInsets.swift; sourceTree = "<group>"; };
+               A8841E119B0141289D182E582BE7277C /* IQTextView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQTextView.swift; path = IQKeyboardManagerSwift/IQTextView/IQTextView.swift; sourceTree = "<group>"; };
+               A8E950A16D00F649C54FFB30F81D7842 /* IQKeyboardManagerSwift */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = IQKeyboardManagerSwift; path = IQKeyboardManagerSwift.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+               A912741BDA04F14F5D091E6DD6B95F90 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; };
+               AFECBC24E09D0D25F822C27BD944AFD4 /* Pods-Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Example-frameworks.sh"; sourceTree = "<group>"; };
+               B45138496B85A072654D1D0F8EBBEDE5 /* Pods-Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Example.debug.xcconfig"; sourceTree = "<group>"; };
+               B49DC626E7DAE3E057513F2EE3D4E9A0 /* Debugging.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Debugging.swift; path = Sources/Debugging.swift; sourceTree = "<group>"; };
+               B670392E9D2D684F633CC90B5587F702 /* IQKeyboardManagerSwift-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "IQKeyboardManagerSwift-dummy.m"; sourceTree = "<group>"; };
+               B8AAC0C869D75F02354272FCD12F2C24 /* Toast-Swift.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Toast-Swift.debug.xcconfig"; sourceTree = "<group>"; };
+               B9DCB5EC0B1CDADD221717CADDF62359 /* SnapKit-SnapKit_Privacy */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "SnapKit-SnapKit_Privacy"; path = SnapKit_Privacy.bundle; sourceTree = BUILT_PRODUCTS_DIR; };
+               BA3BF63EDEE01B4EBDE785204C0EA42F /* IQKeyboardManager+Debug.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+Debug.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+Debug.swift"; sourceTree = "<group>"; };
+               BA3F3E99485012C444C03D8AEFAE4EDB /* IQUITableView+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUITableView+Additions.swift"; path = "IQKeyboardManagerSwift/UIKitExtensions/IQUITableView+Additions.swift"; sourceTree = "<group>"; };
+               BA5D78DC6B04FB370A2753ECC47B870A /* ConstraintRelatableTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintRelatableTarget.swift; path = Sources/ConstraintRelatableTarget.swift; sourceTree = "<group>"; };
+               BA7AA919DFBAE3752F49D688B9C019DD /* UIImage+NextPrevious.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIImage+NextPrevious.swift"; path = "IQKeyboardManagerSwift/UIKitExtensions/UIImage+NextPrevious.swift"; sourceTree = "<group>"; };
+               C1805F77AB3F135F0A35F48C1124283E /* IQUIScrollView+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUIScrollView+Additions.swift"; path = "IQKeyboardManagerSwift/UIKitExtensions/IQUIScrollView+Additions.swift"; sourceTree = "<group>"; };
+               C32EB114A07F0FA10A26E8BF6D41434A /* IQActiveConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQActiveConfiguration.swift; path = IQKeyboardManagerSwift/Configuration/IQActiveConfiguration.swift; sourceTree = "<group>"; };
+               C5F67D8F7949A21CB7892A9EAC3DFD2F /* SnapKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SnapKit-prefix.pch"; sourceTree = "<group>"; };
+               C660EC43022B9B30F27A2D41B4FEF7A5 /* ConstraintView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintView.swift; path = Sources/ConstraintView.swift; sourceTree = "<group>"; };
+               C9BD6044E2352EFA372C1004BF1CB58C /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = Sources/PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
+               CA1B618A2D4FFF48117063DC941E3814 /* ConstraintLayoutGuide.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintLayoutGuide.swift; path = Sources/ConstraintLayoutGuide.swift; sourceTree = "<group>"; };
+               CBE86E23D0923F9E6C71B2FB2E435963 /* IQKeyboardConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQKeyboardConfiguration.swift; path = IQKeyboardManagerSwift/Configuration/IQKeyboardConfiguration.swift; sourceTree = "<group>"; };
+               D3F8D179AF556D50D6BF4F71AC2B45E5 /* ConstraintInsetTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintInsetTarget.swift; path = Sources/ConstraintInsetTarget.swift; sourceTree = "<group>"; };
+               D6043471C96F93DC41F7DD1E0D7D8B35 /* Toast-Swift */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Toast-Swift"; path = Toast_Swift.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+               D63AC5FF4C8B919A3BF3D780A5CFF10B /* IQKeyboardManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQKeyboardManager.swift; path = IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager.swift; sourceTree = "<group>"; };
+               D6D7C498FA339E02BD53ECB8916CEA8E /* Pods-Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Example-dummy.m"; sourceTree = "<group>"; };
+               D6F1E2045960E76F900AD8924237FF63 /* SnapKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SnapKit.modulemap; sourceTree = "<group>"; };
+               D885C8DF1AD7EC186F0CD564F9CFDDCC /* IQRootControllerConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQRootControllerConfiguration.swift; path = IQKeyboardManagerSwift/Configuration/IQRootControllerConfiguration.swift; sourceTree = "<group>"; };
+               DBAD9690B71B5943C33BA0C09DB2A383 /* IQKeyboardManagerSwift-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "IQKeyboardManagerSwift-prefix.pch"; sourceTree = "<group>"; };
+               DC81F87185C4B726F5E414F7F459831F /* IQKeyboardManagerSwift.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = IQKeyboardManagerSwift.debug.xcconfig; sourceTree = "<group>"; };
+               DC865F72E5F47038DDA969FCC4136472 /* IQToolbarConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQToolbarConfiguration.swift; path = IQKeyboardManagerSwift/Configuration/IQToolbarConfiguration.swift; sourceTree = "<group>"; };
+               DCE6D291103C2D874E4B830F884DC9E2 /* SnapKit-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SnapKit-Info.plist"; sourceTree = "<group>"; };
+               DDB92A2A172FC35DD4E24E6A6B5103EB /* IQInvocation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQInvocation.swift; path = IQKeyboardManagerSwift/IQToolbar/IQInvocation.swift; sourceTree = "<group>"; };
+               DF4474210B83011E99ECFA42B0FBEF0F /* ConstraintLayoutSupport.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintLayoutSupport.swift; path = Sources/ConstraintLayoutSupport.swift; sourceTree = "<group>"; };
+               E06137D498517DD9E8DA43F974135CE5 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = Toast/Resources/PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
+               E217376D2927BAF54BFE1B5FFB3239FE /* Toast-Swift-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Toast-Swift-Info.plist"; sourceTree = "<group>"; };
+               E5907317B7C22A4FDA666EB3B30E5520 /* Toast-Swift-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Toast-Swift-prefix.pch"; sourceTree = "<group>"; };
+               E84B50B0E6C401F03CFBB289CADC11C7 /* Toast-Swift.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Toast-Swift.release.xcconfig"; sourceTree = "<group>"; };
+               E85435BBABFCFD56B7EF9E6697212B7E /* IQPreviousNextView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQPreviousNextView.swift; path = IQKeyboardManagerSwift/IQToolbar/IQPreviousNextView.swift; sourceTree = "<group>"; };
+               E9772F0CC15AB90A422885ED47164415 /* IQKeyboardInfo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQKeyboardInfo.swift; path = IQKeyboardManagerSwift/LIsteners/Info/IQKeyboardInfo.swift; sourceTree = "<group>"; };
+               E9BD95591930D45D768ABE6E85A729CD /* ConstraintLayoutGuideDSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintLayoutGuideDSL.swift; path = Sources/ConstraintLayoutGuideDSL.swift; sourceTree = "<group>"; };
+               EA21B344259B58996DB73382B1B1521F /* Pods-Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Example-acknowledgements.plist"; sourceTree = "<group>"; };
+               EAC87C7CE96871270C101D7F8EBE0A3D /* IQKeyboardManager+Internal.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+Internal.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+Internal.swift"; sourceTree = "<group>"; };
+               EC5D6F56C551358D37CD3CC8CDADB308 /* IQKeyboardManagerCompatible.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQKeyboardManagerCompatible.swift; path = IQKeyboardManagerSwift/IQKeyboardManagerCompatible/IQKeyboardManagerCompatible.swift; sourceTree = "<group>"; };
+               ED3234428715ED881C945B13B58F9250 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };
+               EE101B4C70CDDC67D0D10026A117A845 /* IQKeyboardReturnKeyHandler+TextFieldDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardReturnKeyHandler+TextFieldDelegate.swift"; path = "IQKeyboardManagerSwift/ReturnKeyHandler/IQKeyboardReturnKeyHandler+TextFieldDelegate.swift"; sourceTree = "<group>"; };
+               EEDED7281E5EFA018E864E104E2D7C3B /* ConstraintItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintItem.swift; path = Sources/ConstraintItem.swift; sourceTree = "<group>"; };
+               F1E0DC4EDC70C1C7E1B553E8EAB865DE /* SnapKit.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SnapKit.debug.xcconfig; sourceTree = "<group>"; };
+               F587FADFCEC8E76A43BF23EAB9C758DE /* ResourceBundle-SnapKit_Privacy-SnapKit-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-SnapKit_Privacy-SnapKit-Info.plist"; sourceTree = "<group>"; };
+               F5D4B046C004C89840FD41919DA848ED /* IQBarButtonItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQBarButtonItem.swift; path = IQKeyboardManagerSwift/IQToolbar/IQBarButtonItem.swift; sourceTree = "<group>"; };
+               F7EBF485974C47A16B03CF21FC82DA44 /* ConstraintMakerRelatable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMakerRelatable.swift; path = Sources/ConstraintMakerRelatable.swift; sourceTree = "<group>"; };
+               F99AAB2A26686038394AE2120B949E6D /* IQKeyboardManager+UIKeyboardNotification.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+UIKeyboardNotification.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+UIKeyboardNotification.swift"; sourceTree = "<group>"; };
+               FA043C571AB1FB654FCD317C806CC6EA /* ConstraintMultiplierTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMultiplierTarget.swift; path = Sources/ConstraintMultiplierTarget.swift; sourceTree = "<group>"; };
+               FDF7C6BB5F4F37EB3CCB77A22DD4C540 /* ConstraintConfig.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintConfig.swift; path = Sources/ConstraintConfig.swift; sourceTree = "<group>"; };
+               FDFF3215A962C67DD4B1E824B649F8CC /* IQKeyboardManager+Toolbar.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+Toolbar.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+Toolbar.swift"; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+               2F4289D96317EFE744EF7E3DC4845EF0 /* Frameworks */ = {
+                       isa = PBXFrameworksBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+               33428AC36668E3ED52DB70316F843FB8 /* Frameworks */ = {
+                       isa = PBXFrameworksBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               205EB01AED14BB574DD54EAFE26E4786 /* Foundation.framework in Frameworks */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+               43B0ED7D5C0DC9BB28CE90E92619123A /* Frameworks */ = {
+                       isa = PBXFrameworksBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               B0786F3CFD6093FC5FEDE748445C6FAC /* Foundation.framework in Frameworks */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+               63C0D146967AEB622B0235147CA225B5 /* Frameworks */ = {
+                       isa = PBXFrameworksBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+               7E729417AF642CFCDC667635496015F6 /* Frameworks */ = {
+                       isa = PBXFrameworksBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+               A76B7572AD1CD0125BA8227332330DC9 /* Frameworks */ = {
+                       isa = PBXFrameworksBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               663F1294E62250BD0DF7888F2173B0D6 /* CoreGraphics.framework in Frameworks */,
+                               851B0A1B6750B5464D9300F8DE62CAF2 /* Foundation.framework in Frameworks */,
+                               5CA32A2520B7868CF67B02C1C830F5A8 /* QuartzCore.framework in Frameworks */,
+                               743A1D7C259156C99A14E4B1FD01A52C /* UIKit.framework in Frameworks */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+               F151972567B4508E965D5BFCCF7174A1 /* Frameworks */ = {
+                       isa = PBXFrameworksBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               070601D9903BE1D11DD6DD1367C3F012 /* Foundation.framework in Frameworks */,
+                               7B0BC17748C9775A8299A96D501CE5A8 /* QuartzCore.framework in Frameworks */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+               0DF2274BAA525EE93480E9943477B6CF /* Resources */ = {
+                       isa = PBXGroup;
+                       children = (
+                               45336DFC6C88342A9F741D2FEE970C1F /* PrivacyInfo.xcprivacy */,
+                       );
+                       name = Resources;
+                       sourceTree = "<group>";
+               };
+               143C29E3BE492836E12A84EF2EC76B27 /* iOS */ = {
+                       isa = PBXGroup;
+                       children = (
+                               9CE1B6592A29ADBBC5FB53143C4D4955 /* CoreGraphics.framework */,
+                               ED3234428715ED881C945B13B58F9250 /* Foundation.framework */,
+                               A912741BDA04F14F5D091E6DD6B95F90 /* QuartzCore.framework */,
+                               69301F4E598400CA4CB88505EAF858B1 /* UIKit.framework */,
+                       );
+                       name = iOS;
+                       sourceTree = "<group>";
+               };
+               5EE7F1DD399A6F431D5287F4A6F845BB /* Products */ = {
+                       isa = PBXGroup;
+                       children = (
+                               A8E950A16D00F649C54FFB30F81D7842 /* IQKeyboardManagerSwift */,
+                               8D8069D3964814114ACEC3084C010B59 /* IQKeyboardManagerSwift-IQKeyboardManagerSwift */,
+                               1F667CC0E19EAF34E5A4119E2121F585 /* Pods-Example */,
+                               979486118B3E90C08386079D57962701 /* SnapKit */,
+                               B9DCB5EC0B1CDADD221717CADDF62359 /* SnapKit-SnapKit_Privacy */,
+                               D6043471C96F93DC41F7DD1E0D7D8B35 /* Toast-Swift */,
+                               13FD39576595D8A884BF5166065C5236 /* Toast-Swift-Toast-Swift */,
+                       );
+                       name = Products;
+                       sourceTree = "<group>";
+               };
+               74DD96A69BBE06E12CF55A262ABFF0F7 /* Support Files */ = {
+                       isa = PBXGroup;
+                       children = (
+                               05ADABC71B19770B1EC37350B70BE449 /* IQKeyboardManagerSwift.modulemap */,
+                               B670392E9D2D684F633CC90B5587F702 /* IQKeyboardManagerSwift-dummy.m */,
+                               0C1553D064BF9CC76243991B2983E53D /* IQKeyboardManagerSwift-Info.plist */,
+                               DBAD9690B71B5943C33BA0C09DB2A383 /* IQKeyboardManagerSwift-prefix.pch */,
+                               81E89D6561DC8A1E0CBA0ED55E074E46 /* IQKeyboardManagerSwift-umbrella.h */,
+                               DC81F87185C4B726F5E414F7F459831F /* IQKeyboardManagerSwift.debug.xcconfig */,
+                               05C92DF614B75B78526637B00FED4FDB /* IQKeyboardManagerSwift.release.xcconfig */,
+                               711E832E092D12FB2F90CE913442DA20 /* ResourceBundle-IQKeyboardManagerSwift-IQKeyboardManagerSwift-Info.plist */,
+                       );
+                       name = "Support Files";
+                       path = "../Target Support Files/IQKeyboardManagerSwift";
+                       sourceTree = "<group>";
+               };
+               88B6BA447DEB96587B9F9A32B2CD7704 /* Support Files */ = {
+                       isa = PBXGroup;
+                       children = (
+                               F587FADFCEC8E76A43BF23EAB9C758DE /* ResourceBundle-SnapKit_Privacy-SnapKit-Info.plist */,
+                               D6F1E2045960E76F900AD8924237FF63 /* SnapKit.modulemap */,
+                               9AF26C3D88411B38B1261FB7CF12D76B /* SnapKit-dummy.m */,
+                               DCE6D291103C2D874E4B830F884DC9E2 /* SnapKit-Info.plist */,
+                               C5F67D8F7949A21CB7892A9EAC3DFD2F /* SnapKit-prefix.pch */,
+                               A0DBC24939A32FDF60D4274B29B62A66 /* SnapKit-umbrella.h */,
+                               F1E0DC4EDC70C1C7E1B553E8EAB865DE /* SnapKit.debug.xcconfig */,
+                               84BE8ECCEF26804A8D79F702228A310A /* SnapKit.release.xcconfig */,
+                       );
+                       name = "Support Files";
+                       path = "../Target Support Files/SnapKit";
+                       sourceTree = "<group>";
+               };
+               9ABB4080BB946FC60C39048C1F84C6F2 /* SnapKit */ = {
+                       isa = PBXGroup;
+                       children = (
+                               7827F4A9CC80D317E7EC0632D268B40D /* Constraint.swift */,
+                               28D2337421B60A473CD4C044E069484B /* ConstraintAttributes.swift */,
+                               FDF7C6BB5F4F37EB3CCB77A22DD4C540 /* ConstraintConfig.swift */,
+                               4E89228FBA1EC8803A71B4301EA4F99D /* ConstraintConstantTarget.swift */,
+                               24AF392592ADF9A6B7D56DEF6A064AFC /* ConstraintDescription.swift */,
+                               7359C5366E43E1907650C5A863ECA683 /* ConstraintDirectionalInsets.swift */,
+                               9820093DBE06A8821B66BA89A7BCEB75 /* ConstraintDirectionalInsetTarget.swift */,
+                               7177E0F7EDAAACF7F30BF86978047DA8 /* ConstraintDSL.swift */,
+                               A4CC9447079CFC0CE0B24F0B709A13B5 /* ConstraintInsets.swift */,
+                               D3F8D179AF556D50D6BF4F71AC2B45E5 /* ConstraintInsetTarget.swift */,
+                               EEDED7281E5EFA018E864E104E2D7C3B /* ConstraintItem.swift */,
+                               CA1B618A2D4FFF48117063DC941E3814 /* ConstraintLayoutGuide.swift */,
+                               63E5CC4BB2BF49880BCB01A6523F1118 /* ConstraintLayoutGuide+Extensions.swift */,
+                               E9BD95591930D45D768ABE6E85A729CD /* ConstraintLayoutGuideDSL.swift */,
+                               DF4474210B83011E99ECFA42B0FBEF0F /* ConstraintLayoutSupport.swift */,
+                               38AABFEEFBDD4105F5BFF99D3C8E59CE /* ConstraintLayoutSupportDSL.swift */,
+                               1D356761FB2DAA9C91DF8D9D126DE637 /* ConstraintMaker.swift */,
+                               9A94C4F2E1128ACF0FC8B4DD926D387E /* ConstraintMakerEditable.swift */,
+                               26D795F47486ED2F87593ABBA15C0100 /* ConstraintMakerExtendable.swift */,
+                               0309EC85084CD7E4C3E4F71EA2E881AE /* ConstraintMakerFinalizable.swift */,
+                               83068BD0213FBA725C02317AD3423FAB /* ConstraintMakerPrioritizable.swift */,
+                               F7EBF485974C47A16B03CF21FC82DA44 /* ConstraintMakerRelatable.swift */,
+                               781F4E8646637FD21213695B7845466E /* ConstraintMakerRelatable+Extensions.swift */,
+                               FA043C571AB1FB654FCD317C806CC6EA /* ConstraintMultiplierTarget.swift */,
+                               7B786AD23AC011C7A9C451AEE9791523 /* ConstraintOffsetTarget.swift */,
+                               8860AF7CDE4B3C1AFE143BE010DCA041 /* ConstraintPriority.swift */,
+                               7E51A9F23CAB98CBAB848469E2D2E183 /* ConstraintPriorityTarget.swift */,
+                               BA5D78DC6B04FB370A2753ECC47B870A /* ConstraintRelatableTarget.swift */,
+                               2C7B65D34762D57F480123BE480B818E /* ConstraintRelation.swift */,
+                               C660EC43022B9B30F27A2D41B4FEF7A5 /* ConstraintView.swift */,
+                               6E7502DF550C07D50EEC4D85AC276061 /* ConstraintView+Extensions.swift */,
+                               786DA7E2F26C5CB8966412310C7277CC /* ConstraintViewDSL.swift */,
+                               B49DC626E7DAE3E057513F2EE3D4E9A0 /* Debugging.swift */,
+                               504C0FC5F20876E193F2FF38C0EA5088 /* LayoutConstraint.swift */,
+                               02EE4CC7F651DC165672D48020AB0277 /* LayoutConstraintItem.swift */,
+                               335622869A4630904A6E5FB9C4AC03AA /* Typealiases.swift */,
+                               06A48ED9920272E365B9A2DBAD5ACC2F /* UILayoutSupport+Extensions.swift */,
+                               E7DFF981E027731143061E8C98864CC6 /* Resources */,
+                               88B6BA447DEB96587B9F9A32B2CD7704 /* Support Files */,
+                       );
+                       name = SnapKit;
+                       path = SnapKit;
+                       sourceTree = "<group>";
+               };
+               9BDBD95ED116334D1B2835202D8D3060 /* Pods-Example */ = {
+                       isa = PBXGroup;
+                       children = (
+                               35C305D3797C284E6F5BAA1D3E6F9BF8 /* Pods-Example.modulemap */,
+                               441854E35F81731E63E53DC7E4EEAD9D /* Pods-Example-acknowledgements.markdown */,
+                               EA21B344259B58996DB73382B1B1521F /* Pods-Example-acknowledgements.plist */,
+                               D6D7C498FA339E02BD53ECB8916CEA8E /* Pods-Example-dummy.m */,
+                               AFECBC24E09D0D25F822C27BD944AFD4 /* Pods-Example-frameworks.sh */,
+                               31C1D37707DFAA5E6A164BCC07834264 /* Pods-Example-Info.plist */,
+                               7825A90E082A1582EB16256B0E722B3F /* Pods-Example-umbrella.h */,
+                               B45138496B85A072654D1D0F8EBBEDE5 /* Pods-Example.debug.xcconfig */,
+                               243410B9535472556EA4BB6DBC133A0D /* Pods-Example.release.xcconfig */,
+                       );
+                       name = "Pods-Example";
+                       path = "Target Support Files/Pods-Example";
+                       sourceTree = "<group>";
+               };
+               BA4F31F07263C99FC76E66D632A59F09 /* Frameworks */ = {
+                       isa = PBXGroup;
+                       children = (
+                               143C29E3BE492836E12A84EF2EC76B27 /* iOS */,
+                       );
+                       name = Frameworks;
+                       sourceTree = "<group>";
+               };
+               C5727BCEB160DAEFF48EA5553657AD68 /* Pods */ = {
+                       isa = PBXGroup;
+                       children = (
+                               D0F5A8D53F6C858574351D9CEE01F925 /* IQKeyboardManagerSwift */,
+                               9ABB4080BB946FC60C39048C1F84C6F2 /* SnapKit */,
+                               EB5AD41BBA9A28F005AE507237CA85B7 /* Toast-Swift */,
+                       );
+                       name = Pods;
+                       sourceTree = "<group>";
+               };
+               CE2E825F08D3AD0FD76E6D78D7512ED0 /* Targets Support Files */ = {
+                       isa = PBXGroup;
+                       children = (
+                               9BDBD95ED116334D1B2835202D8D3060 /* Pods-Example */,
+                       );
+                       name = "Targets Support Files";
+                       sourceTree = "<group>";
+               };
+               CF1408CF629C7361332E53B88F7BD30C = {
+                       isa = PBXGroup;
+                       children = (
+                               9D940727FF8FB9C785EB98E56350EF41 /* Podfile */,
+                               BA4F31F07263C99FC76E66D632A59F09 /* Frameworks */,
+                               C5727BCEB160DAEFF48EA5553657AD68 /* Pods */,
+                               5EE7F1DD399A6F431D5287F4A6F845BB /* Products */,
+                               CE2E825F08D3AD0FD76E6D78D7512ED0 /* Targets Support Files */,
+                       );
+                       sourceTree = "<group>";
+               };
+               D0F5A8D53F6C858574351D9CEE01F925 /* IQKeyboardManagerSwift */ = {
+                       isa = PBXGroup;
+                       children = (
+                               C32EB114A07F0FA10A26E8BF6D41434A /* IQActiveConfiguration.swift */,
+                               F5D4B046C004C89840FD41919DA848ED /* IQBarButtonItem.swift */,
+                               33A5157610B3BA3E11D9587B92F4C397 /* IQBarButtonItemConfiguration.swift */,
+                               DDB92A2A172FC35DD4E24E6A6B5103EB /* IQInvocation.swift */,
+                               CBE86E23D0923F9E6C71B2FB2E435963 /* IQKeyboardConfiguration.swift */,
+                               E9772F0CC15AB90A422885ED47164415 /* IQKeyboardInfo.swift */,
+                               4209C4E6D3813FBA036449385A05EFCE /* IQKeyboardListener.swift */,
+                               D63AC5FF4C8B919A3BF3D780A5CFF10B /* IQKeyboardManager.swift */,
+                               BA3BF63EDEE01B4EBDE785204C0EA42F /* IQKeyboardManager+Debug.swift */,
+                               14DFA4E68F4494F72B504BD1DD4BEDC9 /* IQKeyboardManager+Deprecated.swift */,
+                               EAC87C7CE96871270C101D7F8EBE0A3D /* IQKeyboardManager+Internal.swift */,
+                               28A29EBBD8A8588B67A9C3148F9D0740 /* IQKeyboardManager+Position.swift */,
+                               FDFF3215A962C67DD4B1E824B649F8CC /* IQKeyboardManager+Toolbar.swift */,
+                               2168A4DBBB0E9A91E7BB3EBCDFF7413A /* IQKeyboardManager+ToolbarActions.swift */,
+                               F99AAB2A26686038394AE2120B949E6D /* IQKeyboardManager+UIKeyboardNotification.swift */,
+                               18322484F39B0AA1F691FBFCCCA1C3FB /* IQKeyboardManager+UITextFieldViewNotification.swift */,
+                               EC5D6F56C551358D37CD3CC8CDADB308 /* IQKeyboardManagerCompatible.swift */,
+                               6FC25131FACCDC8438C5F554800DC097 /* IQKeyboardManagerConstants.swift */,
+                               31CF3B3E56A735C453C5F18DEA482DFF /* IQKeyboardReturnKeyHandler.swift */,
+                               EE101B4C70CDDC67D0D10026A117A845 /* IQKeyboardReturnKeyHandler+TextFieldDelegate.swift */,
+                               1D832084CF440FCE5F20FBC5B98997D5 /* IQKeyboardReturnKeyHandler+TextViewDelegate.swift */,
+                               3C494A65C968572398F4DD06447758FA /* IQNSArray+Sort.swift */,
+                               837896B623DE365258BB6DF4FC55ACFA /* IQPlaceholderable.swift */,
+                               E85435BBABFCFD56B7EF9E6697212B7E /* IQPreviousNextView.swift */,
+                               D885C8DF1AD7EC186F0CD564F9CFDDCC /* IQRootControllerConfiguration.swift */,
+                               623266148C6A711F78F24ADF46E86438 /* IQScrollViewConfiguration.swift */,
+                               3EBE1544A39BAB189DEDDA0F4545147E /* IQTextFieldViewInfo.swift */,
+                               9945075F6E108B8ACAF8F32A238211BB /* IQTextFieldViewInfoModel.swift */,
+                               1B762AC05EB903CB7142202224E8B187 /* IQTextFieldViewListener.swift */,
+                               A8841E119B0141289D182E582BE7277C /* IQTextView.swift */,
+                               2A6A6F4E0441FEC671A89F081D3C468B /* IQTitleBarButtonItem.swift */,
+                               3D0AC40B4B0DD69F0C6198DB43846BE0 /* IQToolbar.swift */,
+                               DC865F72E5F47038DDA969FCC4136472 /* IQToolbarConfiguration.swift */,
+                               79C58FD990400B8AB18178EF88ED66BE /* IQToolbarPlaceholderConfiguration.swift */,
+                               4BB8E305B8F5BBD09897C3EEC890F39B /* IQUICollectionView+Additions.swift */,
+                               C1805F77AB3F135F0A35F48C1124283E /* IQUIScrollView+Additions.swift */,
+                               BA3F3E99485012C444C03D8AEFAE4EDB /* IQUITableView+Additions.swift */,
+                               2EB2A643D562618B99FBF0A0B2D33D2B /* IQUITextFieldView+Additions.swift */,
+                               09C831BC0433AB4F6D60421796F44B70 /* IQUIView+Hierarchy.swift */,
+                               5F3B65F524DB021715BC12735F4870B5 /* IQUIView+IQKeyboardToolbar.swift */,
+                               267E8F754906E07A8B9DAF989F7C09C0 /* IQUIView+IQKeyboardToolbarDeprecated.swift */,
+                               71F58B658A639080D77D592017E8BED5 /* IQUIViewController+Additions.swift */,
+                               10D70A661E9C006E9436199E3F97E55E /* MainActor+AssumeIsolated.swift */,
+                               BA7AA919DFBAE3752F49D688B9C019DD /* UIImage+NextPrevious.swift */,
+                               0DF2274BAA525EE93480E9943477B6CF /* Resources */,
+                               74DD96A69BBE06E12CF55A262ABFF0F7 /* Support Files */,
+                       );
+                       name = IQKeyboardManagerSwift;
+                       path = IQKeyboardManagerSwift;
+                       sourceTree = "<group>";
+               };
+               E128F5538CF424786C9754BA2173FEDC /* Support Files */ = {
+                       isa = PBXGroup;
+                       children = (
+                               157412EB9B9CCDC0D9BB2C649A235073 /* ResourceBundle-Toast-Swift-Toast-Swift-Info.plist */,
+                               5FDBFEC1141A4D55C757D492BC2C20DA /* Toast-Swift.modulemap */,
+                               78B84BA581D1B72D71D33EAA79EF9EAD /* Toast-Swift-dummy.m */,
+                               E217376D2927BAF54BFE1B5FFB3239FE /* Toast-Swift-Info.plist */,
+                               E5907317B7C22A4FDA666EB3B30E5520 /* Toast-Swift-prefix.pch */,
+                               6480E2EA7CA54E0E42264119F3DD71AD /* Toast-Swift-umbrella.h */,
+                               B8AAC0C869D75F02354272FCD12F2C24 /* Toast-Swift.debug.xcconfig */,
+                               E84B50B0E6C401F03CFBB289CADC11C7 /* Toast-Swift.release.xcconfig */,
+                       );
+                       name = "Support Files";
+                       path = "../Target Support Files/Toast-Swift";
+                       sourceTree = "<group>";
+               };
+               E7DFF981E027731143061E8C98864CC6 /* Resources */ = {
+                       isa = PBXGroup;
+                       children = (
+                               C9BD6044E2352EFA372C1004BF1CB58C /* PrivacyInfo.xcprivacy */,
+                       );
+                       name = Resources;
+                       sourceTree = "<group>";
+               };
+               E84753AE6C1845F36E5393F67810864F /* Resources */ = {
+                       isa = PBXGroup;
+                       children = (
+                               E06137D498517DD9E8DA43F974135CE5 /* PrivacyInfo.xcprivacy */,
+                       );
+                       name = Resources;
+                       sourceTree = "<group>";
+               };
+               EB5AD41BBA9A28F005AE507237CA85B7 /* Toast-Swift */ = {
+                       isa = PBXGroup;
+                       children = (
+                               7D8FD8BB27FDD914F91F6033577D8C8C /* Toast.swift */,
+                               E84753AE6C1845F36E5393F67810864F /* Resources */,
+                               E128F5538CF424786C9754BA2173FEDC /* Support Files */,
+                       );
+                       name = "Toast-Swift";
+                       path = "Toast-Swift";
+                       sourceTree = "<group>";
+               };
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+               2B091D63CFDBA0D293AC6EF71BF554D0 /* Headers */ = {
+                       isa = PBXHeadersBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               3A3D2697E544C969F5C736F404A1BB66 /* IQKeyboardManagerSwift-umbrella.h in Headers */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+               448E74EF9D17B3DCC5432BB6215BCAB0 /* Headers */ = {
+                       isa = PBXHeadersBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               0C7E48CC6391092D8F5B4341E1EE7485 /* Toast-Swift-umbrella.h in Headers */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+               5B1500FE995B9224E0AF0B42CE93C03B /* Headers */ = {
+                       isa = PBXHeadersBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               57C4F6EFB30DDD14E960AC2D6B34F904 /* SnapKit-umbrella.h in Headers */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+               BF9D8CBB4302A946E2DF2BB23EB6388A /* Headers */ = {
+                       isa = PBXHeadersBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               8E009955E1CD921871B03BCDDCE7650F /* Pods-Example-umbrella.h in Headers */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+               0AEE99A309977BD12A049FF48AF9BA4B /* Pods-Example */ = {
+                       isa = PBXNativeTarget;
+                       buildConfigurationList = FD8F4491AE56B90FFA30649FF29EFED4 /* Build configuration list for PBXNativeTarget "Pods-Example" */;
+                       buildPhases = (
+                               BF9D8CBB4302A946E2DF2BB23EB6388A /* Headers */,
+                               A10428FDA1C369E3D7AF139A76096E0E /* Sources */,
+                               43B0ED7D5C0DC9BB28CE90E92619123A /* Frameworks */,
+                               2655738F6FE447ED95B73C737A3C8250 /* Resources */,
+                       );
+                       buildRules = (
+                       );
+                       dependencies = (
+                               016E53615B5CD659DCF5BB8F525501B6 /* PBXTargetDependency */,
+                               4E73EF9A981CC1C3C53CB8D0311ACD00 /* PBXTargetDependency */,
+                               23D3D2DCA595E8AA97490A5FCFD73C43 /* PBXTargetDependency */,
+                       );
+                       name = "Pods-Example";
+                       productName = Pods_Example;
+                       productReference = 1F667CC0E19EAF34E5A4119E2121F585 /* Pods-Example */;
+                       productType = "com.apple.product-type.framework";
+               };
+               19622742EBA51E823D6DAE3F8CDBFAD4 /* SnapKit */ = {
+                       isa = PBXNativeTarget;
+                       buildConfigurationList = 80CE967CAA1D35721519F892BAF7A19B /* Build configuration list for PBXNativeTarget "SnapKit" */;
+                       buildPhases = (
+                               5B1500FE995B9224E0AF0B42CE93C03B /* Headers */,
+                               F7AC6792C89443C7B212A06E810BAB97 /* Sources */,
+                               33428AC36668E3ED52DB70316F843FB8 /* Frameworks */,
+                               1DEDF411E550D85A1218E1655456A9CD /* Resources */,
+                       );
+                       buildRules = (
+                       );
+                       dependencies = (
+                               F1D8F00E40A734B93E792ACC6A1C62EB /* PBXTargetDependency */,
+                       );
+                       name = SnapKit;
+                       productName = SnapKit;
+                       productReference = 979486118B3E90C08386079D57962701 /* SnapKit */;
+                       productType = "com.apple.product-type.framework";
+               };
+               8A8DB685241263AFDF5E6B20FE67B93A /* SnapKit-SnapKit_Privacy */ = {
+                       isa = PBXNativeTarget;
+                       buildConfigurationList = 87EC2E578DA4ADCE9FBEA443B93BFBAA /* Build configuration list for PBXNativeTarget "SnapKit-SnapKit_Privacy" */;
+                       buildPhases = (
+                               B23B589ACD3B43A19C4C156DB2709085 /* Sources */,
+                               63C0D146967AEB622B0235147CA225B5 /* Frameworks */,
+                               F23DCF14B4B7E688B791BD0F769901C4 /* Resources */,
+                       );
+                       buildRules = (
+                       );
+                       dependencies = (
+                       );
+                       name = "SnapKit-SnapKit_Privacy";
+                       productName = SnapKit_Privacy;
+                       productReference = B9DCB5EC0B1CDADD221717CADDF62359 /* SnapKit-SnapKit_Privacy */;
+                       productType = "com.apple.product-type.bundle";
+               };
+               982A68D37F5DCBC1FC1FDC0BB2F0EB8E /* IQKeyboardManagerSwift-IQKeyboardManagerSwift */ = {
+                       isa = PBXNativeTarget;
+                       buildConfigurationList = BBDCAD9CCBFFC44C15124718110FB1B7 /* Build configuration list for PBXNativeTarget "IQKeyboardManagerSwift-IQKeyboardManagerSwift" */;
+                       buildPhases = (
+                               1E639D92EFBA8D08000FFF765BE68014 /* Sources */,
+                               2F4289D96317EFE744EF7E3DC4845EF0 /* Frameworks */,
+                               57CDCDFD3D2F88CB2E0DCCBFF9155E7C /* Resources */,
+                       );
+                       buildRules = (
+                       );
+                       dependencies = (
+                       );
+                       name = "IQKeyboardManagerSwift-IQKeyboardManagerSwift";
+                       productName = IQKeyboardManagerSwift;
+                       productReference = 8D8069D3964814114ACEC3084C010B59 /* IQKeyboardManagerSwift-IQKeyboardManagerSwift */;
+                       productType = "com.apple.product-type.bundle";
+               };
+               B490E7485944099E16C9CBD79119D1D4 /* IQKeyboardManagerSwift */ = {
+                       isa = PBXNativeTarget;
+                       buildConfigurationList = 51448EA139E840FA83FCECC113A519FE /* Build configuration list for PBXNativeTarget "IQKeyboardManagerSwift" */;
+                       buildPhases = (
+                               2B091D63CFDBA0D293AC6EF71BF554D0 /* Headers */,
+                               BC6DF187A160622FB3D6013D127DA817 /* Sources */,
+                               A76B7572AD1CD0125BA8227332330DC9 /* Frameworks */,
+                               CCD7A20148BCEAF20B03FE2494D7BCEC /* Resources */,
+                       );
+                       buildRules = (
+                       );
+                       dependencies = (
+                               C95682515116F5D888245FB5F5E9F544 /* PBXTargetDependency */,
+                       );
+                       name = IQKeyboardManagerSwift;
+                       productName = IQKeyboardManagerSwift;
+                       productReference = A8E950A16D00F649C54FFB30F81D7842 /* IQKeyboardManagerSwift */;
+                       productType = "com.apple.product-type.framework";
+               };
+               B990BD87169C76A3ED3FE8A9258D91A3 /* Toast-Swift */ = {
+                       isa = PBXNativeTarget;
+                       buildConfigurationList = 9C146D0EDFB76FE1156D655A897B6E94 /* Build configuration list for PBXNativeTarget "Toast-Swift" */;
+                       buildPhases = (
+                               448E74EF9D17B3DCC5432BB6215BCAB0 /* Headers */,
+                               B4A020AF82EF829322C86201C5C31A20 /* Sources */,
+                               F151972567B4508E965D5BFCCF7174A1 /* Frameworks */,
+                               A694D13AD95802E0936531BC8DAEBB89 /* Resources */,
+                       );
+                       buildRules = (
+                       );
+                       dependencies = (
+                               69C0920E0DC1566DB93F7812575E5412 /* PBXTargetDependency */,
+                       );
+                       name = "Toast-Swift";
+                       productName = Toast_Swift;
+                       productReference = D6043471C96F93DC41F7DD1E0D7D8B35 /* Toast-Swift */;
+                       productType = "com.apple.product-type.framework";
+               };
+               C344E85893FCDEE5B70436E0A4A3472B /* Toast-Swift-Toast-Swift */ = {
+                       isa = PBXNativeTarget;
+                       buildConfigurationList = F7C9CDC4F854038F0AC418E3CF33C95E /* Build configuration list for PBXNativeTarget "Toast-Swift-Toast-Swift" */;
+                       buildPhases = (
+                               6A9F8A1ECD4F340E74EEFB8A61575A93 /* Sources */,
+                               7E729417AF642CFCDC667635496015F6 /* Frameworks */,
+                               8AE01B587813601C0822D315302924EE /* Resources */,
+                       );
+                       buildRules = (
+                       );
+                       dependencies = (
+                       );
+                       name = "Toast-Swift-Toast-Swift";
+                       productName = "Toast-Swift";
+                       productReference = 13FD39576595D8A884BF5166065C5236 /* Toast-Swift-Toast-Swift */;
+                       productType = "com.apple.product-type.bundle";
+               };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+               BFDFE7DC352907FC980B868725387E98 /* Project object */ = {
+                       isa = PBXProject;
+                       attributes = {
+                               LastSwiftUpdateCheck = 1600;
+                               LastUpgradeCheck = 1600;
+                       };
+                       buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */;
+                       compatibilityVersion = "Xcode 14.0";
+                       developmentRegion = en;
+                       hasScannedForEncodings = 0;
+                       knownRegions = (
+                               Base,
+                               en,
+                       );
+                       mainGroup = CF1408CF629C7361332E53B88F7BD30C;
+                       minimizedProjectReferenceProxies = 0;
+                       preferredProjectObjectVersion = 77;
+                       productRefGroup = 5EE7F1DD399A6F431D5287F4A6F845BB /* Products */;
+                       projectDirPath = "";
+                       projectRoot = "";
+                       targets = (
+                               B490E7485944099E16C9CBD79119D1D4 /* IQKeyboardManagerSwift */,
+                               982A68D37F5DCBC1FC1FDC0BB2F0EB8E /* IQKeyboardManagerSwift-IQKeyboardManagerSwift */,
+                               0AEE99A309977BD12A049FF48AF9BA4B /* Pods-Example */,
+                               19622742EBA51E823D6DAE3F8CDBFAD4 /* SnapKit */,
+                               8A8DB685241263AFDF5E6B20FE67B93A /* SnapKit-SnapKit_Privacy */,
+                               B990BD87169C76A3ED3FE8A9258D91A3 /* Toast-Swift */,
+                               C344E85893FCDEE5B70436E0A4A3472B /* Toast-Swift-Toast-Swift */,
+                       );
+               };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+               1DEDF411E550D85A1218E1655456A9CD /* Resources */ = {
+                       isa = PBXResourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               9E0045B41BFE697DB4ADE151228024D2 /* SnapKit-SnapKit_Privacy in Resources */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+               2655738F6FE447ED95B73C737A3C8250 /* Resources */ = {
+                       isa = PBXResourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+               57CDCDFD3D2F88CB2E0DCCBFF9155E7C /* Resources */ = {
+                       isa = PBXResourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               D38710A2338E377897571CC4051F85B5 /* PrivacyInfo.xcprivacy in Resources */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+               8AE01B587813601C0822D315302924EE /* Resources */ = {
+                       isa = PBXResourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               D5DB713D87E6A5525B6B9DA5F706E0FB /* PrivacyInfo.xcprivacy in Resources */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+               A694D13AD95802E0936531BC8DAEBB89 /* Resources */ = {
+                       isa = PBXResourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               87E921A1D8B0C683DA2133709C867859 /* Toast-Swift-Toast-Swift in Resources */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+               CCD7A20148BCEAF20B03FE2494D7BCEC /* Resources */ = {
+                       isa = PBXResourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               E3FD0840B77157C01FF5D52E72B31664 /* IQKeyboardManagerSwift-IQKeyboardManagerSwift in Resources */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+               F23DCF14B4B7E688B791BD0F769901C4 /* Resources */ = {
+                       isa = PBXResourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               C347AB10AA080AEF17907D23CBE8C810 /* PrivacyInfo.xcprivacy in Resources */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+               1E639D92EFBA8D08000FFF765BE68014 /* Sources */ = {
+                       isa = PBXSourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+               6A9F8A1ECD4F340E74EEFB8A61575A93 /* Sources */ = {
+                       isa = PBXSourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+               A10428FDA1C369E3D7AF139A76096E0E /* Sources */ = {
+                       isa = PBXSourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               84585A9E2B8E7FEB3F01C4A65DDEA3AA /* Pods-Example-dummy.m in Sources */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+               B23B589ACD3B43A19C4C156DB2709085 /* Sources */ = {
+                       isa = PBXSourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+               B4A020AF82EF829322C86201C5C31A20 /* Sources */ = {
+                       isa = PBXSourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               172B6B4E5550420B8131FBD62C975821 /* Toast.swift in Sources */,
+                               A9B5C45C3C4D517B581E536DE846A078 /* Toast-Swift-dummy.m in Sources */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+               BC6DF187A160622FB3D6013D127DA817 /* Sources */ = {
+                       isa = PBXSourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               BBF8220B30095D0EB91D4933B4769D9E /* IQActiveConfiguration.swift in Sources */,
+                               3CBB581828D3D4237FF0E318F3457FC9 /* IQBarButtonItem.swift in Sources */,
+                               FA0B149FAA1A1C60DA9B92EC2569520E /* IQBarButtonItemConfiguration.swift in Sources */,
+                               C3E307D86BC99500B675C38EDCBFB0AC /* IQInvocation.swift in Sources */,
+                               59E13CB1013047AB75A9B464B1D82C2F /* IQKeyboardConfiguration.swift in Sources */,
+                               3EEB67A2DC733DD8677E443D43BA9A5A /* IQKeyboardInfo.swift in Sources */,
+                               DC00471B9629D6BA4DECB8796D6532EC /* IQKeyboardListener.swift in Sources */,
+                               45B3D0DA40BE97096DE3CDECE622585E /* IQKeyboardManager.swift in Sources */,
+                               5D269576532F504523EAA39DDB1557F4 /* IQKeyboardManager+Debug.swift in Sources */,
+                               F86C621FA07210C325437A3D8FA7CC68 /* IQKeyboardManager+Deprecated.swift in Sources */,
+                               0DDF4216E3E48EF14B994DEAF828EEA2 /* IQKeyboardManager+Internal.swift in Sources */,
+                               6DD19D888A917365E4C36AFE31FA2C27 /* IQKeyboardManager+Position.swift in Sources */,
+                               E7E7C94378820F81492BCF0CB798D46C /* IQKeyboardManager+Toolbar.swift in Sources */,
+                               9A578D9CD4BEC7C1168A1D9820DE40A8 /* IQKeyboardManager+ToolbarActions.swift in Sources */,
+                               DDE98DAE6570A84BB1C07E14DA12C4D4 /* IQKeyboardManager+UIKeyboardNotification.swift in Sources */,
+                               8ECCBA8E91C632E4F56D0D7F40F135F9 /* IQKeyboardManager+UITextFieldViewNotification.swift in Sources */,
+                               6C08C17E6D1DB2B4D1D0669F59F09368 /* IQKeyboardManagerCompatible.swift in Sources */,
+                               F633379AD81BA605AB1B01385C4B9248 /* IQKeyboardManagerConstants.swift in Sources */,
+                               11B67C495111E3AA200F8E6852A73A55 /* IQKeyboardManagerSwift-dummy.m in Sources */,
+                               72E7B39F6D1F97F30C08E04D211D304E /* IQKeyboardReturnKeyHandler.swift in Sources */,
+                               C892112213688A3A4523CDD9F323998B /* IQKeyboardReturnKeyHandler+TextFieldDelegate.swift in Sources */,
+                               67FE77018A04D8691A906DECD6CFFCA2 /* IQKeyboardReturnKeyHandler+TextViewDelegate.swift in Sources */,
+                               A267DD79A7AAD3036D940CDE6249255B /* IQNSArray+Sort.swift in Sources */,
+                               EE49210BAAF30051C28298E265D3D659 /* IQPlaceholderable.swift in Sources */,
+                               00DE7AE1D2A7B7F94F93458DB7754809 /* IQPreviousNextView.swift in Sources */,
+                               AF022BD7571EF5BCBB1EF3F1FD8EB7DD /* IQRootControllerConfiguration.swift in Sources */,
+                               EB6131723350AB4DCB5AEDF242D458AC /* IQScrollViewConfiguration.swift in Sources */,
+                               FE4B49773ED7A97B84316CF892D5D455 /* IQTextFieldViewInfo.swift in Sources */,
+                               ABCE13FE54D5DEE5CD02838201676A92 /* IQTextFieldViewInfoModel.swift in Sources */,
+                               17850B3BCF62F3E9C80608BF8B16291A /* IQTextFieldViewListener.swift in Sources */,
+                               54D89FF142C65EDD590F8651A0CFCB6E /* IQTextView.swift in Sources */,
+                               68D7B750E799100042584648B0634DDD /* IQTitleBarButtonItem.swift in Sources */,
+                               D0C9D7424D667076070CE75180ECCD6B /* IQToolbar.swift in Sources */,
+                               595079712F4E905BEEC8C8EAA167EA03 /* IQToolbarConfiguration.swift in Sources */,
+                               742CBD9F365744155B66ADE0EC6CF94B /* IQToolbarPlaceholderConfiguration.swift in Sources */,
+                               E7095898E9F45BD384B5BF177B642AFD /* IQUICollectionView+Additions.swift in Sources */,
+                               57EA452F77A51C3654DBC92A9A2B771A /* IQUIScrollView+Additions.swift in Sources */,
+                               70364D5528E3495AA5DE40030C0852B8 /* IQUITableView+Additions.swift in Sources */,
+                               139F8FB4B5A5FA7A297976A723CDCC9A /* IQUITextFieldView+Additions.swift in Sources */,
+                               D4E8DE674C6B890FE9D56D40BA77DD15 /* IQUIView+Hierarchy.swift in Sources */,
+                               E5F8F6C107339F507114C3AB566ED585 /* IQUIView+IQKeyboardToolbar.swift in Sources */,
+                               83A2615D5A90DC223EA13831DFA4CE13 /* IQUIView+IQKeyboardToolbarDeprecated.swift in Sources */,
+                               A9D7688EFF99BED99A406255EBFCCC6D /* IQUIViewController+Additions.swift in Sources */,
+                               9AD8B9EFD0F8D7B60A5DC4359601ED60 /* MainActor+AssumeIsolated.swift in Sources */,
+                               1ACC61B072F4BB20E73C2F462A7E16FB /* UIImage+NextPrevious.swift in Sources */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+               F7AC6792C89443C7B212A06E810BAB97 /* Sources */ = {
+                       isa = PBXSourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               6E39129FC8643A70C276801FEF4C280D /* Constraint.swift in Sources */,
+                               0CA7A132ABE7018DE9295456732F38BB /* ConstraintAttributes.swift in Sources */,
+                               F9EBA65892D78A31C068D727D84BCB88 /* ConstraintConfig.swift in Sources */,
+                               CE593943A9E7CF83822CF60304BCAD43 /* ConstraintConstantTarget.swift in Sources */,
+                               7AF516B98D45391B909D507D0244104C /* ConstraintDescription.swift in Sources */,
+                               1194E62AA3F6F506799B1A43B16942B5 /* ConstraintDirectionalInsets.swift in Sources */,
+                               E37671A03B4C17A1CF3766A6125833BB /* ConstraintDirectionalInsetTarget.swift in Sources */,
+                               868A9F524A7985BDA1EA124D9BF4CA63 /* ConstraintDSL.swift in Sources */,
+                               AF760C78F1C7E11BF7CB9E9B29903530 /* ConstraintInsets.swift in Sources */,
+                               2B2EB369550CE92CEEFCBFD3D32B8A3F /* ConstraintInsetTarget.swift in Sources */,
+                               5922A6A0AE7152CF436356B3556F1835 /* ConstraintItem.swift in Sources */,
+                               59F34874DA4ABB2F5C4E09EA6865936B /* ConstraintLayoutGuide.swift in Sources */,
+                               E3D779DEE753C0B0D33BA8E73A980265 /* ConstraintLayoutGuide+Extensions.swift in Sources */,
+                               3D3B646B4988314275B40E97BEB16C7F /* ConstraintLayoutGuideDSL.swift in Sources */,
+                               B0875E3AB8718E7DFE5C53497C02A15E /* ConstraintLayoutSupport.swift in Sources */,
+                               064D909CD827405E8DCC309DB1B7775A /* ConstraintLayoutSupportDSL.swift in Sources */,
+                               4F4DEB687C0E4834A5B291DEE0651D6A /* ConstraintMaker.swift in Sources */,
+                               C14F10B663FE2898EACAB90C202B3F50 /* ConstraintMakerEditable.swift in Sources */,
+                               D4218DA55B2BA45937589200CC0DF1FB /* ConstraintMakerExtendable.swift in Sources */,
+                               B903049E7C1BED7918DAB208754107C7 /* ConstraintMakerFinalizable.swift in Sources */,
+                               AABEF13464BA7F4621BD94736C1D057C /* ConstraintMakerPrioritizable.swift in Sources */,
+                               BDA5C7CC91E86448237CF40954FAC5AF /* ConstraintMakerRelatable.swift in Sources */,
+                               8BABA32F7B94A25D8E9208C0A8D90B2E /* ConstraintMakerRelatable+Extensions.swift in Sources */,
+                               883EDEE1C699497CF2A77C3B8A32A790 /* ConstraintMultiplierTarget.swift in Sources */,
+                               3577F172FA68CBAE47CFEE6FE25C5404 /* ConstraintOffsetTarget.swift in Sources */,
+                               09E1F569A93FAD4B9149E30B9301F44A /* ConstraintPriority.swift in Sources */,
+                               DBA4803F4765E1650B8C6841157F5D73 /* ConstraintPriorityTarget.swift in Sources */,
+                               C07CB3E9A4D1BF00F841E4285629A2B2 /* ConstraintRelatableTarget.swift in Sources */,
+                               ECC5C2ADC2682F9171FEA22AF10DCE53 /* ConstraintRelation.swift in Sources */,
+                               86CAB01D950C8BC35EDE0BDC01A2500B /* ConstraintView.swift in Sources */,
+                               0DE5DB9C6227B3416778D8417DD95EA9 /* ConstraintView+Extensions.swift in Sources */,
+                               7D42390CDB4FA147504B03DA2A174A0C /* ConstraintViewDSL.swift in Sources */,
+                               AE224EDB6D044C0FE86B086E950FC2F9 /* Debugging.swift in Sources */,
+                               BF1AE4D97E813B95C43EA4A298B973D1 /* LayoutConstraint.swift in Sources */,
+                               C6F45595676957ADBEC18EB3F23EAEC4 /* LayoutConstraintItem.swift in Sources */,
+                               BA2FB695DEB0D179253EEB8DFCE3578B /* SnapKit-dummy.m in Sources */,
+                               C6A4302ACE006C4E2CDD481287E2916B /* Typealiases.swift in Sources */,
+                               F6F33E8B268F3D41075374D95B8088DC /* UILayoutSupport+Extensions.swift in Sources */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+               016E53615B5CD659DCF5BB8F525501B6 /* PBXTargetDependency */ = {
+                       isa = PBXTargetDependency;
+                       name = IQKeyboardManagerSwift;
+                       target = B490E7485944099E16C9CBD79119D1D4 /* IQKeyboardManagerSwift */;
+                       targetProxy = DDE9D020CDC7E91D5827DFE3287EB2CA /* PBXContainerItemProxy */;
+               };
+               23D3D2DCA595E8AA97490A5FCFD73C43 /* PBXTargetDependency */ = {
+                       isa = PBXTargetDependency;
+                       name = "Toast-Swift";
+                       target = B990BD87169C76A3ED3FE8A9258D91A3 /* Toast-Swift */;
+                       targetProxy = 2C3890DB22C3798DBD04FF11BB1E3763 /* PBXContainerItemProxy */;
+               };
+               4E73EF9A981CC1C3C53CB8D0311ACD00 /* PBXTargetDependency */ = {
+                       isa = PBXTargetDependency;
+                       name = SnapKit;
+                       target = 19622742EBA51E823D6DAE3F8CDBFAD4 /* SnapKit */;
+                       targetProxy = D63BD9F2997AAB93FD047009D145B137 /* PBXContainerItemProxy */;
+               };
+               69C0920E0DC1566DB93F7812575E5412 /* PBXTargetDependency */ = {
+                       isa = PBXTargetDependency;
+                       name = "Toast-Swift-Toast-Swift";
+                       target = C344E85893FCDEE5B70436E0A4A3472B /* Toast-Swift-Toast-Swift */;
+                       targetProxy = C04B96E80AC4BC69934A81924717A242 /* PBXContainerItemProxy */;
+               };
+               C95682515116F5D888245FB5F5E9F544 /* PBXTargetDependency */ = {
+                       isa = PBXTargetDependency;
+                       name = "IQKeyboardManagerSwift-IQKeyboardManagerSwift";
+                       target = 982A68D37F5DCBC1FC1FDC0BB2F0EB8E /* IQKeyboardManagerSwift-IQKeyboardManagerSwift */;
+                       targetProxy = EEE971D13C12B11703BA672AF4AA9EBE /* PBXContainerItemProxy */;
+               };
+               F1D8F00E40A734B93E792ACC6A1C62EB /* PBXTargetDependency */ = {
+                       isa = PBXTargetDependency;
+                       name = "SnapKit-SnapKit_Privacy";
+                       target = 8A8DB685241263AFDF5E6B20FE67B93A /* SnapKit-SnapKit_Privacy */;
+                       targetProxy = 7516A63BFCBFC4EE43188C5CC5C9C90F /* PBXContainerItemProxy */;
+               };
+/* End PBXTargetDependency section */
+
+/* Begin XCBuildConfiguration section */
+               24951B438C625992FFCD104B95B81612 /* Release */ = {
+                       isa = XCBuildConfiguration;
+                       baseConfigurationReference = 243410B9535472556EA4BB6DBC133A0D /* Pods-Example.release.xcconfig */;
+                       buildSettings = {
+                               ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
+                               CLANG_ENABLE_OBJC_WEAK = NO;
+                               "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
+                               "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
+                               "CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
+                               CURRENT_PROJECT_VERSION = 1;
+                               DEFINES_MODULE = YES;
+                               DYLIB_COMPATIBILITY_VERSION = 1;
+                               DYLIB_CURRENT_VERSION = 1;
+                               DYLIB_INSTALL_NAME_BASE = "@rpath";
+                               ENABLE_MODULE_VERIFIER = NO;
+                               ENABLE_USER_SCRIPT_SANDBOXING = NO;
+                               INFOPLIST_FILE = "Target Support Files/Pods-Example/Pods-Example-Info.plist";
+                               INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+                               IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+                               LD_RUNPATH_SEARCH_PATHS = (
+                                       "$(inherited)",
+                                       "@executable_path/Frameworks",
+                                       "@loader_path/Frameworks",
+                               );
+                               MACH_O_TYPE = staticlib;
+                               MODULEMAP_FILE = "Target Support Files/Pods-Example/Pods-Example.modulemap";
+                               OTHER_LDFLAGS = "";
+                               OTHER_LIBTOOLFLAGS = "";
+                               PODS_ROOT = "$(SRCROOT)";
+                               PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
+                               PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+                               SDKROOT = iphoneos;
+                               SKIP_INSTALL = YES;
+                               TARGETED_DEVICE_FAMILY = "1,2";
+                               VALIDATE_PRODUCT = YES;
+                               VERSIONING_SYSTEM = "apple-generic";
+                               VERSION_INFO_PREFIX = "";
+                       };
+                       name = Release;
+               };
+               7E48D17D0469F73801BBDAF1F20755F2 /* Release */ = {
+                       isa = XCBuildConfiguration;
+                       baseConfigurationReference = E84B50B0E6C401F03CFBB289CADC11C7 /* Toast-Swift.release.xcconfig */;
+                       buildSettings = {
+                               CLANG_ENABLE_OBJC_WEAK = NO;
+                               "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
+                               "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
+                               "CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
+                               CURRENT_PROJECT_VERSION = 1;
+                               DEFINES_MODULE = YES;
+                               DYLIB_COMPATIBILITY_VERSION = 1;
+                               DYLIB_CURRENT_VERSION = 1;
+                               DYLIB_INSTALL_NAME_BASE = "@rpath";
+                               ENABLE_MODULE_VERIFIER = NO;
+                               ENABLE_USER_SCRIPT_SANDBOXING = NO;
+                               GCC_PREFIX_HEADER = "Target Support Files/Toast-Swift/Toast-Swift-prefix.pch";
+                               GENERATE_INFOPLIST_FILE = NO;
+                               INFOPLIST_FILE = "Target Support Files/Toast-Swift/Toast-Swift-Info.plist";
+                               INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+                               IPHONEOS_DEPLOYMENT_TARGET = 12.0;
+                               LD_RUNPATH_SEARCH_PATHS = (
+                                       "$(inherited)",
+                                       "@executable_path/Frameworks",
+                                       "@loader_path/Frameworks",
+                               );
+                               MODULEMAP_FILE = "Target Support Files/Toast-Swift/Toast-Swift.modulemap";
+                               PRODUCT_MODULE_NAME = Toast_Swift;
+                               PRODUCT_NAME = Toast_Swift;
+                               SDKROOT = iphoneos;
+                               SKIP_INSTALL = YES;
+                               SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
+                               SWIFT_INSTALL_OBJC_HEADER = YES;
+                               SWIFT_VERSION = 5.0;
+                               TARGETED_DEVICE_FAMILY = "1,2";
+                               VALIDATE_PRODUCT = YES;
+                               VERSIONING_SYSTEM = "apple-generic";
+                               VERSION_INFO_PREFIX = "";
+                       };
+                       name = Release;
+               };
+               89B8688B66C09BA698AA1E786EA8FCEE /* Release */ = {
+                       isa = XCBuildConfiguration;
+                       baseConfigurationReference = 05C92DF614B75B78526637B00FED4FDB /* IQKeyboardManagerSwift.release.xcconfig */;
+                       buildSettings = {
+                               CLANG_ENABLE_OBJC_WEAK = NO;
+                               "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
+                               "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
+                               "CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
+                               CURRENT_PROJECT_VERSION = 1;
+                               DEFINES_MODULE = YES;
+                               DYLIB_COMPATIBILITY_VERSION = 1;
+                               DYLIB_CURRENT_VERSION = 1;
+                               DYLIB_INSTALL_NAME_BASE = "@rpath";
+                               ENABLE_MODULE_VERIFIER = NO;
+                               ENABLE_USER_SCRIPT_SANDBOXING = NO;
+                               GCC_PREFIX_HEADER = "Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-prefix.pch";
+                               GENERATE_INFOPLIST_FILE = NO;
+                               INFOPLIST_FILE = "Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-Info.plist";
+                               INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+                               IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+                               LD_RUNPATH_SEARCH_PATHS = (
+                                       "$(inherited)",
+                                       "@executable_path/Frameworks",
+                                       "@loader_path/Frameworks",
+                               );
+                               MODULEMAP_FILE = "Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift.modulemap";
+                               PRODUCT_MODULE_NAME = IQKeyboardManagerSwift;
+                               PRODUCT_NAME = IQKeyboardManagerSwift;
+                               SDKROOT = iphoneos;
+                               SKIP_INSTALL = YES;
+                               SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
+                               SWIFT_INSTALL_OBJC_HEADER = YES;
+                               SWIFT_VERSION = 5.9;
+                               TARGETED_DEVICE_FAMILY = "1,2";
+                               VALIDATE_PRODUCT = YES;
+                               VERSIONING_SYSTEM = "apple-generic";
+                               VERSION_INFO_PREFIX = "";
+                       };
+                       name = Release;
+               };
+               8DE5143C03248BB6CD542DE3963D6F3A /* Debug */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               ALWAYS_SEARCH_USER_PATHS = NO;
+                               CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
+                               CLANG_ANALYZER_NONNULL = YES;
+                               CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+                               CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+                               CLANG_CXX_LIBRARY = "libc++";
+                               CLANG_ENABLE_MODULES = YES;
+                               CLANG_ENABLE_OBJC_ARC = YES;
+                               CLANG_ENABLE_OBJC_WEAK = YES;
+                               CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+                               CLANG_WARN_BOOL_CONVERSION = YES;
+                               CLANG_WARN_COMMA = YES;
+                               CLANG_WARN_CONSTANT_CONVERSION = YES;
+                               CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+                               CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+                               CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+                               CLANG_WARN_EMPTY_BODY = YES;
+                               CLANG_WARN_ENUM_CONVERSION = YES;
+                               CLANG_WARN_INFINITE_RECURSION = YES;
+                               CLANG_WARN_INT_CONVERSION = YES;
+                               CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+                               CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+                               CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+                               CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+                               CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
+                               CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+                               CLANG_WARN_STRICT_PROTOTYPES = YES;
+                               CLANG_WARN_SUSPICIOUS_MOVE = YES;
+                               CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+                               CLANG_WARN_UNREACHABLE_CODE = YES;
+                               CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+                               COPY_PHASE_STRIP = NO;
+                               DEBUG_INFORMATION_FORMAT = dwarf;
+                               ENABLE_STRICT_OBJC_MSGSEND = YES;
+                               ENABLE_TESTABILITY = YES;
+                               GCC_C_LANGUAGE_STANDARD = gnu11;
+                               GCC_DYNAMIC_NO_PIC = NO;
+                               GCC_NO_COMMON_BLOCKS = YES;
+                               GCC_OPTIMIZATION_LEVEL = 0;
+                               GCC_PREPROCESSOR_DEFINITIONS = (
+                                       "POD_CONFIGURATION_DEBUG=1",
+                                       "DEBUG=1",
+                                       "$(inherited)",
+                               );
+                               GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+                               GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+                               GCC_WARN_UNDECLARED_SELECTOR = YES;
+                               GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+                               GCC_WARN_UNUSED_FUNCTION = YES;
+                               GCC_WARN_UNUSED_VARIABLE = YES;
+                               IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+                               MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
+                               MTL_FAST_MATH = YES;
+                               ONLY_ACTIVE_ARCH = YES;
+                               PRODUCT_NAME = "$(TARGET_NAME)";
+                               STRIP_INSTALLED_PRODUCT = NO;
+                               SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
+                               SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+                               SWIFT_VERSION = 5.0;
+                               SYMROOT = "${SRCROOT}/../build";
+                       };
+                       name = Debug;
+               };
+               9115AF5B1EDA9D1305C1F7A785025165 /* Debug */ = {
+                       isa = XCBuildConfiguration;
+                       baseConfigurationReference = B8AAC0C869D75F02354272FCD12F2C24 /* Toast-Swift.debug.xcconfig */;
+                       buildSettings = {
+                               CODE_SIGNING_ALLOWED = NO;
+                               CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Toast-Swift";
+                               IBSC_MODULE = Toast_Swift;
+                               INFOPLIST_FILE = "Target Support Files/Toast-Swift/ResourceBundle-Toast-Swift-Toast-Swift-Info.plist";
+                               IPHONEOS_DEPLOYMENT_TARGET = 12.0;
+                               PRODUCT_NAME = "Toast-Swift";
+                               SDKROOT = iphoneos;
+                               SKIP_INSTALL = YES;
+                               TARGETED_DEVICE_FAMILY = "1,2";
+                               WRAPPER_EXTENSION = bundle;
+                       };
+                       name = Debug;
+               };
+               9D0D7572FEDA4CC9E75E7387846AFE57 /* Debug */ = {
+                       isa = XCBuildConfiguration;
+                       baseConfigurationReference = F1E0DC4EDC70C1C7E1B553E8EAB865DE /* SnapKit.debug.xcconfig */;
+                       buildSettings = {
+                               CLANG_ENABLE_OBJC_WEAK = NO;
+                               "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
+                               "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
+                               "CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
+                               CURRENT_PROJECT_VERSION = 1;
+                               DEFINES_MODULE = YES;
+                               DYLIB_COMPATIBILITY_VERSION = 1;
+                               DYLIB_CURRENT_VERSION = 1;
+                               DYLIB_INSTALL_NAME_BASE = "@rpath";
+                               ENABLE_MODULE_VERIFIER = NO;
+                               ENABLE_USER_SCRIPT_SANDBOXING = NO;
+                               GCC_PREFIX_HEADER = "Target Support Files/SnapKit/SnapKit-prefix.pch";
+                               GENERATE_INFOPLIST_FILE = NO;
+                               INFOPLIST_FILE = "Target Support Files/SnapKit/SnapKit-Info.plist";
+                               INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+                               IPHONEOS_DEPLOYMENT_TARGET = 12.0;
+                               LD_RUNPATH_SEARCH_PATHS = (
+                                       "$(inherited)",
+                                       "@executable_path/Frameworks",
+                                       "@loader_path/Frameworks",
+                               );
+                               MODULEMAP_FILE = "Target Support Files/SnapKit/SnapKit.modulemap";
+                               PRODUCT_MODULE_NAME = SnapKit;
+                               PRODUCT_NAME = SnapKit;
+                               SDKROOT = iphoneos;
+                               SKIP_INSTALL = YES;
+                               SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
+                               SWIFT_INSTALL_OBJC_HEADER = YES;
+                               SWIFT_VERSION = 5.0;
+                               TARGETED_DEVICE_FAMILY = "1,2";
+                               VERSIONING_SYSTEM = "apple-generic";
+                               VERSION_INFO_PREFIX = "";
+                       };
+                       name = Debug;
+               };
+               9E406C6AAF85E580207CD97B0044DEAB /* Release */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               ALWAYS_SEARCH_USER_PATHS = NO;
+                               CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
+                               CLANG_ANALYZER_NONNULL = YES;
+                               CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+                               CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+                               CLANG_CXX_LIBRARY = "libc++";
+                               CLANG_ENABLE_MODULES = YES;
+                               CLANG_ENABLE_OBJC_ARC = YES;
+                               CLANG_ENABLE_OBJC_WEAK = YES;
+                               CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+                               CLANG_WARN_BOOL_CONVERSION = YES;
+                               CLANG_WARN_COMMA = YES;
+                               CLANG_WARN_CONSTANT_CONVERSION = YES;
+                               CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+                               CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+                               CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+                               CLANG_WARN_EMPTY_BODY = YES;
+                               CLANG_WARN_ENUM_CONVERSION = YES;
+                               CLANG_WARN_INFINITE_RECURSION = YES;
+                               CLANG_WARN_INT_CONVERSION = YES;
+                               CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+                               CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+                               CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+                               CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+                               CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
+                               CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+                               CLANG_WARN_STRICT_PROTOTYPES = YES;
+                               CLANG_WARN_SUSPICIOUS_MOVE = YES;
+                               CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+                               CLANG_WARN_UNREACHABLE_CODE = YES;
+                               CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+                               COPY_PHASE_STRIP = NO;
+                               DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+                               ENABLE_NS_ASSERTIONS = NO;
+                               ENABLE_STRICT_OBJC_MSGSEND = YES;
+                               GCC_C_LANGUAGE_STANDARD = gnu11;
+                               GCC_NO_COMMON_BLOCKS = YES;
+                               GCC_PREPROCESSOR_DEFINITIONS = (
+                                       "POD_CONFIGURATION_RELEASE=1",
+                                       "$(inherited)",
+                               );
+                               GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+                               GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+                               GCC_WARN_UNDECLARED_SELECTOR = YES;
+                               GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+                               GCC_WARN_UNUSED_FUNCTION = YES;
+                               GCC_WARN_UNUSED_VARIABLE = YES;
+                               IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+                               MTL_ENABLE_DEBUG_INFO = NO;
+                               MTL_FAST_MATH = YES;
+                               PRODUCT_NAME = "$(TARGET_NAME)";
+                               STRIP_INSTALLED_PRODUCT = NO;
+                               SWIFT_COMPILATION_MODE = wholemodule;
+                               SWIFT_OPTIMIZATION_LEVEL = "-O";
+                               SWIFT_VERSION = 5.0;
+                               SYMROOT = "${SRCROOT}/../build";
+                       };
+                       name = Release;
+               };
+               9FB030696C344EA34BACA774AF681ECE /* Debug */ = {
+                       isa = XCBuildConfiguration;
+                       baseConfigurationReference = F1E0DC4EDC70C1C7E1B553E8EAB865DE /* SnapKit.debug.xcconfig */;
+                       buildSettings = {
+                               CODE_SIGNING_ALLOWED = NO;
+                               CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/SnapKit";
+                               IBSC_MODULE = SnapKit;
+                               INFOPLIST_FILE = "Target Support Files/SnapKit/ResourceBundle-SnapKit_Privacy-SnapKit-Info.plist";
+                               IPHONEOS_DEPLOYMENT_TARGET = 12.0;
+                               PRODUCT_NAME = SnapKit_Privacy;
+                               SDKROOT = iphoneos;
+                               SKIP_INSTALL = YES;
+                               TARGETED_DEVICE_FAMILY = "1,2";
+                               WRAPPER_EXTENSION = bundle;
+                       };
+                       name = Debug;
+               };
+               BAD20131EC29650C6737E66854A3A9FD /* Release */ = {
+                       isa = XCBuildConfiguration;
+                       baseConfigurationReference = 84BE8ECCEF26804A8D79F702228A310A /* SnapKit.release.xcconfig */;
+                       buildSettings = {
+                               CLANG_ENABLE_OBJC_WEAK = NO;
+                               "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
+                               "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
+                               "CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
+                               CURRENT_PROJECT_VERSION = 1;
+                               DEFINES_MODULE = YES;
+                               DYLIB_COMPATIBILITY_VERSION = 1;
+                               DYLIB_CURRENT_VERSION = 1;
+                               DYLIB_INSTALL_NAME_BASE = "@rpath";
+                               ENABLE_MODULE_VERIFIER = NO;
+                               ENABLE_USER_SCRIPT_SANDBOXING = NO;
+                               GCC_PREFIX_HEADER = "Target Support Files/SnapKit/SnapKit-prefix.pch";
+                               GENERATE_INFOPLIST_FILE = NO;
+                               INFOPLIST_FILE = "Target Support Files/SnapKit/SnapKit-Info.plist";
+                               INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+                               IPHONEOS_DEPLOYMENT_TARGET = 12.0;
+                               LD_RUNPATH_SEARCH_PATHS = (
+                                       "$(inherited)",
+                                       "@executable_path/Frameworks",
+                                       "@loader_path/Frameworks",
+                               );
+                               MODULEMAP_FILE = "Target Support Files/SnapKit/SnapKit.modulemap";
+                               PRODUCT_MODULE_NAME = SnapKit;
+                               PRODUCT_NAME = SnapKit;
+                               SDKROOT = iphoneos;
+                               SKIP_INSTALL = YES;
+                               SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
+                               SWIFT_INSTALL_OBJC_HEADER = YES;
+                               SWIFT_VERSION = 5.0;
+                               TARGETED_DEVICE_FAMILY = "1,2";
+                               VALIDATE_PRODUCT = YES;
+                               VERSIONING_SYSTEM = "apple-generic";
+                               VERSION_INFO_PREFIX = "";
+                       };
+                       name = Release;
+               };
+               BB204C289D98AE5EF60E9B2664ADCD85 /* Debug */ = {
+                       isa = XCBuildConfiguration;
+                       baseConfigurationReference = B45138496B85A072654D1D0F8EBBEDE5 /* Pods-Example.debug.xcconfig */;
+                       buildSettings = {
+                               ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
+                               CLANG_ENABLE_OBJC_WEAK = NO;
+                               "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
+                               "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
+                               "CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
+                               CURRENT_PROJECT_VERSION = 1;
+                               DEFINES_MODULE = YES;
+                               DYLIB_COMPATIBILITY_VERSION = 1;
+                               DYLIB_CURRENT_VERSION = 1;
+                               DYLIB_INSTALL_NAME_BASE = "@rpath";
+                               ENABLE_MODULE_VERIFIER = NO;
+                               ENABLE_USER_SCRIPT_SANDBOXING = NO;
+                               INFOPLIST_FILE = "Target Support Files/Pods-Example/Pods-Example-Info.plist";
+                               INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+                               IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+                               LD_RUNPATH_SEARCH_PATHS = (
+                                       "$(inherited)",
+                                       "@executable_path/Frameworks",
+                                       "@loader_path/Frameworks",
+                               );
+                               MACH_O_TYPE = staticlib;
+                               MODULEMAP_FILE = "Target Support Files/Pods-Example/Pods-Example.modulemap";
+                               OTHER_LDFLAGS = "";
+                               OTHER_LIBTOOLFLAGS = "";
+                               PODS_ROOT = "$(SRCROOT)";
+                               PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
+                               PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+                               SDKROOT = iphoneos;
+                               SKIP_INSTALL = YES;
+                               TARGETED_DEVICE_FAMILY = "1,2";
+                               VERSIONING_SYSTEM = "apple-generic";
+                               VERSION_INFO_PREFIX = "";
+                       };
+                       name = Debug;
+               };
+               BD6198E203E31476009B64B0A8DA3959 /* Debug */ = {
+                       isa = XCBuildConfiguration;
+                       baseConfigurationReference = DC81F87185C4B726F5E414F7F459831F /* IQKeyboardManagerSwift.debug.xcconfig */;
+                       buildSettings = {
+                               CODE_SIGNING_ALLOWED = NO;
+                               CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/IQKeyboardManagerSwift";
+                               IBSC_MODULE = IQKeyboardManagerSwift;
+                               INFOPLIST_FILE = "Target Support Files/IQKeyboardManagerSwift/ResourceBundle-IQKeyboardManagerSwift-IQKeyboardManagerSwift-Info.plist";
+                               IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+                               PRODUCT_NAME = IQKeyboardManagerSwift;
+                               SDKROOT = iphoneos;
+                               SKIP_INSTALL = YES;
+                               TARGETED_DEVICE_FAMILY = "1,2";
+                               WRAPPER_EXTENSION = bundle;
+                       };
+                       name = Debug;
+               };
+               BF7068E92DCD137023ACAEAC8761D324 /* Release */ = {
+                       isa = XCBuildConfiguration;
+                       baseConfigurationReference = 84BE8ECCEF26804A8D79F702228A310A /* SnapKit.release.xcconfig */;
+                       buildSettings = {
+                               CODE_SIGNING_ALLOWED = NO;
+                               CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/SnapKit";
+                               IBSC_MODULE = SnapKit;
+                               INFOPLIST_FILE = "Target Support Files/SnapKit/ResourceBundle-SnapKit_Privacy-SnapKit-Info.plist";
+                               IPHONEOS_DEPLOYMENT_TARGET = 12.0;
+                               PRODUCT_NAME = SnapKit_Privacy;
+                               SDKROOT = iphoneos;
+                               SKIP_INSTALL = YES;
+                               TARGETED_DEVICE_FAMILY = "1,2";
+                               WRAPPER_EXTENSION = bundle;
+                       };
+                       name = Release;
+               };
+               C19176D272F6631EEA7F05F8A38697C7 /* Debug */ = {
+                       isa = XCBuildConfiguration;
+                       baseConfigurationReference = DC81F87185C4B726F5E414F7F459831F /* IQKeyboardManagerSwift.debug.xcconfig */;
+                       buildSettings = {
+                               CLANG_ENABLE_OBJC_WEAK = NO;
+                               "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
+                               "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
+                               "CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
+                               CURRENT_PROJECT_VERSION = 1;
+                               DEFINES_MODULE = YES;
+                               DYLIB_COMPATIBILITY_VERSION = 1;
+                               DYLIB_CURRENT_VERSION = 1;
+                               DYLIB_INSTALL_NAME_BASE = "@rpath";
+                               ENABLE_MODULE_VERIFIER = NO;
+                               ENABLE_USER_SCRIPT_SANDBOXING = NO;
+                               GCC_PREFIX_HEADER = "Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-prefix.pch";
+                               GENERATE_INFOPLIST_FILE = NO;
+                               INFOPLIST_FILE = "Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-Info.plist";
+                               INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+                               IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+                               LD_RUNPATH_SEARCH_PATHS = (
+                                       "$(inherited)",
+                                       "@executable_path/Frameworks",
+                                       "@loader_path/Frameworks",
+                               );
+                               MODULEMAP_FILE = "Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift.modulemap";
+                               PRODUCT_MODULE_NAME = IQKeyboardManagerSwift;
+                               PRODUCT_NAME = IQKeyboardManagerSwift;
+                               SDKROOT = iphoneos;
+                               SKIP_INSTALL = YES;
+                               SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
+                               SWIFT_INSTALL_OBJC_HEADER = YES;
+                               SWIFT_VERSION = 5.9;
+                               TARGETED_DEVICE_FAMILY = "1,2";
+                               VERSIONING_SYSTEM = "apple-generic";
+                               VERSION_INFO_PREFIX = "";
+                       };
+                       name = Debug;
+               };
+               E06F70F13B606F0979741BCAFE1F1003 /* Debug */ = {
+                       isa = XCBuildConfiguration;
+                       baseConfigurationReference = B8AAC0C869D75F02354272FCD12F2C24 /* Toast-Swift.debug.xcconfig */;
+                       buildSettings = {
+                               CLANG_ENABLE_OBJC_WEAK = NO;
+                               "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
+                               "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
+                               "CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
+                               CURRENT_PROJECT_VERSION = 1;
+                               DEFINES_MODULE = YES;
+                               DYLIB_COMPATIBILITY_VERSION = 1;
+                               DYLIB_CURRENT_VERSION = 1;
+                               DYLIB_INSTALL_NAME_BASE = "@rpath";
+                               ENABLE_MODULE_VERIFIER = NO;
+                               ENABLE_USER_SCRIPT_SANDBOXING = NO;
+                               GCC_PREFIX_HEADER = "Target Support Files/Toast-Swift/Toast-Swift-prefix.pch";
+                               GENERATE_INFOPLIST_FILE = NO;
+                               INFOPLIST_FILE = "Target Support Files/Toast-Swift/Toast-Swift-Info.plist";
+                               INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+                               IPHONEOS_DEPLOYMENT_TARGET = 12.0;
+                               LD_RUNPATH_SEARCH_PATHS = (
+                                       "$(inherited)",
+                                       "@executable_path/Frameworks",
+                                       "@loader_path/Frameworks",
+                               );
+                               MODULEMAP_FILE = "Target Support Files/Toast-Swift/Toast-Swift.modulemap";
+                               PRODUCT_MODULE_NAME = Toast_Swift;
+                               PRODUCT_NAME = Toast_Swift;
+                               SDKROOT = iphoneos;
+                               SKIP_INSTALL = YES;
+                               SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
+                               SWIFT_INSTALL_OBJC_HEADER = YES;
+                               SWIFT_VERSION = 5.0;
+                               TARGETED_DEVICE_FAMILY = "1,2";
+                               VERSIONING_SYSTEM = "apple-generic";
+                               VERSION_INFO_PREFIX = "";
+                       };
+                       name = Debug;
+               };
+               F02F22B53FD0017D62316E2895734F47 /* Release */ = {
+                       isa = XCBuildConfiguration;
+                       baseConfigurationReference = E84B50B0E6C401F03CFBB289CADC11C7 /* Toast-Swift.release.xcconfig */;
+                       buildSettings = {
+                               CODE_SIGNING_ALLOWED = NO;
+                               CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Toast-Swift";
+                               IBSC_MODULE = Toast_Swift;
+                               INFOPLIST_FILE = "Target Support Files/Toast-Swift/ResourceBundle-Toast-Swift-Toast-Swift-Info.plist";
+                               IPHONEOS_DEPLOYMENT_TARGET = 12.0;
+                               PRODUCT_NAME = "Toast-Swift";
+                               SDKROOT = iphoneos;
+                               SKIP_INSTALL = YES;
+                               TARGETED_DEVICE_FAMILY = "1,2";
+                               WRAPPER_EXTENSION = bundle;
+                       };
+                       name = Release;
+               };
+               FF4B3A6A9C0722F9F2CC0C97776703AE /* Release */ = {
+                       isa = XCBuildConfiguration;
+                       baseConfigurationReference = 05C92DF614B75B78526637B00FED4FDB /* IQKeyboardManagerSwift.release.xcconfig */;
+                       buildSettings = {
+                               CODE_SIGNING_ALLOWED = NO;
+                               CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/IQKeyboardManagerSwift";
+                               IBSC_MODULE = IQKeyboardManagerSwift;
+                               INFOPLIST_FILE = "Target Support Files/IQKeyboardManagerSwift/ResourceBundle-IQKeyboardManagerSwift-IQKeyboardManagerSwift-Info.plist";
+                               IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+                               PRODUCT_NAME = IQKeyboardManagerSwift;
+                               SDKROOT = iphoneos;
+                               SKIP_INSTALL = YES;
+                               TARGETED_DEVICE_FAMILY = "1,2";
+                               WRAPPER_EXTENSION = bundle;
+                       };
+                       name = Release;
+               };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+               4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = {
+                       isa = XCConfigurationList;
+                       buildConfigurations = (
+                               8DE5143C03248BB6CD542DE3963D6F3A /* Debug */,
+                               9E406C6AAF85E580207CD97B0044DEAB /* Release */,
+                       );
+                       defaultConfigurationIsVisible = 0;
+                       defaultConfigurationName = Release;
+               };
+               51448EA139E840FA83FCECC113A519FE /* Build configuration list for PBXNativeTarget "IQKeyboardManagerSwift" */ = {
+                       isa = XCConfigurationList;
+                       buildConfigurations = (
+                               C19176D272F6631EEA7F05F8A38697C7 /* Debug */,
+                               89B8688B66C09BA698AA1E786EA8FCEE /* Release */,
+                       );
+                       defaultConfigurationIsVisible = 0;
+                       defaultConfigurationName = Release;
+               };
+               80CE967CAA1D35721519F892BAF7A19B /* Build configuration list for PBXNativeTarget "SnapKit" */ = {
+                       isa = XCConfigurationList;
+                       buildConfigurations = (
+                               9D0D7572FEDA4CC9E75E7387846AFE57 /* Debug */,
+                               BAD20131EC29650C6737E66854A3A9FD /* Release */,
+                       );
+                       defaultConfigurationIsVisible = 0;
+                       defaultConfigurationName = Release;
+               };
+               87EC2E578DA4ADCE9FBEA443B93BFBAA /* Build configuration list for PBXNativeTarget "SnapKit-SnapKit_Privacy" */ = {
+                       isa = XCConfigurationList;
+                       buildConfigurations = (
+                               9FB030696C344EA34BACA774AF681ECE /* Debug */,
+                               BF7068E92DCD137023ACAEAC8761D324 /* Release */,
+                       );
+                       defaultConfigurationIsVisible = 0;
+                       defaultConfigurationName = Release;
+               };
+               9C146D0EDFB76FE1156D655A897B6E94 /* Build configuration list for PBXNativeTarget "Toast-Swift" */ = {
+                       isa = XCConfigurationList;
+                       buildConfigurations = (
+                               E06F70F13B606F0979741BCAFE1F1003 /* Debug */,
+                               7E48D17D0469F73801BBDAF1F20755F2 /* Release */,
+                       );
+                       defaultConfigurationIsVisible = 0;
+                       defaultConfigurationName = Release;
+               };
+               BBDCAD9CCBFFC44C15124718110FB1B7 /* Build configuration list for PBXNativeTarget "IQKeyboardManagerSwift-IQKeyboardManagerSwift" */ = {
+                       isa = XCConfigurationList;
+                       buildConfigurations = (
+                               BD6198E203E31476009B64B0A8DA3959 /* Debug */,
+                               FF4B3A6A9C0722F9F2CC0C97776703AE /* Release */,
+                       );
+                       defaultConfigurationIsVisible = 0;
+                       defaultConfigurationName = Release;
+               };
+               F7C9CDC4F854038F0AC418E3CF33C95E /* Build configuration list for PBXNativeTarget "Toast-Swift-Toast-Swift" */ = {
+                       isa = XCConfigurationList;
+                       buildConfigurations = (
+                               9115AF5B1EDA9D1305C1F7A785025165 /* Debug */,
+                               F02F22B53FD0017D62316E2895734F47 /* Release */,
+                       );
+                       defaultConfigurationIsVisible = 0;
+                       defaultConfigurationName = Release;
+               };
+               FD8F4491AE56B90FFA30649FF29EFED4 /* Build configuration list for PBXNativeTarget "Pods-Example" */ = {
+                       isa = XCConfigurationList;
+                       buildConfigurations = (
+                               BB204C289D98AE5EF60E9B2664ADCD85 /* Debug */,
+                               24951B438C625992FFCD104B95B81612 /* Release */,
+                       );
+                       defaultConfigurationIsVisible = 0;
+                       defaultConfigurationName = Release;
+               };
+/* End XCConfigurationList section */
+       };
+       rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */;
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Pods.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/IQKeyboardManagerSwift-IQKeyboardManagerSwift.xcscheme b/IOTBluetooth/IOTBluetooth/Pods/Pods.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/IQKeyboardManagerSwift-IQKeyboardManagerSwift.xcscheme
new file mode 100644 (file)
index 0000000..dab56aa
--- /dev/null
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "1600"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "982A68D37F5DCBC1FC1FDC0BB2F0EB8E"
+               BuildableName = "IQKeyboardManagerSwift.bundle"
+               BlueprintName = "IQKeyboardManagerSwift-IQKeyboardManagerSwift"
+               ReferencedContainer = "container:Pods.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES">
+      <Testables>
+      </Testables>
+   </TestAction>
+   <LaunchAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      debugServiceExtension = "internal"
+      allowLocationSimulation = "YES">
+   </LaunchAction>
+   <ProfileAction
+      buildConfiguration = "Release"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      debugDocumentVersioning = "YES">
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Pods.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/IQKeyboardManagerSwift.xcscheme b/IOTBluetooth/IOTBluetooth/Pods/Pods.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/IQKeyboardManagerSwift.xcscheme
new file mode 100644 (file)
index 0000000..91abb49
--- /dev/null
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "1600"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "B490E7485944099E16C9CBD79119D1D4"
+               BuildableName = "IQKeyboardManagerSwift.framework"
+               BlueprintName = "IQKeyboardManagerSwift"
+               ReferencedContainer = "container:Pods.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES">
+      <Testables>
+      </Testables>
+   </TestAction>
+   <LaunchAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      debugServiceExtension = "internal"
+      allowLocationSimulation = "YES">
+   </LaunchAction>
+   <ProfileAction
+      buildConfiguration = "Release"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      debugDocumentVersioning = "YES">
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Pods.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/Pods-Example.xcscheme b/IOTBluetooth/IOTBluetooth/Pods/Pods.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/Pods-Example.xcscheme
new file mode 100644 (file)
index 0000000..d31115d
--- /dev/null
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "1600"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "0AEE99A309977BD12A049FF48AF9BA4B"
+               BuildableName = "Pods_Example.framework"
+               BlueprintName = "Pods-Example"
+               ReferencedContainer = "container:Pods.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES">
+      <Testables>
+      </Testables>
+   </TestAction>
+   <LaunchAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      debugServiceExtension = "internal"
+      allowLocationSimulation = "YES">
+   </LaunchAction>
+   <ProfileAction
+      buildConfiguration = "Release"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      debugDocumentVersioning = "YES">
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Pods.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/SnapKit-SnapKit_Privacy.xcscheme b/IOTBluetooth/IOTBluetooth/Pods/Pods.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/SnapKit-SnapKit_Privacy.xcscheme
new file mode 100644 (file)
index 0000000..db63be7
--- /dev/null
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "1600"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "8A8DB685241263AFDF5E6B20FE67B93A"
+               BuildableName = "SnapKit_Privacy.bundle"
+               BlueprintName = "SnapKit-SnapKit_Privacy"
+               ReferencedContainer = "container:Pods.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES">
+      <Testables>
+      </Testables>
+   </TestAction>
+   <LaunchAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      debugServiceExtension = "internal"
+      allowLocationSimulation = "YES">
+   </LaunchAction>
+   <ProfileAction
+      buildConfiguration = "Release"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      debugDocumentVersioning = "YES">
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Pods.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/SnapKit.xcscheme b/IOTBluetooth/IOTBluetooth/Pods/Pods.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/SnapKit.xcscheme
new file mode 100644 (file)
index 0000000..296de78
--- /dev/null
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "1600"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "19622742EBA51E823D6DAE3F8CDBFAD4"
+               BuildableName = "SnapKit.framework"
+               BlueprintName = "SnapKit"
+               ReferencedContainer = "container:Pods.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES">
+      <Testables>
+      </Testables>
+   </TestAction>
+   <LaunchAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      debugServiceExtension = "internal"
+      allowLocationSimulation = "YES">
+   </LaunchAction>
+   <ProfileAction
+      buildConfiguration = "Release"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      debugDocumentVersioning = "YES">
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Pods.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/Toast-Swift-Toast-Swift.xcscheme b/IOTBluetooth/IOTBluetooth/Pods/Pods.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/Toast-Swift-Toast-Swift.xcscheme
new file mode 100644 (file)
index 0000000..5734661
--- /dev/null
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "1600"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "C344E85893FCDEE5B70436E0A4A3472B"
+               BuildableName = "Toast-Swift.bundle"
+               BlueprintName = "Toast-Swift-Toast-Swift"
+               ReferencedContainer = "container:Pods.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES">
+      <Testables>
+      </Testables>
+   </TestAction>
+   <LaunchAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      debugServiceExtension = "internal"
+      allowLocationSimulation = "YES">
+   </LaunchAction>
+   <ProfileAction
+      buildConfiguration = "Release"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      debugDocumentVersioning = "YES">
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Pods.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/Toast-Swift.xcscheme b/IOTBluetooth/IOTBluetooth/Pods/Pods.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/Toast-Swift.xcscheme
new file mode 100644 (file)
index 0000000..fd1fae2
--- /dev/null
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "1600"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "B990BD87169C76A3ED3FE8A9258D91A3"
+               BuildableName = "Toast_Swift.framework"
+               BlueprintName = "Toast-Swift"
+               ReferencedContainer = "container:Pods.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES">
+      <Testables>
+      </Testables>
+   </TestAction>
+   <LaunchAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      debugServiceExtension = "internal"
+      allowLocationSimulation = "YES">
+   </LaunchAction>
+   <ProfileAction
+      buildConfiguration = "Release"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      debugDocumentVersioning = "YES">
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Pods.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/xcschememanagement.plist b/IOTBluetooth/IOTBluetooth/Pods/Pods.xcodeproj/xcuserdata/yaozuopan.xcuserdatad/xcschemes/xcschememanagement.plist
new file mode 100644 (file)
index 0000000..ab92724
--- /dev/null
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+       <key>SchemeUserState</key>
+       <dict>
+               <key>IQKeyboardManagerSwift-IQKeyboardManagerSwift.xcscheme</key>
+               <dict>
+                       <key>isShown</key>
+                       <false/>
+                       <key>orderHint</key>
+                       <integer>2</integer>
+               </dict>
+               <key>IQKeyboardManagerSwift.xcscheme</key>
+               <dict>
+                       <key>isShown</key>
+                       <false/>
+                       <key>orderHint</key>
+                       <integer>1</integer>
+               </dict>
+               <key>Pods-Example.xcscheme</key>
+               <dict>
+                       <key>isShown</key>
+                       <false/>
+                       <key>orderHint</key>
+                       <integer>3</integer>
+               </dict>
+               <key>SnapKit-SnapKit_Privacy.xcscheme</key>
+               <dict>
+                       <key>isShown</key>
+                       <false/>
+                       <key>orderHint</key>
+                       <integer>5</integer>
+               </dict>
+               <key>SnapKit.xcscheme</key>
+               <dict>
+                       <key>isShown</key>
+                       <false/>
+                       <key>orderHint</key>
+                       <integer>4</integer>
+               </dict>
+               <key>Toast-Swift-Toast-Swift.xcscheme</key>
+               <dict>
+                       <key>isShown</key>
+                       <false/>
+                       <key>orderHint</key>
+                       <integer>7</integer>
+               </dict>
+               <key>Toast-Swift.xcscheme</key>
+               <dict>
+                       <key>isShown</key>
+                       <false/>
+                       <key>orderHint</key>
+                       <integer>6</integer>
+               </dict>
+       </dict>
+       <key>SuppressBuildableAutocreation</key>
+       <dict/>
+</dict>
+</plist>
diff --git a/IOTBluetooth/IOTBluetooth/Pods/SnapKit/LICENSE b/IOTBluetooth/IOTBluetooth/Pods/SnapKit/LICENSE
new file mode 100644 (file)
index 0000000..a18ccfb
--- /dev/null
@@ -0,0 +1,19 @@
+Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/IOTBluetooth/IOTBluetooth/Pods/SnapKit/README.md b/IOTBluetooth/IOTBluetooth/Pods/SnapKit/README.md
new file mode 100644 (file)
index 0000000..e1be307
--- /dev/null
@@ -0,0 +1,155 @@
+<img src="https://snapkit.github.io/SnapKit/images/banner.jpg" alt="" />
+
+SnapKit is a DSL to make Auto Layout easy on both iOS and OS X.
+
+[![Build Status](https://travis-ci.org/SnapKit/SnapKit.svg)](https://travis-ci.org/SnapKit/SnapKit)
+[![Platform](https://img.shields.io/cocoapods/p/SnapKit.svg?style=flat)](https://github.com/SnapKit/SnapKit)
+[![Cocoapods Compatible](https://img.shields.io/cocoapods/v/SnapKit.svg)](https://cocoapods.org/pods/SnapKit)
+[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage)
+
+#### ⚠️ **To use with Swift 4.x please ensure you are using >= 4.0.0** ⚠️
+#### ⚠️ **To use with Swift 5.x please ensure you are using >= 5.0.0** ⚠️
+
+## Contents
+
+- [Requirements](#requirements)
+- [Migration Guides](#migration-guides)
+- [Communication](#communication)
+- [Installation](#installation)
+- [Usage](#usage)
+- [Credits](#credits)
+- [License](#license)
+
+## Requirements
+
+- iOS 12.0+ / Mac OS X 10.13+ / tvOS 10.0+
+- Xcode 10.0+
+- Swift 4.0+
+
+## Migration Guides
+
+- [SnapKit 3.0 Migration Guide](Documentation/SnapKit%203.0%20Migration%20Guide.md)
+
+## Communication
+
+- If you **need help**, use [Stack Overflow](http://stackoverflow.com/questions/tagged/snapkit). (Tag 'snapkit')
+- If you'd like to **ask a general question**, use [Stack Overflow](http://stackoverflow.com/questions/tagged/snapkit).
+- If you **found a bug**, open an issue.
+- If you **have a feature request**, open an issue.
+- If you **want to contribute**, submit a pull request.
+
+
+## Installation
+
+### CocoaPods
+
+[CocoaPods](http://cocoapods.org) is a dependency manager for Cocoa projects. You can install it with the following command:
+
+```bash
+$ gem install cocoapods
+```
+
+> CocoaPods 1.1.0+ is required to build SnapKit 4.0.0+.
+
+To integrate SnapKit into your Xcode project using CocoaPods, specify it in your `Podfile`:
+
+```ruby
+source 'https://github.com/CocoaPods/Specs.git'
+platform :ios, '10.0'
+use_frameworks!
+
+target '<Your Target Name>' do
+    pod 'SnapKit', '~> 5.7.0'
+end
+```
+
+Then, run the following command:
+
+```bash
+$ pod install
+```
+
+### Carthage
+
+[Carthage](https://github.com/Carthage/Carthage) is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.
+
+You can install Carthage with [Homebrew](http://brew.sh/) using the following command:
+
+```bash
+$ brew update
+$ brew install carthage
+```
+
+To integrate SnapKit into your Xcode project using Carthage, specify it in your `Cartfile`:
+
+```ogdl
+github "SnapKit/SnapKit" ~> 5.0.0
+```
+
+Run `carthage update` to build the framework and drag the built `SnapKit.framework` into your Xcode project.
+
+### Swift Package Manager
+
+[Swift Package Manager](https://swift.org/package-manager/) is a tool for managing the distribution of Swift code. It’s integrated with the Swift build system to automate the process of downloading, compiling, and linking dependencies.
+
+> Xcode 11+ is required to build SnapKit using Swift Package Manager.
+
+To integrate SnapKit into your Xcode project using Swift Package Manager, add it to the dependencies value of your `Package.swift`:
+
+```swift
+dependencies: [
+    .package(url: "https://github.com/SnapKit/SnapKit.git", .upToNextMajor(from: "5.0.1"))
+]
+```
+
+### Manually
+
+If you prefer not to use either of the aforementioned dependency managers, you can integrate SnapKit into your project manually.
+
+---
+
+## Usage
+
+### Quick Start
+
+```swift
+import SnapKit
+
+class MyViewController: UIViewController {
+
+    lazy var box = UIView()
+
+    override func viewDidLoad() {
+        super.viewDidLoad()
+
+        self.view.addSubview(box)
+        box.backgroundColor = .green
+        box.snp.makeConstraints { (make) -> Void in
+           make.width.height.equalTo(50)
+           make.center.equalTo(self.view)
+        }
+    }
+
+}
+```
+
+### Playground
+You can try SnapKit in Playground.
+
+**Note:**
+
+> To try SnapKit in playground, open `SnapKit.xcworkspace` and build SnapKit.framework for any simulator first.
+
+### Resources
+
+- [Documentation](https://snapkit.github.io/SnapKit/docs/)
+- [F.A.Q.](https://snapkit.github.io/SnapKit/faq/)
+
+## Credits
+
+- Robert Payne ([@robertjpayne](https://twitter.com/robertjpayne))
+- Many other contributors
+
+## License
+
+SnapKit is released under the MIT license. See LICENSE for details.
diff --git a/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/Constraint.swift b/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/Constraint.swift
new file mode 100644 (file)
index 0000000..b890152
--- /dev/null
@@ -0,0 +1,341 @@
+//
+//  SnapKit
+//
+//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
+//
+//  Permission is hereby granted, free of charge, to any person obtaining a copy
+//  of this software and associated documentation files (the "Software"), to deal
+//  in the Software without restriction, including without limitation the rights
+//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+//  copies of the Software, and to permit persons to whom the Software is
+//  furnished to do so, subject to the following conditions:
+//
+//  The above copyright notice and this permission notice shall be included in
+//  all copies or substantial portions of the Software.
+//
+//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+//  THE SOFTWARE.
+
+#if canImport(UIKit)
+    import UIKit
+#else
+    import AppKit
+#endif
+
+public final class Constraint {
+
+    internal let sourceLocation: (String, UInt)
+    internal let label: String?
+
+    private let from: ConstraintItem
+    private let to: ConstraintItem
+    private let relation: ConstraintRelation
+    private let multiplier: ConstraintMultiplierTarget
+    private var constant: ConstraintConstantTarget {
+        didSet {
+            self.updateConstantAndPriorityIfNeeded()
+        }
+    }
+    private var priority: ConstraintPriorityTarget {
+        didSet {
+          self.updateConstantAndPriorityIfNeeded()
+        }
+    }
+    public var layoutConstraints: [LayoutConstraint]
+    
+    public var isActive: Bool {
+        set {
+            if newValue {
+                activate()
+            }
+            else {
+                deactivate()
+            }
+        }
+        
+        get {
+            for layoutConstraint in self.layoutConstraints {
+                if layoutConstraint.isActive {
+                    return true
+                }
+            }
+            return false
+        }
+    }
+    
+    // MARK: Initialization
+
+    internal init(from: ConstraintItem,
+                  to: ConstraintItem,
+                  relation: ConstraintRelation,
+                  sourceLocation: (String, UInt),
+                  label: String?,
+                  multiplier: ConstraintMultiplierTarget,
+                  constant: ConstraintConstantTarget,
+                  priority: ConstraintPriorityTarget) {
+        self.from = from
+        self.to = to
+        self.relation = relation
+        self.sourceLocation = sourceLocation
+        self.label = label
+        self.multiplier = multiplier
+        self.constant = constant
+        self.priority = priority
+        self.layoutConstraints = []
+
+        // get attributes
+        let layoutFromAttributes = self.from.attributes.layoutAttributes
+        let layoutToAttributes = self.to.attributes.layoutAttributes
+
+        // get layout from
+        let layoutFrom = self.from.layoutConstraintItem!
+
+        // get relation
+        let layoutRelation = self.relation.layoutRelation
+
+        for layoutFromAttribute in layoutFromAttributes {
+            // get layout to attribute
+            let layoutToAttribute: LayoutAttribute
+            #if canImport(UIKit)
+                if layoutToAttributes.count > 0 {
+                    if self.from.attributes == .edges && self.to.attributes == .margins {
+                        switch layoutFromAttribute {
+                        case .left:
+                            layoutToAttribute = .leftMargin
+                        case .right:
+                            layoutToAttribute = .rightMargin
+                        case .top:
+                            layoutToAttribute = .topMargin
+                        case .bottom:
+                            layoutToAttribute = .bottomMargin
+                        default:
+                            fatalError()
+                        }
+                    } else if self.from.attributes == .margins && self.to.attributes == .edges {
+                        switch layoutFromAttribute {
+                        case .leftMargin:
+                            layoutToAttribute = .left
+                        case .rightMargin:
+                            layoutToAttribute = .right
+                        case .topMargin:
+                            layoutToAttribute = .top
+                        case .bottomMargin:
+                            layoutToAttribute = .bottom
+                        default:
+                            fatalError()
+                        }
+                    } else if self.from.attributes == .directionalEdges && self.to.attributes == .directionalMargins {
+                      switch layoutFromAttribute {
+                      case .leading:
+                        layoutToAttribute = .leadingMargin
+                      case .trailing:
+                        layoutToAttribute = .trailingMargin
+                      case .top:
+                        layoutToAttribute = .topMargin
+                      case .bottom:
+                        layoutToAttribute = .bottomMargin
+                      default:
+                        fatalError()
+                      }
+                    } else if self.from.attributes == .directionalMargins && self.to.attributes == .directionalEdges {
+                      switch layoutFromAttribute {
+                      case .leadingMargin:
+                        layoutToAttribute = .leading
+                      case .trailingMargin:
+                        layoutToAttribute = .trailing
+                      case .topMargin:
+                        layoutToAttribute = .top
+                      case .bottomMargin:
+                        layoutToAttribute = .bottom
+                      default:
+                        fatalError()
+                      }
+                    } else if self.from.attributes == self.to.attributes {
+                        layoutToAttribute = layoutFromAttribute
+                    } else {
+                        layoutToAttribute = layoutToAttributes[0]
+                    }
+                } else {
+                    if self.to.target == nil && (layoutFromAttribute == .centerX || layoutFromAttribute == .centerY) {
+                        layoutToAttribute = layoutFromAttribute == .centerX ? .left : .top
+                    } else {
+                        layoutToAttribute = layoutFromAttribute
+                    }
+                }
+            #else
+                if self.from.attributes == self.to.attributes {
+                    layoutToAttribute = layoutFromAttribute
+                } else if layoutToAttributes.count > 0 {
+                    layoutToAttribute = layoutToAttributes[0]
+                } else {
+                    layoutToAttribute = layoutFromAttribute
+                }
+            #endif
+
+            // get layout constant
+            let layoutConstant: CGFloat = self.constant.constraintConstantTargetValueFor(layoutAttribute: layoutToAttribute)
+
+            // get layout to
+            var layoutTo: AnyObject? = self.to.target
+
+            // use superview if possible
+            if layoutTo == nil && layoutToAttribute != .width && layoutToAttribute != .height {
+                layoutTo = layoutFrom.superview
+            }
+
+            // create layout constraint
+            let layoutConstraint = LayoutConstraint(
+                item: layoutFrom,
+                attribute: layoutFromAttribute,
+                relatedBy: layoutRelation,
+                toItem: layoutTo,
+                attribute: layoutToAttribute,
+                multiplier: self.multiplier.constraintMultiplierTargetValue,
+                constant: layoutConstant
+            )
+
+            // set label
+            layoutConstraint.label = self.label
+
+            // set priority
+            layoutConstraint.priority = LayoutPriority(rawValue: self.priority.constraintPriorityTargetValue)
+
+            // set constraint
+            layoutConstraint.constraint = self
+
+            // append
+            self.layoutConstraints.append(layoutConstraint)
+        }
+    }
+
+    // MARK: Public
+
+    @available(*, deprecated, renamed:"activate()")
+    public func install() {
+        self.activate()
+    }
+
+    @available(*, deprecated, renamed:"deactivate()")
+    public func uninstall() {
+        self.deactivate()
+    }
+
+    public func activate() {
+        self.activateIfNeeded()
+    }
+
+    public func deactivate() {
+        self.deactivateIfNeeded()
+    }
+
+    @discardableResult
+    public func update(offset: ConstraintOffsetTarget) -> Constraint {
+        self.constant = offset.constraintOffsetTargetValue
+        return self
+    }
+
+    @discardableResult
+    public func update(inset: ConstraintInsetTarget) -> Constraint {
+        self.constant = inset.constraintInsetTargetValue
+        return self
+    }
+
+    #if canImport(UIKit)
+    @discardableResult
+    @available(iOS 11.0, tvOS 11.0, *)
+    public func update(inset: ConstraintDirectionalInsetTarget) -> Constraint {
+      self.constant = inset.constraintDirectionalInsetTargetValue
+      return self
+    }
+    #endif
+
+    @discardableResult
+    public func update(priority: ConstraintPriorityTarget) -> Constraint {
+        self.priority = priority.constraintPriorityTargetValue
+        return self
+    }
+
+    @discardableResult
+    public func update(priority: ConstraintPriority) -> Constraint {
+        self.priority = priority.value
+        return self
+    }
+
+    @available(*, deprecated, renamed:"update(offset:)")
+    public func updateOffset(amount: ConstraintOffsetTarget) -> Void { self.update(offset: amount) }
+
+    @available(*, deprecated, renamed:"update(inset:)")
+    public func updateInsets(amount: ConstraintInsetTarget) -> Void { self.update(inset: amount) }
+
+    @available(*, deprecated, renamed:"update(priority:)")
+    public func updatePriority(amount: ConstraintPriorityTarget) -> Void { self.update(priority: amount) }
+
+    @available(*, deprecated, message:"Use update(priority: ConstraintPriorityTarget) instead.")
+    public func updatePriorityRequired() -> Void {}
+
+    @available(*, deprecated, message:"Use update(priority: ConstraintPriorityTarget) instead.")
+    public func updatePriorityHigh() -> Void { fatalError("Must be implemented by Concrete subclass.") }
+
+    @available(*, deprecated, message:"Use update(priority: ConstraintPriorityTarget) instead.")
+    public func updatePriorityMedium() -> Void { fatalError("Must be implemented by Concrete subclass.") }
+
+    @available(*, deprecated, message:"Use update(priority: ConstraintPriorityTarget) instead.")
+    public func updatePriorityLow() -> Void { fatalError("Must be implemented by Concrete subclass.") }
+
+    // MARK: Internal
+
+    internal func updateConstantAndPriorityIfNeeded() {
+        for layoutConstraint in self.layoutConstraints {
+            let attribute = (layoutConstraint.secondAttribute == .notAnAttribute) ? layoutConstraint.firstAttribute : layoutConstraint.secondAttribute
+            layoutConstraint.constant = self.constant.constraintConstantTargetValueFor(layoutAttribute: attribute)
+
+            let requiredPriority = ConstraintPriority.required.value
+            if (layoutConstraint.priority.rawValue < requiredPriority), (self.priority.constraintPriorityTargetValue != requiredPriority) {
+                layoutConstraint.priority = LayoutPriority(rawValue: self.priority.constraintPriorityTargetValue)
+            }
+        }
+    }
+
+    internal func activateIfNeeded(updatingExisting: Bool = false) {
+        guard let item = self.from.layoutConstraintItem else {
+            print("WARNING: SnapKit failed to get from item from constraint. Activate will be a no-op.")
+            return
+        }
+        let layoutConstraints = self.layoutConstraints
+
+        if updatingExisting {
+            var existingLayoutConstraints: [LayoutConstraint] = []
+            for constraint in item.constraints {
+                existingLayoutConstraints += constraint.layoutConstraints
+            }
+
+            for layoutConstraint in layoutConstraints {
+                let existingLayoutConstraint = existingLayoutConstraints.first { $0 == layoutConstraint }
+                guard let updateLayoutConstraint = existingLayoutConstraint else {
+                    fatalError("Updated constraint could not find existing matching constraint to update: \(layoutConstraint)")
+                }
+
+                let updateLayoutAttribute = (updateLayoutConstraint.secondAttribute == .notAnAttribute) ? updateLayoutConstraint.firstAttribute : updateLayoutConstraint.secondAttribute
+                updateLayoutConstraint.constant = self.constant.constraintConstantTargetValueFor(layoutAttribute: updateLayoutAttribute)
+            }
+        } else {
+            NSLayoutConstraint.activate(layoutConstraints)
+            item.add(constraints: [self])
+        }
+    }
+
+    internal func deactivateIfNeeded() {
+        guard let item = self.from.layoutConstraintItem else {
+            print("WARNING: SnapKit failed to get from item from constraint. Deactivate will be a no-op.")
+            return
+        }
+        let layoutConstraints = self.layoutConstraints
+        NSLayoutConstraint.deactivate(layoutConstraints)
+        item.remove(constraints: [self])
+    }
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintAttributes.swift b/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintAttributes.swift
new file mode 100644 (file)
index 0000000..c1a79c2
--- /dev/null
@@ -0,0 +1,203 @@
+//
+//  SnapKit
+//
+//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
+//
+//  Permission is hereby granted, free of charge, to any person obtaining a copy
+//  of this software and associated documentation files (the "Software"), to deal
+//  in the Software without restriction, including without limitation the rights
+//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+//  copies of the Software, and to permit persons to whom the Software is
+//  furnished to do so, subject to the following conditions:
+//
+//  The above copyright notice and this permission notice shall be included in
+//  all copies or substantial portions of the Software.
+//
+//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+//  THE SOFTWARE.
+
+#if canImport(UIKit)
+    import UIKit
+#else
+    import AppKit
+#endif
+
+
+internal struct ConstraintAttributes : OptionSet, ExpressibleByIntegerLiteral {
+    
+    typealias IntegerLiteralType = UInt
+    
+    internal init(rawValue: UInt) {
+        self.rawValue = rawValue
+    }
+    internal init(_ rawValue: UInt) {
+        self.init(rawValue: rawValue)
+    }
+    internal init(nilLiteral: ()) {
+        self.rawValue = 0
+    }
+    internal init(integerLiteral rawValue: IntegerLiteralType) {
+        self.init(rawValue: rawValue)
+    }
+    
+    internal private(set) var rawValue: UInt
+    internal static var allZeros: ConstraintAttributes { return 0 }
+    internal static func convertFromNilLiteral() -> ConstraintAttributes { return 0 }
+    internal var boolValue: Bool { return self.rawValue != 0 }
+    
+    internal func toRaw() -> UInt { return self.rawValue }
+    internal static func fromRaw(_ raw: UInt) -> ConstraintAttributes? { return self.init(raw) }
+    internal static func fromMask(_ raw: UInt) -> ConstraintAttributes { return self.init(raw) }
+    
+    // normal
+    
+    internal static let none: ConstraintAttributes = 0
+    internal static let left: ConstraintAttributes = ConstraintAttributes(UInt(1) << 0)
+    internal static let top: ConstraintAttributes = ConstraintAttributes(UInt(1) << 1)
+    internal static let right: ConstraintAttributes = ConstraintAttributes(UInt(1) << 2)
+    internal static let bottom: ConstraintAttributes = ConstraintAttributes(UInt(1) << 3)
+    internal static let leading: ConstraintAttributes = ConstraintAttributes(UInt(1) << 4)
+    internal static let trailing: ConstraintAttributes = ConstraintAttributes(UInt(1) << 5)
+    internal static let width: ConstraintAttributes = ConstraintAttributes(UInt(1) << 6)
+    internal static let height: ConstraintAttributes = ConstraintAttributes(UInt(1) << 7)
+    internal static let centerX: ConstraintAttributes = ConstraintAttributes(UInt(1) << 8)
+    internal static let centerY: ConstraintAttributes = ConstraintAttributes(UInt(1) << 9)
+    internal static let lastBaseline: ConstraintAttributes = ConstraintAttributes(UInt(1) << 10)
+    
+    @available(iOS 8.0, OSX 10.11, *)
+    internal static let firstBaseline: ConstraintAttributes = ConstraintAttributes(UInt(1) << 11)
+
+    @available(iOS 8.0, *)
+    internal static let leftMargin: ConstraintAttributes = ConstraintAttributes(UInt(1) << 12)
+
+    @available(iOS 8.0, *)
+    internal static let rightMargin: ConstraintAttributes = ConstraintAttributes(UInt(1) << 13)
+
+    @available(iOS 8.0, *)
+    internal static let topMargin: ConstraintAttributes = ConstraintAttributes(UInt(1) << 14)
+
+    @available(iOS 8.0, *)
+    internal static let bottomMargin: ConstraintAttributes = ConstraintAttributes(UInt(1) << 15)
+
+    @available(iOS 8.0, *)
+    internal static let leadingMargin: ConstraintAttributes = ConstraintAttributes(UInt(1) << 16)
+
+    @available(iOS 8.0, *)
+    internal static let trailingMargin: ConstraintAttributes = ConstraintAttributes(UInt(1) << 17)
+
+    @available(iOS 8.0, *)
+    internal static let centerXWithinMargins: ConstraintAttributes = ConstraintAttributes(UInt(1) << 18)
+
+    @available(iOS 8.0, *)
+    internal static let centerYWithinMargins: ConstraintAttributes = ConstraintAttributes(UInt(1) << 19)
+    
+    // aggregates
+    
+    internal static let edges: ConstraintAttributes = [.horizontalEdges, .verticalEdges]
+    internal static let horizontalEdges: ConstraintAttributes = [.left, .right]
+    internal static let verticalEdges: ConstraintAttributes = [.top, .bottom]
+    internal static let directionalEdges: ConstraintAttributes = [.directionalHorizontalEdges, .directionalVerticalEdges]
+    internal static let directionalHorizontalEdges: ConstraintAttributes = [.leading, .trailing]
+    internal static let directionalVerticalEdges: ConstraintAttributes = [.top, .bottom]
+    internal static let size: ConstraintAttributes = [.width, .height]
+    internal static let center: ConstraintAttributes = [.centerX, .centerY]
+
+    @available(iOS 8.0, *)
+    internal static let margins: ConstraintAttributes = [.leftMargin, .topMargin, .rightMargin, .bottomMargin]
+
+    @available(iOS 8.0, *)
+    internal static let directionalMargins: ConstraintAttributes = [.leadingMargin, .topMargin, .trailingMargin, .bottomMargin]
+
+    @available(iOS 8.0, *)
+    internal static let centerWithinMargins: ConstraintAttributes = [.centerXWithinMargins, .centerYWithinMargins]
+    
+    internal var layoutAttributes:[LayoutAttribute] {
+        var attrs = [LayoutAttribute]()
+        if (self.contains(ConstraintAttributes.left)) {
+            attrs.append(.left)
+        }
+        if (self.contains(ConstraintAttributes.top)) {
+            attrs.append(.top)
+        }
+        if (self.contains(ConstraintAttributes.right)) {
+            attrs.append(.right)
+        }
+        if (self.contains(ConstraintAttributes.bottom)) {
+            attrs.append(.bottom)
+        }
+        if (self.contains(ConstraintAttributes.leading)) {
+            attrs.append(.leading)
+        }
+        if (self.contains(ConstraintAttributes.trailing)) {
+            attrs.append(.trailing)
+        }
+        if (self.contains(ConstraintAttributes.width)) {
+            attrs.append(.width)
+        }
+        if (self.contains(ConstraintAttributes.height)) {
+            attrs.append(.height)
+        }
+        if (self.contains(ConstraintAttributes.centerX)) {
+            attrs.append(.centerX)
+        }
+        if (self.contains(ConstraintAttributes.centerY)) {
+            attrs.append(.centerY)
+        }
+        if (self.contains(ConstraintAttributes.lastBaseline)) {
+            attrs.append(.lastBaseline)
+        }
+        
+        #if canImport(UIKit)
+            if (self.contains(ConstraintAttributes.firstBaseline)) {
+                attrs.append(.firstBaseline)
+            }
+            if (self.contains(ConstraintAttributes.leftMargin)) {
+                attrs.append(.leftMargin)
+            }
+            if (self.contains(ConstraintAttributes.rightMargin)) {
+                attrs.append(.rightMargin)
+            }
+            if (self.contains(ConstraintAttributes.topMargin)) {
+                attrs.append(.topMargin)
+            }
+            if (self.contains(ConstraintAttributes.bottomMargin)) {
+                attrs.append(.bottomMargin)
+            }
+            if (self.contains(ConstraintAttributes.leadingMargin)) {
+                attrs.append(.leadingMargin)
+            }
+            if (self.contains(ConstraintAttributes.trailingMargin)) {
+                attrs.append(.trailingMargin)
+            }
+            if (self.contains(ConstraintAttributes.centerXWithinMargins)) {
+                attrs.append(.centerXWithinMargins)
+            }
+            if (self.contains(ConstraintAttributes.centerYWithinMargins)) {
+                attrs.append(.centerYWithinMargins)
+            }
+        #endif
+        
+        return attrs
+    }
+}
+
+internal func + (left: ConstraintAttributes, right: ConstraintAttributes) -> ConstraintAttributes {
+    return left.union(right)
+}
+
+internal func +=(left: inout ConstraintAttributes, right: ConstraintAttributes) {
+    left.formUnion(right)
+}
+
+internal func -=(left: inout ConstraintAttributes, right: ConstraintAttributes) {
+    left.subtract(right)
+}
+
+internal func ==(left: ConstraintAttributes, right: ConstraintAttributes) -> Bool {
+    return left.rawValue == right.rawValue
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintConfig.swift b/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintConfig.swift
new file mode 100644 (file)
index 0000000..9bd0f23
--- /dev/null
@@ -0,0 +1,37 @@
+//
+//  SnapKit
+//
+//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
+//
+//  Permission is hereby granted, free of charge, to any person obtaining a copy
+//  of this software and associated documentation files (the "Software"), to deal
+//  in the Software without restriction, including without limitation the rights
+//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+//  copies of the Software, and to permit persons to whom the Software is
+//  furnished to do so, subject to the following conditions:
+//
+//  The above copyright notice and this permission notice shall be included in
+//  all copies or substantial portions of the Software.
+//
+//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+//  THE SOFTWARE.
+
+#if canImport(UIKit)
+    import UIKit
+    public typealias ConstraintInterfaceLayoutDirection = UIUserInterfaceLayoutDirection
+#else
+    import AppKit
+    public typealias ConstraintInterfaceLayoutDirection = NSUserInterfaceLayoutDirection
+#endif
+
+
+public struct ConstraintConfig {
+    
+    public static var interfaceLayoutDirection: ConstraintInterfaceLayoutDirection = .leftToRight
+    
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintConstantTarget.swift b/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintConstantTarget.swift
new file mode 100644 (file)
index 0000000..e16f503
--- /dev/null
@@ -0,0 +1,213 @@
+//
+//  SnapKit
+//
+//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
+//
+//  Permission is hereby granted, free of charge, to any person obtaining a copy
+//  of this software and associated documentation files (the "Software"), to deal
+//  in the Software without restriction, including without limitation the rights
+//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+//  copies of the Software, and to permit persons to whom the Software is
+//  furnished to do so, subject to the following conditions:
+//
+//  The above copyright notice and this permission notice shall be included in
+//  all copies or substantial portions of the Software.
+//
+//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+//  THE SOFTWARE.
+
+#if canImport(UIKit)
+    import UIKit
+#else
+    import AppKit
+#endif
+
+
+public protocol ConstraintConstantTarget {
+}
+
+extension CGPoint: ConstraintConstantTarget {
+}
+
+extension CGSize: ConstraintConstantTarget {    
+}
+
+extension ConstraintInsets: ConstraintConstantTarget {
+}
+
+#if canImport(UIKit)
+@available(iOS 11.0, tvOS 11.0, *)
+extension ConstraintDirectionalInsets: ConstraintConstantTarget {
+}
+#endif
+
+extension ConstraintConstantTarget {
+    
+    internal func constraintConstantTargetValueFor(layoutAttribute: LayoutAttribute) -> CGFloat {
+        if let value = self as? CGFloat {
+            return value
+        }
+        
+        if let value = self as? Float {
+            return CGFloat(value)
+        }
+        
+        if let value = self as? Double {
+            return CGFloat(value)
+        }
+        
+        if let value = self as? Int {
+            return CGFloat(value)
+        }
+        
+        if let value = self as? UInt {
+            return CGFloat(value)
+        }
+        
+        if let value = self as? CGSize {
+            if layoutAttribute == .width {
+                return value.width
+            } else if layoutAttribute == .height {
+                return value.height
+            } else {
+                return 0.0
+            }
+        }
+        
+        if let value = self as? CGPoint {
+            #if canImport(UIKit)
+                switch layoutAttribute {
+                case .left, .right, .leading, .trailing, .centerX, .leftMargin, .rightMargin, .leadingMargin, .trailingMargin, .centerXWithinMargins:
+                    return value.x
+                case .top, .bottom, .centerY, .topMargin, .bottomMargin, .centerYWithinMargins, .lastBaseline, .firstBaseline:
+                    return value.y
+                case .width, .height, .notAnAttribute:
+                    return 0.0
+                #if swift(>=5.0)
+                @unknown default:
+                    return 0.0
+                #endif
+            }
+            #else
+                switch layoutAttribute {
+                case .left, .right, .leading, .trailing, .centerX:
+                    return value.x
+                case .top, .bottom, .centerY, .lastBaseline, .firstBaseline:
+                    return value.y
+                case .width, .height, .notAnAttribute:
+                    return 0.0
+                #if swift(>=5.0)
+                @unknown default:
+                    return 0.0
+                #endif
+            }
+            #endif
+        }
+        
+        if let value = self as? ConstraintInsets {
+            #if canImport(UIKit)
+                switch layoutAttribute {
+                case .left, .leftMargin:
+                    return value.left
+                case .top, .topMargin, .firstBaseline:
+                    return value.top
+                case .right, .rightMargin:
+                    return -value.right
+                case .bottom, .bottomMargin, .lastBaseline:
+                    return -value.bottom
+                case .leading, .leadingMargin:
+                    return (ConstraintConfig.interfaceLayoutDirection == .leftToRight) ? value.left : value.right
+                case .trailing, .trailingMargin:
+                    return (ConstraintConfig.interfaceLayoutDirection == .leftToRight) ? -value.right : -value.left
+                case .centerX, .centerXWithinMargins:
+                    return (value.left - value.right) / 2
+                case .centerY, .centerYWithinMargins:
+                    return (value.top - value.bottom) / 2
+                case .width:
+                    return -(value.left + value.right)
+                case .height:
+                    return -(value.top + value.bottom)
+                case .notAnAttribute:
+                    return 0.0
+                #if swift(>=5.0)
+                @unknown default:
+                    return 0.0
+                #endif
+            }
+            #else
+                switch layoutAttribute {
+                case .left:
+                    return value.left
+                case .top, .firstBaseline:
+                    return value.top
+                case .right:
+                    return -value.right
+                case .bottom, .lastBaseline:
+                    return -value.bottom
+                case .leading:
+                    return (ConstraintConfig.interfaceLayoutDirection == .leftToRight) ? value.left : value.right
+                case .trailing:
+                    return (ConstraintConfig.interfaceLayoutDirection == .leftToRight) ? -value.right : -value.left
+                case .centerX:
+                    return (value.left - value.right) / 2
+                case .centerY:
+                    return (value.top - value.bottom) / 2
+                case .width:
+                    return -(value.left + value.right)
+                case .height:
+                    return -(value.top + value.bottom)
+                case .notAnAttribute:
+                    return 0.0
+                #if swift(>=5.0)
+                @unknown default:
+                    return 0.0
+                #endif
+            }
+            #endif
+        }
+        
+        #if canImport(UIKit)
+            if #available(iOS 11.0, tvOS 11.0, *), let value = self as? ConstraintDirectionalInsets {
+                switch layoutAttribute {
+                case .left, .leftMargin:
+                  return (ConstraintConfig.interfaceLayoutDirection == .leftToRight) ? value.leading : value.trailing
+                case .top, .topMargin, .firstBaseline:
+                    return value.top
+                case .right, .rightMargin:
+                  return (ConstraintConfig.interfaceLayoutDirection == .leftToRight) ? -value.trailing : -value.leading
+                case .bottom, .bottomMargin, .lastBaseline:
+                    return -value.bottom
+                case .leading, .leadingMargin:
+                    return value.leading
+                case .trailing, .trailingMargin:
+                    return -value.trailing
+                case .centerX, .centerXWithinMargins:
+                    return (value.leading - value.trailing) / 2
+                case .centerY, .centerYWithinMargins:
+                    return (value.top - value.bottom) / 2
+                case .width:
+                    return -(value.leading + value.trailing)
+                case .height:
+                    return -(value.top + value.bottom)
+                case .notAnAttribute:
+                    return 0.0
+                #if swift(>=5.0)
+                @unknown default:
+                    return 0.0
+                #else
+                default:
+                    return 0.0
+                #endif
+                }
+            }
+        #endif
+
+        return 0.0
+    }
+    
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintDSL.swift b/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintDSL.swift
new file mode 100644 (file)
index 0000000..5683b7f
--- /dev/null
@@ -0,0 +1,209 @@
+//
+//  SnapKit
+//
+//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
+//
+//  Permission is hereby granted, free of charge, to any person obtaining a copy
+//  of this software and associated documentation files (the "Software"), to deal
+//  in the Software without restriction, including without limitation the rights
+//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+//  copies of the Software, and to permit persons to whom the Software is
+//  furnished to do so, subject to the following conditions:
+//
+//  The above copyright notice and this permission notice shall be included in
+//  all copies or substantial portions of the Software.
+//
+//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+//  THE SOFTWARE.
+
+#if canImport(UIKit)
+    import UIKit
+#else
+    import AppKit
+#endif
+
+
+public protocol ConstraintDSL {
+    
+    var target: AnyObject? { get }
+    
+    func setLabel(_ value: String?)
+    func label() -> String?
+    
+}
+extension ConstraintDSL {
+    
+    public func setLabel(_ value: String?) {
+        objc_setAssociatedObject(self.target as Any, &labelKey, value, .OBJC_ASSOCIATION_COPY_NONATOMIC)
+    }
+    public func label() -> String? {
+        return objc_getAssociatedObject(self.target as Any, &labelKey) as? String
+    }
+    
+}
+private var labelKey: UInt8 = 0
+
+
+public protocol ConstraintBasicAttributesDSL : ConstraintDSL {
+}
+extension ConstraintBasicAttributesDSL {
+    
+    // MARK: Basics
+    
+    public var left: ConstraintItem {
+        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.left)
+    }
+    
+    public var top: ConstraintItem {
+        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.top)
+    }
+    
+    public var right: ConstraintItem {
+        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.right)
+    }
+    
+    public var bottom: ConstraintItem {
+        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.bottom)
+    }
+    
+    public var leading: ConstraintItem {
+        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.leading)
+    }
+    
+    public var trailing: ConstraintItem {
+        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.trailing)
+    }
+    
+    public var width: ConstraintItem {
+        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.width)
+    }
+    
+    public var height: ConstraintItem {
+        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.height)
+    }
+    
+    public var centerX: ConstraintItem {
+        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.centerX)
+    }
+    
+    public var centerY: ConstraintItem {
+        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.centerY)
+    }
+    
+    public var edges: ConstraintItem {
+        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.edges)
+    }
+    
+    public var directionalEdges: ConstraintItem {
+      return ConstraintItem(target: self.target, attributes: ConstraintAttributes.directionalEdges)
+    }
+
+    public var horizontalEdges: ConstraintItem {
+        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.horizontalEdges)
+    }
+
+    public var verticalEdges: ConstraintItem {
+        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.verticalEdges)
+    }
+
+    public var directionalHorizontalEdges: ConstraintItem {
+        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.directionalHorizontalEdges)
+    }
+
+    public var directionalVerticalEdges: ConstraintItem {
+        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.directionalVerticalEdges)
+    }
+
+    public var size: ConstraintItem {
+        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.size)
+    }
+    
+    public var center: ConstraintItem {
+        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.center)
+    }
+    
+}
+
+public protocol ConstraintAttributesDSL : ConstraintBasicAttributesDSL {
+}
+extension ConstraintAttributesDSL {
+    
+    // MARK: Baselines
+    @available(*, deprecated, renamed:"lastBaseline")
+    public var baseline: ConstraintItem {
+        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.lastBaseline)
+    }
+    
+    @available(iOS 8.0, OSX 10.11, *)
+    public var lastBaseline: ConstraintItem {
+        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.lastBaseline)
+    }
+    
+    @available(iOS 8.0, OSX 10.11, *)
+    public var firstBaseline: ConstraintItem {
+        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.firstBaseline)
+    }
+    
+    // MARK: Margins
+    
+    @available(iOS 8.0, *)
+    public var leftMargin: ConstraintItem {
+        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.leftMargin)
+    }
+    
+    @available(iOS 8.0, *)
+    public var topMargin: ConstraintItem {
+        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.topMargin)
+    }
+    
+    @available(iOS 8.0, *)
+    public var rightMargin: ConstraintItem {
+        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.rightMargin)
+    }
+    
+    @available(iOS 8.0, *)
+    public var bottomMargin: ConstraintItem {
+        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.bottomMargin)
+    }
+    
+    @available(iOS 8.0, *)
+    public var leadingMargin: ConstraintItem {
+        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.leadingMargin)
+    }
+    
+    @available(iOS 8.0, *)
+    public var trailingMargin: ConstraintItem {
+        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.trailingMargin)
+    }
+    
+    @available(iOS 8.0, *)
+    public var centerXWithinMargins: ConstraintItem {
+        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.centerXWithinMargins)
+    }
+    
+    @available(iOS 8.0, *)
+    public var centerYWithinMargins: ConstraintItem {
+        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.centerYWithinMargins)
+    }
+    
+    @available(iOS 8.0, *)
+    public var margins: ConstraintItem {
+        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.margins)
+    }
+    
+    @available(iOS 8.0, *)
+    public var directionalMargins: ConstraintItem {
+      return ConstraintItem(target: self.target, attributes: ConstraintAttributes.directionalMargins)
+    }
+
+    @available(iOS 8.0, *)
+    public var centerWithinMargins: ConstraintItem {
+        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.centerWithinMargins)
+    }
+    
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintDescription.swift b/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintDescription.swift
new file mode 100644 (file)
index 0000000..b9d476c
--- /dev/null
@@ -0,0 +1,69 @@
+//
+//  SnapKit
+//
+//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
+//
+//  Permission is hereby granted, free of charge, to any person obtaining a copy
+//  of this software and associated documentation files (the "Software"), to deal
+//  in the Software without restriction, including without limitation the rights
+//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+//  copies of the Software, and to permit persons to whom the Software is
+//  furnished to do so, subject to the following conditions:
+//
+//  The above copyright notice and this permission notice shall be included in
+//  all copies or substantial portions of the Software.
+//
+//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+//  THE SOFTWARE.
+
+#if canImport(UIKit)
+    import UIKit
+#else
+    import AppKit
+#endif
+
+
+public class ConstraintDescription {
+    
+    internal let item: LayoutConstraintItem
+    internal var attributes: ConstraintAttributes
+    internal var relation: ConstraintRelation? = nil
+    internal var sourceLocation: (String, UInt)? = nil
+    internal var label: String? = nil
+    internal var related: ConstraintItem? = nil
+    internal var multiplier: ConstraintMultiplierTarget = 1.0
+    internal var constant: ConstraintConstantTarget = 0.0
+    internal var priority: ConstraintPriorityTarget = 1000.0
+    internal lazy var constraint: Constraint? = {
+        guard let relation = self.relation,
+              let related = self.related,
+              let sourceLocation = self.sourceLocation else {
+            return nil
+        }
+        let from = ConstraintItem(target: self.item, attributes: self.attributes)
+        
+        return Constraint(
+            from: from,
+            to: related,
+            relation: relation,
+            sourceLocation: sourceLocation,
+            label: self.label,
+            multiplier: self.multiplier,
+            constant: self.constant,
+            priority: self.priority
+        )
+    }()
+    
+    // MARK: Initialization
+    
+    internal init(item: LayoutConstraintItem, attributes: ConstraintAttributes) {
+        self.item = item
+        self.attributes = attributes
+    }
+    
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintDirectionalInsetTarget.swift b/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintDirectionalInsetTarget.swift
new file mode 100644 (file)
index 0000000..4c3c418
--- /dev/null
@@ -0,0 +1,49 @@
+//
+//  SnapKit
+//
+//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
+//
+//  Permission is hereby granted, free of charge, to any person obtaining a copy
+//  of this software and associated documentation files (the "Software"), to deal
+//  in the Software without restriction, including without limitation the rights
+//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+//  copies of the Software, and to permit persons to whom the Software is
+//  furnished to do so, subject to the following conditions:
+//
+//  The above copyright notice and this permission notice shall be included in
+//  all copies or substantial portions of the Software.
+//
+//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+//  THE SOFTWARE.
+
+#if canImport(UIKit)
+import UIKit
+#else
+import AppKit
+#endif
+
+#if canImport(UIKit)
+public protocol ConstraintDirectionalInsetTarget: ConstraintConstantTarget {
+}
+
+@available(iOS 11.0, tvOS 11.0, *)
+extension ConstraintDirectionalInsets: ConstraintDirectionalInsetTarget {
+}
+
+extension ConstraintDirectionalInsetTarget {
+
+  @available(iOS 11.0, tvOS 11.0, *)
+  internal var constraintDirectionalInsetTargetValue: ConstraintDirectionalInsets {
+    if let amount = self as? ConstraintDirectionalInsets {
+      return amount
+    } else {
+      return ConstraintDirectionalInsets(top: 0, leading: 0, bottom: 0, trailing: 0)
+    }
+  }
+}
+#endif
diff --git a/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintDirectionalInsets.swift b/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintDirectionalInsets.swift
new file mode 100644 (file)
index 0000000..056b5c8
--- /dev/null
@@ -0,0 +1,34 @@
+//
+//  SnapKit
+//
+//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
+//
+//  Permission is hereby granted, free of charge, to any person obtaining a copy
+//  of this software and associated documentation files (the "Software"), to deal
+//  in the Software without restriction, including without limitation the rights
+//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+//  copies of the Software, and to permit persons to whom the Software is
+//  furnished to do so, subject to the following conditions:
+//
+//  The above copyright notice and this permission notice shall be included in
+//  all copies or substantial portions of the Software.
+//
+//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+//  THE SOFTWARE.
+
+#if canImport(UIKit)
+    import UIKit
+#else
+    import AppKit
+#endif
+
+
+#if canImport(UIKit)
+    @available(iOS 11.0, tvOS 11.0, *)
+    public typealias ConstraintDirectionalInsets = NSDirectionalEdgeInsets
+#endif
diff --git a/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintInsetTarget.swift b/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintInsetTarget.swift
new file mode 100644 (file)
index 0000000..43c0220
--- /dev/null
@@ -0,0 +1,72 @@
+//
+//  SnapKit
+//
+//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
+//
+//  Permission is hereby granted, free of charge, to any person obtaining a copy
+//  of this software and associated documentation files (the "Software"), to deal
+//  in the Software without restriction, including without limitation the rights
+//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+//  copies of the Software, and to permit persons to whom the Software is
+//  furnished to do so, subject to the following conditions:
+//
+//  The above copyright notice and this permission notice shall be included in
+//  all copies or substantial portions of the Software.
+//
+//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+//  THE SOFTWARE.
+
+#if canImport(UIKit)
+    import UIKit
+#else
+    import AppKit
+#endif
+
+
+public protocol ConstraintInsetTarget: ConstraintConstantTarget {
+}
+
+extension Int: ConstraintInsetTarget {
+}
+
+extension UInt: ConstraintInsetTarget {
+}
+
+extension Float: ConstraintInsetTarget {
+}
+
+extension Double: ConstraintInsetTarget {
+}
+
+extension CGFloat: ConstraintInsetTarget {
+}
+
+extension ConstraintInsets: ConstraintInsetTarget {
+}
+
+extension ConstraintInsetTarget {
+
+    internal var constraintInsetTargetValue: ConstraintInsets {
+        if let amount = self as? ConstraintInsets {
+            return amount
+        } else if let amount = self as? Float {
+            return ConstraintInsets(top: CGFloat(amount), left: CGFloat(amount), bottom: CGFloat(amount), right: CGFloat(amount))
+        } else if let amount = self as? Double {
+            return ConstraintInsets(top: CGFloat(amount), left: CGFloat(amount), bottom: CGFloat(amount), right: CGFloat(amount))
+        } else if let amount = self as? CGFloat {
+            return ConstraintInsets(top: amount, left: amount, bottom: amount, right: amount)
+        } else if let amount = self as? Int {
+            return ConstraintInsets(top: CGFloat(amount), left: CGFloat(amount), bottom: CGFloat(amount), right: CGFloat(amount))
+        } else if let amount = self as? UInt {
+            return ConstraintInsets(top: CGFloat(amount), left: CGFloat(amount), bottom: CGFloat(amount), right: CGFloat(amount))
+        } else {
+            return ConstraintInsets(top: 0, left: 0, bottom: 0, right: 0)
+        }
+    }
+    
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintInsets.swift b/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintInsets.swift
new file mode 100644 (file)
index 0000000..64d781d
--- /dev/null
@@ -0,0 +1,35 @@
+//
+//  SnapKit
+//
+//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
+//
+//  Permission is hereby granted, free of charge, to any person obtaining a copy
+//  of this software and associated documentation files (the "Software"), to deal
+//  in the Software without restriction, including without limitation the rights
+//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+//  copies of the Software, and to permit persons to whom the Software is
+//  furnished to do so, subject to the following conditions:
+//
+//  The above copyright notice and this permission notice shall be included in
+//  all copies or substantial portions of the Software.
+//
+//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+//  THE SOFTWARE.
+
+#if canImport(UIKit)
+    import UIKit
+#else
+    import AppKit
+#endif
+
+
+#if canImport(UIKit)
+    public typealias ConstraintInsets = UIEdgeInsets
+#else
+    public typealias ConstraintInsets = NSEdgeInsets
+#endif
diff --git a/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintItem.swift b/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintItem.swift
new file mode 100644 (file)
index 0000000..2f92221
--- /dev/null
@@ -0,0 +1,61 @@
+//
+//  SnapKit
+//
+//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
+//
+//  Permission is hereby granted, free of charge, to any person obtaining a copy
+//  of this software and associated documentation files (the "Software"), to deal
+//  in the Software without restriction, including without limitation the rights
+//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+//  copies of the Software, and to permit persons to whom the Software is
+//  furnished to do so, subject to the following conditions:
+//
+//  The above copyright notice and this permission notice shall be included in
+//  all copies or substantial portions of the Software.
+//
+//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+//  THE SOFTWARE.
+
+#if canImport(UIKit)
+    import UIKit
+#else
+    import AppKit
+#endif
+
+
+public final class ConstraintItem {
+    
+    internal weak var target: AnyObject?
+    internal let attributes: ConstraintAttributes
+    
+    internal init(target: AnyObject?, attributes: ConstraintAttributes) {
+        self.target = target
+        self.attributes = attributes
+    }
+    
+    internal var layoutConstraintItem: LayoutConstraintItem? {
+        return self.target as? LayoutConstraintItem
+    }
+    
+}
+
+public func ==(lhs: ConstraintItem, rhs: ConstraintItem) -> Bool {
+    // pointer equality
+    guard lhs !== rhs else {
+        return true
+    }
+    
+    // must both have valid targets and identical attributes
+    guard let target1 = lhs.target,
+          let target2 = rhs.target,
+          target1 === target2 && lhs.attributes == rhs.attributes else {
+            return false
+    }
+    
+    return true
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintLayoutGuide+Extensions.swift b/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintLayoutGuide+Extensions.swift
new file mode 100644 (file)
index 0000000..e9fd9b3
--- /dev/null
@@ -0,0 +1,36 @@
+//
+//  SnapKit
+//
+//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
+//
+//  Permission is hereby granted, free of charge, to any person obtaining a copy
+//  of this software and associated documentation files (the "Software"), to deal
+//  in the Software without restriction, including without limitation the rights
+//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+//  copies of the Software, and to permit persons to whom the Software is
+//  furnished to do so, subject to the following conditions:
+//
+//  The above copyright notice and this permission notice shall be included in
+//  all copies or substantial portions of the Software.
+//
+//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+//  THE SOFTWARE.
+
+#if canImport(UIKit)
+    import UIKit
+#endif
+    
+    
+@available(iOS 9.0, OSX 10.11, *)
+public extension ConstraintLayoutGuide {
+    
+    var snp: ConstraintLayoutGuideDSL {
+        return ConstraintLayoutGuideDSL(guide: self)
+    }
+    
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintLayoutGuide.swift b/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintLayoutGuide.swift
new file mode 100644 (file)
index 0000000..fd89556
--- /dev/null
@@ -0,0 +1,37 @@
+//
+//  SnapKit
+//
+//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
+//
+//  Permission is hereby granted, free of charge, to any person obtaining a copy
+//  of this software and associated documentation files (the "Software"), to deal
+//  in the Software without restriction, including without limitation the rights
+//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+//  copies of the Software, and to permit persons to whom the Software is
+//  furnished to do so, subject to the following conditions:
+//
+//  The above copyright notice and this permission notice shall be included in
+//  all copies or substantial portions of the Software.
+//
+//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+//  THE SOFTWARE.
+
+#if canImport(UIKit)
+    import UIKit
+#else
+    import AppKit
+#endif
+
+
+#if canImport(UIKit)
+    @available(iOS 9.0, *)
+    public typealias ConstraintLayoutGuide = UILayoutGuide
+#else
+    @available(OSX 10.11, *)
+    public typealias ConstraintLayoutGuide = NSLayoutGuide
+#endif
diff --git a/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintLayoutGuideDSL.swift b/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintLayoutGuideDSL.swift
new file mode 100644 (file)
index 0000000..7e78261
--- /dev/null
@@ -0,0 +1,66 @@
+//
+//  SnapKit
+//
+//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
+//
+//  Permission is hereby granted, free of charge, to any person obtaining a copy
+//  of this software and associated documentation files (the "Software"), to deal
+//  in the Software without restriction, including without limitation the rights
+//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+//  copies of the Software, and to permit persons to whom the Software is
+//  furnished to do so, subject to the following conditions:
+//
+//  The above copyright notice and this permission notice shall be included in
+//  all copies or substantial portions of the Software.
+//
+//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+//  THE SOFTWARE.
+
+#if canImport(UIKit)
+    import UIKit
+#else
+    import AppKit
+#endif
+
+
+@available(iOS 9.0, OSX 10.11, *)
+public struct ConstraintLayoutGuideDSL: ConstraintAttributesDSL {
+    
+    @discardableResult
+    public func prepareConstraints(_ closure: (_ make: ConstraintMaker) -> Void) -> [Constraint] {
+        return ConstraintMaker.prepareConstraints(item: self.guide, closure: closure)
+    }
+    
+    public func makeConstraints(_ closure: (_ make: ConstraintMaker) -> Void) {
+        ConstraintMaker.makeConstraints(item: self.guide, closure: closure)
+    }
+    
+    public func remakeConstraints(_ closure: (_ make: ConstraintMaker) -> Void) {
+        ConstraintMaker.remakeConstraints(item: self.guide, closure: closure)
+    }
+    
+    public func updateConstraints(_ closure: (_ make: ConstraintMaker) -> Void) {
+        ConstraintMaker.updateConstraints(item: self.guide, closure: closure)
+    }
+    
+    public func removeConstraints() {
+        ConstraintMaker.removeConstraints(item: self.guide)
+    }
+    
+    public var target: AnyObject? {
+        return self.guide
+    }
+    
+    internal let guide: ConstraintLayoutGuide
+    
+    internal init(guide: ConstraintLayoutGuide) {
+        self.guide = guide
+        
+    }
+    
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintLayoutSupport.swift b/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintLayoutSupport.swift
new file mode 100644 (file)
index 0000000..085f5cd
--- /dev/null
@@ -0,0 +1,36 @@
+//
+//  SnapKit
+//
+//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
+//
+//  Permission is hereby granted, free of charge, to any person obtaining a copy
+//  of this software and associated documentation files (the "Software"), to deal
+//  in the Software without restriction, including without limitation the rights
+//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+//  copies of the Software, and to permit persons to whom the Software is
+//  furnished to do so, subject to the following conditions:
+//
+//  The above copyright notice and this permission notice shall be included in
+//  all copies or substantial portions of the Software.
+//
+//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+//  THE SOFTWARE.
+
+#if canImport(UIKit)
+    import UIKit
+#else
+    import AppKit
+#endif
+
+
+#if canImport(UIKit)
+    @available(iOS 8.0, *)
+    public typealias ConstraintLayoutSupport = UILayoutSupport
+#else
+    public class ConstraintLayoutSupport {}
+#endif
diff --git a/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintLayoutSupportDSL.swift b/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintLayoutSupportDSL.swift
new file mode 100644 (file)
index 0000000..71e1158
--- /dev/null
@@ -0,0 +1,56 @@
+//
+//  SnapKit
+//
+//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
+//
+//  Permission is hereby granted, free of charge, to any person obtaining a copy
+//  of this software and associated documentation files (the "Software"), to deal
+//  in the Software without restriction, including without limitation the rights
+//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+//  copies of the Software, and to permit persons to whom the Software is
+//  furnished to do so, subject to the following conditions:
+//
+//  The above copyright notice and this permission notice shall be included in
+//  all copies or substantial portions of the Software.
+//
+//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+//  THE SOFTWARE.
+
+#if canImport(UIKit)
+    import UIKit
+#else
+    import AppKit
+#endif
+
+
+@available(iOS 8.0, *)
+public struct ConstraintLayoutSupportDSL: ConstraintDSL {
+    
+    public var target: AnyObject? {
+        return self.support
+    }
+    
+    internal let support: ConstraintLayoutSupport
+    
+    internal init(support: ConstraintLayoutSupport) {
+        self.support = support
+        
+    }
+    
+    public var top: ConstraintItem {
+        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.top)
+    }
+    
+    public var bottom: ConstraintItem {
+        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.bottom)
+    }
+    
+    public var height: ConstraintItem {
+        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.height)
+    }
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintMaker.swift b/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintMaker.swift
new file mode 100644 (file)
index 0000000..7c352f6
--- /dev/null
@@ -0,0 +1,224 @@
+//
+//  SnapKit
+//
+//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
+//
+//  Permission is hereby granted, free of charge, to any person obtaining a copy
+//  of this software and associated documentation files (the "Software"), to deal
+//  in the Software without restriction, including without limitation the rights
+//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+//  copies of the Software, and to permit persons to whom the Software is
+//  furnished to do so, subject to the following conditions:
+//
+//  The above copyright notice and this permission notice shall be included in
+//  all copies or substantial portions of the Software.
+//
+//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+//  THE SOFTWARE.
+
+#if canImport(UIKit)
+    import UIKit
+#else
+    import AppKit
+#endif
+
+public class ConstraintMaker {
+    
+    public var left: ConstraintMakerExtendable {
+        return self.makeExtendableWithAttributes(.left)
+    }
+    
+    public var top: ConstraintMakerExtendable {
+        return self.makeExtendableWithAttributes(.top)
+    }
+    
+    public var bottom: ConstraintMakerExtendable {
+        return self.makeExtendableWithAttributes(.bottom)
+    }
+    
+    public var right: ConstraintMakerExtendable {
+        return self.makeExtendableWithAttributes(.right)
+    }
+    
+    public var leading: ConstraintMakerExtendable {
+        return self.makeExtendableWithAttributes(.leading)
+    }
+    
+    public var trailing: ConstraintMakerExtendable {
+        return self.makeExtendableWithAttributes(.trailing)
+    }
+    
+    public var width: ConstraintMakerExtendable {
+        return self.makeExtendableWithAttributes(.width)
+    }
+    
+    public var height: ConstraintMakerExtendable {
+        return self.makeExtendableWithAttributes(.height)
+    }
+    
+    public var centerX: ConstraintMakerExtendable {
+        return self.makeExtendableWithAttributes(.centerX)
+    }
+    
+    public var centerY: ConstraintMakerExtendable {
+        return self.makeExtendableWithAttributes(.centerY)
+    }
+    
+    @available(*, deprecated, renamed:"lastBaseline")
+    public var baseline: ConstraintMakerExtendable {
+        return self.makeExtendableWithAttributes(.lastBaseline)
+    }
+    
+    public var lastBaseline: ConstraintMakerExtendable {
+        return self.makeExtendableWithAttributes(.lastBaseline)
+    }
+    
+    @available(iOS 8.0, OSX 10.11, *)
+    public var firstBaseline: ConstraintMakerExtendable {
+        return self.makeExtendableWithAttributes(.firstBaseline)
+    }
+    
+    @available(iOS 8.0, *)
+    public var leftMargin: ConstraintMakerExtendable {
+        return self.makeExtendableWithAttributes(.leftMargin)
+    }
+    
+    @available(iOS 8.0, *)
+    public var rightMargin: ConstraintMakerExtendable {
+        return self.makeExtendableWithAttributes(.rightMargin)
+    }
+    
+    @available(iOS 8.0, *)
+    public var topMargin: ConstraintMakerExtendable {
+        return self.makeExtendableWithAttributes(.topMargin)
+    }
+    
+    @available(iOS 8.0, *)
+    public var bottomMargin: ConstraintMakerExtendable {
+        return self.makeExtendableWithAttributes(.bottomMargin)
+    }
+    
+    @available(iOS 8.0, *)
+    public var leadingMargin: ConstraintMakerExtendable {
+        return self.makeExtendableWithAttributes(.leadingMargin)
+    }
+    
+    @available(iOS 8.0, *)
+    public var trailingMargin: ConstraintMakerExtendable {
+        return self.makeExtendableWithAttributes(.trailingMargin)
+    }
+    
+    @available(iOS 8.0, *)
+    public var centerXWithinMargins: ConstraintMakerExtendable {
+        return self.makeExtendableWithAttributes(.centerXWithinMargins)
+    }
+    
+    @available(iOS 8.0, *)
+    public var centerYWithinMargins: ConstraintMakerExtendable {
+        return self.makeExtendableWithAttributes(.centerYWithinMargins)
+    }
+    
+    public var edges: ConstraintMakerExtendable {
+        return self.makeExtendableWithAttributes(.edges)
+    }
+    public var horizontalEdges: ConstraintMakerExtendable {
+        return self.makeExtendableWithAttributes(.horizontalEdges)
+    }
+    public var verticalEdges: ConstraintMakerExtendable {
+        return self.makeExtendableWithAttributes(.verticalEdges)
+    }
+    public var directionalEdges: ConstraintMakerExtendable {
+        return self.makeExtendableWithAttributes(.directionalEdges)
+    }
+    public var directionalHorizontalEdges: ConstraintMakerExtendable {
+        return self.makeExtendableWithAttributes(.directionalHorizontalEdges)
+    }
+    public var directionalVerticalEdges: ConstraintMakerExtendable {
+        return self.makeExtendableWithAttributes(.directionalVerticalEdges)
+    }
+    public var size: ConstraintMakerExtendable {
+        return self.makeExtendableWithAttributes(.size)
+    }
+    public var center: ConstraintMakerExtendable {
+        return self.makeExtendableWithAttributes(.center)
+    }
+    
+    @available(iOS 8.0, *)
+    public var margins: ConstraintMakerExtendable {
+        return self.makeExtendableWithAttributes(.margins)
+    }
+    
+    @available(iOS 8.0, *)
+    public var directionalMargins: ConstraintMakerExtendable {
+        return self.makeExtendableWithAttributes(.directionalMargins)
+    }
+
+    @available(iOS 8.0, *)
+    public var centerWithinMargins: ConstraintMakerExtendable {
+        return self.makeExtendableWithAttributes(.centerWithinMargins)
+    }
+    
+    public let item: LayoutConstraintItem
+    private var descriptions = [ConstraintDescription]()
+    
+    internal init(item: LayoutConstraintItem) {
+        self.item = item
+        self.item.prepare()
+    }
+    
+    internal func makeExtendableWithAttributes(_ attributes: ConstraintAttributes) -> ConstraintMakerExtendable {
+        let description = ConstraintDescription(item: self.item, attributes: attributes)
+        self.descriptions.append(description)
+        return ConstraintMakerExtendable(description)
+    }
+    
+    internal static func prepareConstraints(item: LayoutConstraintItem, closure: (_ make: ConstraintMaker) -> Void) -> [Constraint] {
+        let maker = ConstraintMaker(item: item)
+        closure(maker)
+        var constraints: [Constraint] = []
+        for description in maker.descriptions {
+            guard let constraint = description.constraint else {
+                continue
+            }
+            constraints.append(constraint)
+        }
+        return constraints
+    }
+    
+    internal static func makeConstraints(item: LayoutConstraintItem, closure: (_ make: ConstraintMaker) -> Void) {
+        let constraints = prepareConstraints(item: item, closure: closure)
+        for constraint in constraints {
+            constraint.activateIfNeeded(updatingExisting: false)
+        }
+    }
+    
+    internal static func remakeConstraints(item: LayoutConstraintItem, closure: (_ make: ConstraintMaker) -> Void) {
+        self.removeConstraints(item: item)
+        self.makeConstraints(item: item, closure: closure)
+    }
+    
+    internal static func updateConstraints(item: LayoutConstraintItem, closure: (_ make: ConstraintMaker) -> Void) {
+        guard item.constraints.count > 0 else {
+            self.makeConstraints(item: item, closure: closure)
+            return
+        }
+        
+        let constraints = prepareConstraints(item: item, closure: closure)
+        for constraint in constraints {
+            constraint.activateIfNeeded(updatingExisting: true)
+        }
+    }
+    
+    internal static func removeConstraints(item: LayoutConstraintItem) {
+        let constraints = item.constraints
+        for constraint in constraints {
+            constraint.deactivateIfNeeded()
+        }
+    }
+    
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintMakerEditable.swift b/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintMakerEditable.swift
new file mode 100644 (file)
index 0000000..0e08e38
--- /dev/null
@@ -0,0 +1,64 @@
+//
+//  SnapKit
+//
+//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
+//
+//  Permission is hereby granted, free of charge, to any person obtaining a copy
+//  of this software and associated documentation files (the "Software"), to deal
+//  in the Software without restriction, including without limitation the rights
+//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+//  copies of the Software, and to permit persons to whom the Software is
+//  furnished to do so, subject to the following conditions:
+//
+//  The above copyright notice and this permission notice shall be included in
+//  all copies or substantial portions of the Software.
+//
+//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+//  THE SOFTWARE.
+
+#if canImport(UIKit)
+    import UIKit
+#else
+    import AppKit
+#endif
+
+
+public class ConstraintMakerEditable: ConstraintMakerPrioritizable {
+
+    @discardableResult
+    public func multipliedBy(_ amount: ConstraintMultiplierTarget) -> ConstraintMakerEditable {
+        self.description.multiplier = amount
+        return self
+    }
+    
+    @discardableResult
+    public func dividedBy(_ amount: ConstraintMultiplierTarget) -> ConstraintMakerEditable {
+        return self.multipliedBy(1.0 / amount.constraintMultiplierTargetValue)
+    }
+    
+    @discardableResult
+    public func offset(_ amount: ConstraintOffsetTarget) -> ConstraintMakerEditable {
+        self.description.constant = amount.constraintOffsetTargetValue
+        return self
+    }
+    
+    @discardableResult
+    public func inset(_ amount: ConstraintInsetTarget) -> ConstraintMakerEditable {
+        self.description.constant = amount.constraintInsetTargetValue
+        return self
+    }
+    
+    #if canImport(UIKit)
+    @discardableResult
+    @available(iOS 11.0, tvOS 11.0, *)
+    public func inset(_ amount: ConstraintDirectionalInsetTarget) -> ConstraintMakerEditable {
+        self.description.constant = amount.constraintDirectionalInsetTargetValue
+        return self
+    }
+    #endif
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintMakerExtendable.swift b/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintMakerExtendable.swift
new file mode 100644 (file)
index 0000000..b30688e
--- /dev/null
@@ -0,0 +1,195 @@
+//
+//  SnapKit
+//
+//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
+//
+//  Permission is hereby granted, free of charge, to any person obtaining a copy
+//  of this software and associated documentation files (the "Software"), to deal
+//  in the Software without restriction, including without limitation the rights
+//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+//  copies of the Software, and to permit persons to whom the Software is
+//  furnished to do so, subject to the following conditions:
+//
+//  The above copyright notice and this permission notice shall be included in
+//  all copies or substantial portions of the Software.
+//
+//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+//  THE SOFTWARE.
+
+#if canImport(UIKit)
+    import UIKit
+#else
+    import AppKit
+#endif
+
+
+public class ConstraintMakerExtendable: ConstraintMakerRelatable {
+    
+    public var left: ConstraintMakerExtendable {
+        self.description.attributes += .left
+        return self
+    }
+    
+    public var top: ConstraintMakerExtendable {
+        self.description.attributes += .top
+        return self
+    }
+    
+    public var bottom: ConstraintMakerExtendable {
+        self.description.attributes += .bottom
+        return self
+    }
+    
+    public var right: ConstraintMakerExtendable {
+        self.description.attributes += .right
+        return self
+    }
+    
+    public var leading: ConstraintMakerExtendable {
+        self.description.attributes += .leading
+        return self
+    }
+    
+    public var trailing: ConstraintMakerExtendable {
+        self.description.attributes += .trailing
+        return self
+    }
+    
+    public var width: ConstraintMakerExtendable {
+        self.description.attributes += .width
+        return self
+    }
+    
+    public var height: ConstraintMakerExtendable {
+        self.description.attributes += .height
+        return self
+    }
+    
+    public var centerX: ConstraintMakerExtendable {
+        self.description.attributes += .centerX
+        return self
+    }
+    
+    public var centerY: ConstraintMakerExtendable {
+        self.description.attributes += .centerY
+        return self
+    }
+    
+    @available(*, deprecated, renamed:"lastBaseline")
+    public var baseline: ConstraintMakerExtendable {
+        self.description.attributes += .lastBaseline
+        return self
+    }
+    
+    public var lastBaseline: ConstraintMakerExtendable {
+        self.description.attributes += .lastBaseline
+        return self
+    }
+    
+    @available(iOS 8.0, OSX 10.11, *)
+    public var firstBaseline: ConstraintMakerExtendable {
+        self.description.attributes += .firstBaseline
+        return self
+    }
+    
+    @available(iOS 8.0, *)
+    public var leftMargin: ConstraintMakerExtendable {
+        self.description.attributes += .leftMargin
+        return self
+    }
+    
+    @available(iOS 8.0, *)
+    public var rightMargin: ConstraintMakerExtendable {
+        self.description.attributes += .rightMargin
+        return self
+    }
+    
+    @available(iOS 8.0, *)
+    public var topMargin: ConstraintMakerExtendable {
+        self.description.attributes += .topMargin
+        return self
+    }
+    
+    @available(iOS 8.0, *)
+    public var bottomMargin: ConstraintMakerExtendable {
+        self.description.attributes += .bottomMargin
+        return self
+    }
+    
+    @available(iOS 8.0, *)
+    public var leadingMargin: ConstraintMakerExtendable {
+        self.description.attributes += .leadingMargin
+        return self
+    }
+    
+    @available(iOS 8.0, *)
+    public var trailingMargin: ConstraintMakerExtendable {
+        self.description.attributes += .trailingMargin
+        return self
+    }
+    
+    @available(iOS 8.0, *)
+    public var centerXWithinMargins: ConstraintMakerExtendable {
+        self.description.attributes += .centerXWithinMargins
+        return self
+    }
+    
+    @available(iOS 8.0, *)
+    public var centerYWithinMargins: ConstraintMakerExtendable {
+        self.description.attributes += .centerYWithinMargins
+        return self
+    }
+    
+    public var edges: ConstraintMakerExtendable {
+        self.description.attributes += .edges
+        return self
+    }
+    public var horizontalEdges: ConstraintMakerExtendable {
+        self.description.attributes += .horizontalEdges
+        return self
+    }
+    public var verticalEdges: ConstraintMakerExtendable {
+        self.description.attributes += .verticalEdges
+        return self
+    }
+    public var directionalEdges: ConstraintMakerExtendable {
+        self.description.attributes += .directionalEdges
+        return self
+    }
+    public var directionalHorizontalEdges: ConstraintMakerExtendable {
+        self.description.attributes += .directionalHorizontalEdges
+        return self
+    }
+    public var directionalVerticalEdges: ConstraintMakerExtendable {
+        self.description.attributes += .directionalVerticalEdges
+        return self
+    }
+    public var size: ConstraintMakerExtendable {
+        self.description.attributes += .size
+        return self
+    }
+    
+    @available(iOS 8.0, *)
+    public var margins: ConstraintMakerExtendable {
+        self.description.attributes += .margins
+        return self
+    }
+    
+    @available(iOS 8.0, *)
+    public var directionalMargins: ConstraintMakerExtendable {
+      self.description.attributes += .directionalMargins
+      return self
+    }
+
+    @available(iOS 8.0, *)
+    public var centerWithinMargins: ConstraintMakerExtendable {
+        self.description.attributes += .centerWithinMargins
+        return self
+    }
+    
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintMakerFinalizable.swift b/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintMakerFinalizable.swift
new file mode 100644 (file)
index 0000000..8342476
--- /dev/null
@@ -0,0 +1,49 @@
+//
+//  SnapKit
+//
+//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
+//
+//  Permission is hereby granted, free of charge, to any person obtaining a copy
+//  of this software and associated documentation files (the "Software"), to deal
+//  in the Software without restriction, including without limitation the rights
+//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+//  copies of the Software, and to permit persons to whom the Software is
+//  furnished to do so, subject to the following conditions:
+//
+//  The above copyright notice and this permission notice shall be included in
+//  all copies or substantial portions of the Software.
+//
+//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+//  THE SOFTWARE.
+
+#if canImport(UIKit)
+    import UIKit
+#else
+    import AppKit
+#endif
+
+
+public class ConstraintMakerFinalizable {
+    
+    internal let description: ConstraintDescription
+    
+    internal init(_ description: ConstraintDescription) {
+        self.description = description
+    }
+    
+    @discardableResult
+    public func labeled(_ label: String) -> ConstraintMakerFinalizable {
+        self.description.label = label
+        return self
+    }
+    
+    public var constraint: Constraint {
+        return self.description.constraint!
+    }
+    
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintMakerPrioritizable.swift b/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintMakerPrioritizable.swift
new file mode 100644 (file)
index 0000000..05451e6
--- /dev/null
@@ -0,0 +1,70 @@
+//
+//  SnapKit
+//
+//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
+//
+//  Permission is hereby granted, free of charge, to any person obtaining a copy
+//  of this software and associated documentation files (the "Software"), to deal
+//  in the Software without restriction, including without limitation the rights
+//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+//  copies of the Software, and to permit persons to whom the Software is
+//  furnished to do so, subject to the following conditions:
+//
+//  The above copyright notice and this permission notice shall be included in
+//  all copies or substantial portions of the Software.
+//
+//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+//  THE SOFTWARE.
+
+#if canImport(UIKit)
+    import UIKit
+#else
+    import AppKit
+#endif
+
+@available(*, deprecated, message:"Use ConstraintMakerPrioritizable instead.")
+public typealias ConstraintMakerPriortizable = ConstraintMakerPrioritizable
+
+public class ConstraintMakerPrioritizable: ConstraintMakerFinalizable {
+    
+    @discardableResult
+    public func priority(_ amount: ConstraintPriority) -> ConstraintMakerFinalizable {
+        self.description.priority = amount.value
+        return self
+    }
+    
+    @discardableResult
+    public func priority(_ amount: ConstraintPriorityTarget) -> ConstraintMakerFinalizable {
+        self.description.priority = amount
+        return self
+    }
+    
+    @available(*, deprecated, message:"Use priority(.required) instead.")
+    @discardableResult
+    public func priorityRequired() -> ConstraintMakerFinalizable {
+        return self.priority(.required)
+    }
+    
+    @available(*, deprecated, message:"Use priority(.high) instead.")
+    @discardableResult
+    public func priorityHigh() -> ConstraintMakerFinalizable {
+        return self.priority(.high)
+    }
+    
+    @available(*, deprecated, message:"Use priority(.medium) instead.")
+    @discardableResult
+    public func priorityMedium() -> ConstraintMakerFinalizable {
+        return self.priority(.medium)
+    }
+    
+    @available(*, deprecated, message:"Use priority(.low) instead.")
+    @discardableResult
+    public func priorityLow() -> ConstraintMakerFinalizable {
+        return self.priority(.low)
+    }
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintMakerRelatable+Extensions.swift b/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintMakerRelatable+Extensions.swift
new file mode 100644 (file)
index 0000000..bfde272
--- /dev/null
@@ -0,0 +1,57 @@
+//
+//  SnapKit
+//
+//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
+//
+//  Permission is hereby granted, free of charge, to any person obtaining a copy
+//  of this software and associated documentation files (the "Software"), to deal
+//  in the Software without restriction, including without limitation the rights
+//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+//  copies of the Software, and to permit persons to whom the Software is
+//  furnished to do so, subject to the following conditions:
+//
+//  The above copyright notice and this permission notice shall be included in
+//  all copies or substantial portions of the Software.
+//
+//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+//  THE SOFTWARE.
+
+#if canImport(UIKit)
+    import UIKit
+#else
+    import AppKit
+#endif
+
+
+extension ConstraintMakerRelatable {
+  
+    @discardableResult
+    public func equalToSuperview<T: ConstraintRelatableTarget>(_ closure: (ConstraintView) -> T, _ file: String = #file, line: UInt = #line) -> ConstraintMakerEditable {
+        guard let other = self.description.item.superview else {
+            fatalError("Expected superview but found nil when attempting make constraint `equalToSuperview`.")
+        }
+        return self.relatedTo(closure(other), relation: .equal, file: file, line: line)
+    }
+  
+    @discardableResult
+    public func lessThanOrEqualToSuperview<T: ConstraintRelatableTarget>(_ closure: (ConstraintView) -> T, _ file: String = #file, line: UInt = #line) -> ConstraintMakerEditable {
+        guard let other = self.description.item.superview else {
+            fatalError("Expected superview but found nil when attempting make constraint `lessThanOrEqualToSuperview`.")
+        }
+        return self.relatedTo(closure(other), relation: .lessThanOrEqual, file: file, line: line)
+    }
+  
+    @discardableResult
+    public func greaterThanOrEqualToSuperview<T: ConstraintRelatableTarget>(_ closure: (ConstraintView) -> T, _ file: String = #file, line: UInt = #line) -> ConstraintMakerEditable {
+        guard let other = self.description.item.superview else {
+            fatalError("Expected superview but found nil when attempting make constraint `greaterThanOrEqualToSuperview`.")
+        }
+        return self.relatedTo(closure(other), relation: .greaterThanOrEqual, file: file, line: line)
+    }
+  
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintMakerRelatable.swift b/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintMakerRelatable.swift
new file mode 100644 (file)
index 0000000..0a3d5ee
--- /dev/null
@@ -0,0 +1,115 @@
+//
+//  SnapKit
+//
+//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
+//
+//  Permission is hereby granted, free of charge, to any person obtaining a copy
+//  of this software and associated documentation files (the "Software"), to deal
+//  in the Software without restriction, including without limitation the rights
+//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+//  copies of the Software, and to permit persons to whom the Software is
+//  furnished to do so, subject to the following conditions:
+//
+//  The above copyright notice and this permission notice shall be included in
+//  all copies or substantial portions of the Software.
+//
+//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+//  THE SOFTWARE.
+
+#if canImport(UIKit)
+    import UIKit
+#else
+    import AppKit
+#endif
+
+
+public class ConstraintMakerRelatable {
+    
+    internal let description: ConstraintDescription
+    
+    internal init(_ description: ConstraintDescription) {
+        self.description = description
+    }
+    
+    internal func relatedTo(_ other: ConstraintRelatableTarget, relation: ConstraintRelation, file: String, line: UInt) -> ConstraintMakerEditable {
+        let related: ConstraintItem
+        let constant: ConstraintConstantTarget
+        
+        if let other = other as? ConstraintItem {
+            guard other.attributes == ConstraintAttributes.none ||
+                  other.attributes.layoutAttributes.count <= 1 ||
+                  other.attributes.layoutAttributes == self.description.attributes.layoutAttributes ||
+                  other.attributes == .edges && self.description.attributes == .margins ||
+                  other.attributes == .margins && self.description.attributes == .edges ||
+                  other.attributes == .directionalEdges && self.description.attributes == .directionalMargins ||
+                  other.attributes == .directionalMargins && self.description.attributes == .directionalEdges else {
+                fatalError("Cannot constraint to multiple non identical attributes. (\(file), \(line))");
+            }
+            
+            related = other
+            constant = 0.0
+        } else if let other = other as? ConstraintView {
+            related = ConstraintItem(target: other, attributes: ConstraintAttributes.none)
+            constant = 0.0
+        } else if let other = other as? ConstraintConstantTarget {
+            related = ConstraintItem(target: nil, attributes: ConstraintAttributes.none)
+            constant = other
+        } else if #available(iOS 9.0, OSX 10.11, *), let other = other as? ConstraintLayoutGuide {
+            related = ConstraintItem(target: other, attributes: ConstraintAttributes.none)
+            constant = 0.0
+        } else {
+            fatalError("Invalid constraint. (\(file), \(line))")
+        }
+        
+        let editable = ConstraintMakerEditable(self.description)
+        editable.description.sourceLocation = (file, line)
+        editable.description.relation = relation
+        editable.description.related = related
+        editable.description.constant = constant
+        return editable
+    }
+    
+    @discardableResult
+    public func equalTo(_ other: ConstraintRelatableTarget, _ file: String = #file, _ line: UInt = #line) -> ConstraintMakerEditable {
+        return self.relatedTo(other, relation: .equal, file: file, line: line)
+    }
+    
+    @discardableResult
+    public func equalToSuperview(_ file: String = #file, _ line: UInt = #line) -> ConstraintMakerEditable {
+        guard let other = self.description.item.superview else {
+            fatalError("Expected superview but found nil when attempting make constraint `equalToSuperview`.")
+        }
+        return self.relatedTo(other, relation: .equal, file: file, line: line)
+    }
+    
+    @discardableResult
+    public func lessThanOrEqualTo(_ other: ConstraintRelatableTarget, _ file: String = #file, _ line: UInt = #line) -> ConstraintMakerEditable {
+        return self.relatedTo(other, relation: .lessThanOrEqual, file: file, line: line)
+    }
+    
+    @discardableResult
+    public func lessThanOrEqualToSuperview(_ file: String = #file, _ line: UInt = #line) -> ConstraintMakerEditable {
+        guard let other = self.description.item.superview else {
+            fatalError("Expected superview but found nil when attempting make constraint `lessThanOrEqualToSuperview`.")
+        }
+        return self.relatedTo(other, relation: .lessThanOrEqual, file: file, line: line)
+    }
+    
+    @discardableResult
+    public func greaterThanOrEqualTo(_ other: ConstraintRelatableTarget, _ file: String = #file, line: UInt = #line) -> ConstraintMakerEditable {
+        return self.relatedTo(other, relation: .greaterThanOrEqual, file: file, line: line)
+    }
+    
+    @discardableResult
+    public func greaterThanOrEqualToSuperview(_ file: String = #file, line: UInt = #line) -> ConstraintMakerEditable {
+        guard let other = self.description.item.superview else {
+            fatalError("Expected superview but found nil when attempting make constraint `greaterThanOrEqualToSuperview`.")
+        }
+        return self.relatedTo(other, relation: .greaterThanOrEqual, file: file, line: line)
+    }
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintMultiplierTarget.swift b/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintMultiplierTarget.swift
new file mode 100644 (file)
index 0000000..ac537ba
--- /dev/null
@@ -0,0 +1,75 @@
+//
+//  SnapKit
+//
+//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
+//
+//  Permission is hereby granted, free of charge, to any person obtaining a copy
+//  of this software and associated documentation files (the "Software"), to deal
+//  in the Software without restriction, including without limitation the rights
+//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+//  copies of the Software, and to permit persons to whom the Software is
+//  furnished to do so, subject to the following conditions:
+//
+//  The above copyright notice and this permission notice shall be included in
+//  all copies or substantial portions of the Software.
+//
+//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+//  THE SOFTWARE.
+
+#if canImport(UIKit)
+    import UIKit
+#else
+    import AppKit
+#endif
+
+
+public protocol ConstraintMultiplierTarget {
+    
+    var constraintMultiplierTargetValue: CGFloat { get }
+    
+}
+
+extension Int: ConstraintMultiplierTarget {
+    
+    public var constraintMultiplierTargetValue: CGFloat {
+        return CGFloat(self)
+    }
+    
+}
+
+extension UInt: ConstraintMultiplierTarget {
+    
+    public var constraintMultiplierTargetValue: CGFloat {
+        return CGFloat(self)
+    }
+    
+}
+
+extension Float: ConstraintMultiplierTarget {
+    
+    public var constraintMultiplierTargetValue: CGFloat {
+        return CGFloat(self)
+    }
+    
+}
+
+extension Double: ConstraintMultiplierTarget {
+    
+    public var constraintMultiplierTargetValue: CGFloat {
+        return CGFloat(self)
+    }
+    
+}
+
+extension CGFloat: ConstraintMultiplierTarget {
+    
+    public var constraintMultiplierTargetValue: CGFloat {
+        return self
+    }
+    
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintOffsetTarget.swift b/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintOffsetTarget.swift
new file mode 100644 (file)
index 0000000..6ec1107
--- /dev/null
@@ -0,0 +1,69 @@
+//
+//  SnapKit
+//
+//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
+//
+//  Permission is hereby granted, free of charge, to any person obtaining a copy
+//  of this software and associated documentation files (the "Software"), to deal
+//  in the Software without restriction, including without limitation the rights
+//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+//  copies of the Software, and to permit persons to whom the Software is
+//  furnished to do so, subject to the following conditions:
+//
+//  The above copyright notice and this permission notice shall be included in
+//  all copies or substantial portions of the Software.
+//
+//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+//  THE SOFTWARE.
+
+#if canImport(UIKit)
+    import UIKit
+#else
+    import AppKit
+#endif
+
+
+public protocol ConstraintOffsetTarget: ConstraintConstantTarget {
+}
+
+extension Int: ConstraintOffsetTarget {
+}
+
+extension UInt: ConstraintOffsetTarget {
+}
+
+extension Float: ConstraintOffsetTarget {
+}
+
+extension Double: ConstraintOffsetTarget {
+}
+
+extension CGFloat: ConstraintOffsetTarget {
+}
+
+extension ConstraintOffsetTarget {
+    
+    internal var constraintOffsetTargetValue: CGFloat {
+        let offset: CGFloat
+        if let amount = self as? Float {
+            offset = CGFloat(amount)
+        } else if let amount = self as? Double {
+            offset = CGFloat(amount)
+        } else if let amount = self as? CGFloat {
+            offset = CGFloat(amount)
+        } else if let amount = self as? Int {
+            offset = CGFloat(amount)
+        } else if let amount = self as? UInt {
+            offset = CGFloat(amount)
+        } else {
+            offset = 0.0
+        }
+        return offset
+    }
+    
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintPriority.swift b/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintPriority.swift
new file mode 100644 (file)
index 0000000..bf90693
--- /dev/null
@@ -0,0 +1,77 @@
+//
+//  SnapKit
+//
+//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
+//
+//  Permission is hereby granted, free of charge, to any person obtaining a copy
+//  of this software and associated documentation files (the "Software"), to deal
+//  in the Software without restriction, including without limitation the rights
+//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+//  copies of the Software, and to permit persons to whom the Software is
+//  furnished to do so, subject to the following conditions:
+//
+//  The above copyright notice and this permission notice shall be included in
+//  all copies or substantial portions of the Software.
+//
+//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+//  THE SOFTWARE.
+
+#if canImport(UIKit)
+    import UIKit
+#else
+    import AppKit
+#endif
+
+public struct ConstraintPriority : ExpressibleByFloatLiteral, Equatable, Strideable {
+    public typealias FloatLiteralType = Float
+    
+    public let value: Float
+    
+    public init(floatLiteral value: Float) {
+        self.value = value
+    }
+    
+    public init(_ value: Float) {
+        self.value = value
+    }
+    
+    public static var required: ConstraintPriority {
+        return 1000.0
+    }
+    
+    public static var high: ConstraintPriority {
+        return 750.0
+    }
+    
+    public static var medium: ConstraintPriority {
+        #if os(OSX)
+            return 501.0
+        #else
+            return 500.0
+        #endif
+        
+    }
+    
+    public static var low: ConstraintPriority {
+        return 250.0
+    }
+    
+    public static func ==(lhs: ConstraintPriority, rhs: ConstraintPriority) -> Bool {
+        return lhs.value == rhs.value
+    }
+
+    // MARK: Strideable
+
+    public func advanced(by n: FloatLiteralType) -> ConstraintPriority {
+        return ConstraintPriority(floatLiteral: value + n)
+    }
+
+    public func distance(to other: ConstraintPriority) -> FloatLiteralType {
+        return other.value - value
+    }
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintPriorityTarget.swift b/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintPriorityTarget.swift
new file mode 100644 (file)
index 0000000..1aa701e
--- /dev/null
@@ -0,0 +1,85 @@
+//
+//  SnapKit
+//
+//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
+//
+//  Permission is hereby granted, free of charge, to any person obtaining a copy
+//  of this software and associated documentation files (the "Software"), to deal
+//  in the Software without restriction, including without limitation the rights
+//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+//  copies of the Software, and to permit persons to whom the Software is
+//  furnished to do so, subject to the following conditions:
+//
+//  The above copyright notice and this permission notice shall be included in
+//  all copies or substantial portions of the Software.
+//
+//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+//  THE SOFTWARE.
+
+#if canImport(UIKit)
+    import UIKit
+#else
+    import AppKit
+#endif
+
+
+public protocol ConstraintPriorityTarget {
+    
+    var constraintPriorityTargetValue: Float { get }
+    
+}
+
+extension Int: ConstraintPriorityTarget {
+    
+    public var constraintPriorityTargetValue: Float {
+        return Float(self)
+    }
+    
+}
+
+extension UInt: ConstraintPriorityTarget {
+    
+    public var constraintPriorityTargetValue: Float {
+        return Float(self)
+    }
+    
+}
+
+extension Float: ConstraintPriorityTarget {
+    
+    public var constraintPriorityTargetValue: Float {
+        return self
+    }
+    
+}
+
+extension Double: ConstraintPriorityTarget {
+    
+    public var constraintPriorityTargetValue: Float {
+        return Float(self)
+    }
+    
+}
+
+extension CGFloat: ConstraintPriorityTarget {
+    
+    public var constraintPriorityTargetValue: Float {
+        return Float(self)
+    }
+    
+}
+
+#if canImport(UIKit)
+extension UILayoutPriority: ConstraintPriorityTarget {
+
+    public var constraintPriorityTargetValue: Float {
+        return self.rawValue
+    }
+
+}
+#endif
diff --git a/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintRelatableTarget.swift b/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintRelatableTarget.swift
new file mode 100644 (file)
index 0000000..df04464
--- /dev/null
@@ -0,0 +1,72 @@
+//
+//  SnapKit
+//
+//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
+//
+//  Permission is hereby granted, free of charge, to any person obtaining a copy
+//  of this software and associated documentation files (the "Software"), to deal
+//  in the Software without restriction, including without limitation the rights
+//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+//  copies of the Software, and to permit persons to whom the Software is
+//  furnished to do so, subject to the following conditions:
+//
+//  The above copyright notice and this permission notice shall be included in
+//  all copies or substantial portions of the Software.
+//
+//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+//  THE SOFTWARE.
+
+#if canImport(UIKit)
+    import UIKit
+#else
+    import AppKit
+#endif
+
+
+public protocol ConstraintRelatableTarget {
+}
+
+extension Int: ConstraintRelatableTarget {
+}
+
+extension UInt: ConstraintRelatableTarget {
+}
+
+extension Float: ConstraintRelatableTarget {
+}
+
+extension Double: ConstraintRelatableTarget {
+}
+
+extension CGFloat: ConstraintRelatableTarget {
+}
+
+extension CGSize: ConstraintRelatableTarget {
+}
+
+extension CGPoint: ConstraintRelatableTarget {
+}
+
+extension ConstraintInsets: ConstraintRelatableTarget {
+}
+
+#if canImport(UIKit)
+@available(iOS 11.0, tvOS 11.0, *)
+extension ConstraintDirectionalInsets: ConstraintRelatableTarget {
+}
+#endif
+
+extension ConstraintItem: ConstraintRelatableTarget {
+}
+
+extension ConstraintView: ConstraintRelatableTarget {
+}
+
+@available(iOS 9.0, OSX 10.11, *)
+extension ConstraintLayoutGuide: ConstraintRelatableTarget {
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintRelation.swift b/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintRelation.swift
new file mode 100644 (file)
index 0000000..643d499
--- /dev/null
@@ -0,0 +1,48 @@
+//
+//  SnapKit
+//
+//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
+//
+//  Permission is hereby granted, free of charge, to any person obtaining a copy
+//  of this software and associated documentation files (the "Software"), to deal
+//  in the Software without restriction, including without limitation the rights
+//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+//  copies of the Software, and to permit persons to whom the Software is
+//  furnished to do so, subject to the following conditions:
+//
+//  The above copyright notice and this permission notice shall be included in
+//  all copies or substantial portions of the Software.
+//
+//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+//  THE SOFTWARE.
+
+#if canImport(UIKit)
+    import UIKit
+#else
+    import AppKit
+#endif
+
+
+internal enum ConstraintRelation : Int {
+    case equal = 1
+    case lessThanOrEqual
+    case greaterThanOrEqual
+    
+    internal var layoutRelation: LayoutRelation {
+        get {
+            switch(self) {
+            case .equal:
+                return .equal
+            case .lessThanOrEqual:
+                return .lessThanOrEqual
+            case .greaterThanOrEqual:
+                return .greaterThanOrEqual
+            }
+        }
+    }
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintView+Extensions.swift b/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintView+Extensions.swift
new file mode 100644 (file)
index 0000000..1225c04
--- /dev/null
@@ -0,0 +1,152 @@
+//
+//  SnapKit
+//
+//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
+//
+//  Permission is hereby granted, free of charge, to any person obtaining a copy
+//  of this software and associated documentation files (the "Software"), to deal
+//  in the Software without restriction, including without limitation the rights
+//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+//  copies of the Software, and to permit persons to whom the Software is
+//  furnished to do so, subject to the following conditions:
+//
+//  The above copyright notice and this permission notice shall be included in
+//  all copies or substantial portions of the Software.
+//
+//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+//  THE SOFTWARE.
+
+#if canImport(UIKit)
+    import UIKit
+#else
+    import AppKit
+#endif
+
+
+public extension ConstraintView {
+    
+    @available(*, deprecated, renamed:"snp.left")
+    var snp_left: ConstraintItem { return self.snp.left }
+    
+    @available(*, deprecated, renamed:"snp.top")
+    var snp_top: ConstraintItem { return self.snp.top }
+    
+    @available(*, deprecated, renamed:"snp.right")
+    var snp_right: ConstraintItem { return self.snp.right }
+    
+    @available(*, deprecated, renamed:"snp.bottom")
+    var snp_bottom: ConstraintItem { return self.snp.bottom }
+    
+    @available(*, deprecated, renamed:"snp.leading")
+    var snp_leading: ConstraintItem { return self.snp.leading }
+    
+    @available(*, deprecated, renamed:"snp.trailing")
+    var snp_trailing: ConstraintItem { return self.snp.trailing }
+    
+    @available(*, deprecated, renamed:"snp.width")
+    var snp_width: ConstraintItem { return self.snp.width }
+    
+    @available(*, deprecated, renamed:"snp.height")
+    var snp_height: ConstraintItem { return self.snp.height }
+    
+    @available(*, deprecated, renamed:"snp.centerX")
+    var snp_centerX: ConstraintItem { return self.snp.centerX }
+    
+    @available(*, deprecated, renamed:"snp.centerY")
+    var snp_centerY: ConstraintItem { return self.snp.centerY }
+    
+    @available(*, deprecated, renamed:"snp.baseline")
+    var snp_baseline: ConstraintItem { return self.snp.baseline }
+    
+    @available(*, deprecated, renamed:"snp.lastBaseline")
+    @available(iOS 8.0, OSX 10.11, *)
+    var snp_lastBaseline: ConstraintItem { return self.snp.lastBaseline }
+    
+    @available(iOS, deprecated, renamed:"snp.firstBaseline")
+    @available(iOS 8.0, OSX 10.11, *)
+    var snp_firstBaseline: ConstraintItem { return self.snp.firstBaseline }
+    
+    @available(iOS, deprecated, renamed:"snp.leftMargin")
+    @available(iOS 8.0, *)
+    var snp_leftMargin: ConstraintItem { return self.snp.leftMargin }
+    
+    @available(iOS, deprecated, renamed:"snp.topMargin")
+    @available(iOS 8.0, *)
+    var snp_topMargin: ConstraintItem { return self.snp.topMargin }
+    
+    @available(iOS, deprecated, renamed:"snp.rightMargin")
+    @available(iOS 8.0, *)
+    var snp_rightMargin: ConstraintItem { return self.snp.rightMargin }
+    
+    @available(iOS, deprecated, renamed:"snp.bottomMargin")
+    @available(iOS 8.0, *)
+    var snp_bottomMargin: ConstraintItem { return self.snp.bottomMargin }
+    
+    @available(iOS, deprecated, renamed:"snp.leadingMargin")
+    @available(iOS 8.0, *)
+    var snp_leadingMargin: ConstraintItem { return self.snp.leadingMargin }
+    
+    @available(iOS, deprecated, renamed:"snp.trailingMargin")
+    @available(iOS 8.0, *)
+    var snp_trailingMargin: ConstraintItem { return self.snp.trailingMargin }
+    
+    @available(iOS, deprecated, renamed:"snp.centerXWithinMargins")
+    @available(iOS 8.0, *)
+    var snp_centerXWithinMargins: ConstraintItem { return self.snp.centerXWithinMargins }
+    
+    @available(iOS, deprecated, renamed:"snp.centerYWithinMargins")
+    @available(iOS 8.0, *)
+    var snp_centerYWithinMargins: ConstraintItem { return self.snp.centerYWithinMargins }
+    
+    @available(*, deprecated, renamed:"snp.edges")
+    var snp_edges: ConstraintItem { return self.snp.edges }
+    
+    @available(*, deprecated, renamed:"snp.size")
+    var snp_size: ConstraintItem { return self.snp.size }
+    
+    @available(*, deprecated, renamed:"snp.center")
+    var snp_center: ConstraintItem { return self.snp.center }
+    
+    @available(iOS, deprecated, renamed:"snp.margins")
+    @available(iOS 8.0, *)
+    var snp_margins: ConstraintItem { return self.snp.margins }
+    
+    @available(iOS, deprecated, renamed:"snp.centerWithinMargins")
+    @available(iOS 8.0, *)
+    var snp_centerWithinMargins: ConstraintItem { return self.snp.centerWithinMargins }
+    
+    @available(*, deprecated, renamed:"snp.prepareConstraints(_:)")
+    func snp_prepareConstraints(_ closure: (_ make: ConstraintMaker) -> Void) -> [Constraint] {
+        return self.snp.prepareConstraints(closure)
+    }
+    
+    @available(*, deprecated, renamed:"snp.makeConstraints(_:)")
+    func snp_makeConstraints(_ closure: (_ make: ConstraintMaker) -> Void) {
+        self.snp.makeConstraints(closure)
+    }
+    
+    @available(*, deprecated, renamed:"snp.remakeConstraints(_:)")
+    func snp_remakeConstraints(_ closure: (_ make: ConstraintMaker) -> Void) {
+        self.snp.remakeConstraints(closure)
+    }
+    
+    @available(*, deprecated, renamed:"snp.updateConstraints(_:)")
+    func snp_updateConstraints(_ closure: (_ make: ConstraintMaker) -> Void) {
+        self.snp.updateConstraints(closure)
+    }
+    
+    @available(*, deprecated, renamed:"snp.removeConstraints()")
+    func snp_removeConstraints() {
+        self.snp.removeConstraints()
+    }
+    
+    var snp: ConstraintViewDSL {
+        return ConstraintViewDSL(view: self)
+    }
+    
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintView.swift b/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintView.swift
new file mode 100644 (file)
index 0000000..1203300
--- /dev/null
@@ -0,0 +1,35 @@
+//
+//  SnapKit
+//
+//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
+//
+//  Permission is hereby granted, free of charge, to any person obtaining a copy
+//  of this software and associated documentation files (the "Software"), to deal
+//  in the Software without restriction, including without limitation the rights
+//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+//  copies of the Software, and to permit persons to whom the Software is
+//  furnished to do so, subject to the following conditions:
+//
+//  The above copyright notice and this permission notice shall be included in
+//  all copies or substantial portions of the Software.
+//
+//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+//  THE SOFTWARE.
+
+#if canImport(UIKit)
+    import UIKit
+#else
+    import AppKit
+#endif
+
+
+#if canImport(UIKit)
+    public typealias ConstraintView = UIView
+#else
+    public typealias ConstraintView = NSView
+#endif
diff --git a/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintViewDSL.swift b/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/ConstraintViewDSL.swift
new file mode 100644 (file)
index 0000000..8567e54
--- /dev/null
@@ -0,0 +1,101 @@
+//
+//  SnapKit
+//
+//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
+//
+//  Permission is hereby granted, free of charge, to any person obtaining a copy
+//  of this software and associated documentation files (the "Software"), to deal
+//  in the Software without restriction, including without limitation the rights
+//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+//  copies of the Software, and to permit persons to whom the Software is
+//  furnished to do so, subject to the following conditions:
+//
+//  The above copyright notice and this permission notice shall be included in
+//  all copies or substantial portions of the Software.
+//
+//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+//  THE SOFTWARE.
+
+#if canImport(UIKit)
+    import UIKit
+#else
+    import AppKit
+#endif
+
+
+public struct ConstraintViewDSL: ConstraintAttributesDSL {
+    
+    @discardableResult
+    public func prepareConstraints(_ closure: (_ make: ConstraintMaker) -> Void) -> [Constraint] {
+        return ConstraintMaker.prepareConstraints(item: self.view, closure: closure)
+    }
+    
+    public func makeConstraints(_ closure: (_ make: ConstraintMaker) -> Void) {
+        ConstraintMaker.makeConstraints(item: self.view, closure: closure)
+    }
+    
+    public func remakeConstraints(_ closure: (_ make: ConstraintMaker) -> Void) {
+        ConstraintMaker.remakeConstraints(item: self.view, closure: closure)
+    }
+    
+    public func updateConstraints(_ closure: (_ make: ConstraintMaker) -> Void) {
+        ConstraintMaker.updateConstraints(item: self.view, closure: closure)
+    }
+    
+    public func removeConstraints() {
+        ConstraintMaker.removeConstraints(item: self.view)
+    }
+    
+    public var contentHuggingHorizontalPriority: Float {
+        get {
+            return self.view.contentHuggingPriority(for: .horizontal).rawValue
+        }
+        nonmutating set {
+            self.view.setContentHuggingPriority(LayoutPriority(rawValue: newValue), for: .horizontal)
+        }
+    }
+    
+    public var contentHuggingVerticalPriority: Float {
+        get {
+            return self.view.contentHuggingPriority(for: .vertical).rawValue
+        }
+        nonmutating set {
+            self.view.setContentHuggingPriority(LayoutPriority(rawValue: newValue), for: .vertical)
+        }
+    }
+    
+    public var contentCompressionResistanceHorizontalPriority: Float {
+        get {
+            return self.view.contentCompressionResistancePriority(for: .horizontal).rawValue
+        }
+        nonmutating set {
+            self.view.setContentCompressionResistancePriority(LayoutPriority(rawValue: newValue), for: .horizontal)
+        }
+    }
+    
+    public var contentCompressionResistanceVerticalPriority: Float {
+        get {
+            return self.view.contentCompressionResistancePriority(for: .vertical).rawValue
+        }
+        nonmutating set {
+            self.view.setContentCompressionResistancePriority(LayoutPriority(rawValue: newValue), for: .vertical)
+        }
+    }
+    
+    public var target: AnyObject? {
+        return self.view
+    }
+    
+    internal let view: ConstraintView
+    
+    internal init(view: ConstraintView) {
+        self.view = view
+        
+    }
+    
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/Debugging.swift b/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/Debugging.swift
new file mode 100644 (file)
index 0000000..f4120b2
--- /dev/null
@@ -0,0 +1,169 @@
+//
+//  SnapKit
+//
+//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
+//
+//  Permission is hereby granted, free of charge, to any person obtaining a copy
+//  of this software and associated documentation files (the "Software"), to deal
+//  in the Software without restriction, including without limitation the rights
+//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+//  copies of the Software, and to permit persons to whom the Software is
+//  furnished to do so, subject to the following conditions:
+//
+//  The above copyright notice and this permission notice shall be included in
+//  all copies or substantial portions of the Software.
+//
+//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+//  THE SOFTWARE.
+
+#if canImport(UIKit)
+    import UIKit
+#else
+    import AppKit
+#endif
+
+public extension LayoutConstraint {
+    
+    override var description: String {
+        var description = "<"
+        
+        description += descriptionForObject(self)
+        
+        if let firstItem = conditionalOptional(from: self.firstItem) {
+            description += " \(descriptionForObject(firstItem))"
+        }
+        
+        if self.firstAttribute != .notAnAttribute {
+            description += ".\(descriptionForAttribute(self.firstAttribute))"
+        }
+        
+        description += " \(descriptionForRelation(self.relation))"
+        
+        if let secondItem = self.secondItem {
+            description += " \(descriptionForObject(secondItem))"
+        }
+        
+        if self.secondAttribute != .notAnAttribute {
+            description += ".\(descriptionForAttribute(self.secondAttribute))"
+        }
+        
+        if self.multiplier != 1.0 {
+            description += " * \(self.multiplier)"
+        }
+        
+        if self.secondAttribute == .notAnAttribute {
+            description += " \(self.constant)"
+        } else {
+            if self.constant > 0.0 {
+                description += " + \(self.constant)"
+            } else if self.constant < 0.0 {
+                description += " - \(abs(self.constant))"
+            }
+        }
+        
+        if self.priority.rawValue != 1000.0 {
+            description += " ^\(self.priority)"
+        }
+        
+        description += ">"
+        
+        return description
+    }
+    
+}
+
+private func descriptionForRelation(_ relation: LayoutRelation) -> String {
+    switch relation {
+    case .equal:                return "=="
+    case .greaterThanOrEqual:   return ">="
+    case .lessThanOrEqual:      return "<="
+    #if swift(>=5.0)
+    @unknown default:           return "unknown"
+    #endif
+    }
+}
+
+private func descriptionForAttribute(_ attribute: LayoutAttribute) -> String {
+    #if canImport(UIKit)
+        switch attribute {
+        case .notAnAttribute:       return "notAnAttribute"
+        case .top:                  return "top"
+        case .left:                 return "left"
+        case .bottom:               return "bottom"
+        case .right:                return "right"
+        case .leading:              return "leading"
+        case .trailing:             return "trailing"
+        case .width:                return "width"
+        case .height:               return "height"
+        case .centerX:              return "centerX"
+        case .centerY:              return "centerY"
+        case .lastBaseline:         return "lastBaseline"
+        case .firstBaseline:        return "firstBaseline"
+        case .topMargin:            return "topMargin"
+        case .leftMargin:           return "leftMargin"
+        case .bottomMargin:         return "bottomMargin"
+        case .rightMargin:          return "rightMargin"
+        case .leadingMargin:        return "leadingMargin"
+        case .trailingMargin:       return "trailingMargin"
+        case .centerXWithinMargins: return "centerXWithinMargins"
+        case .centerYWithinMargins: return "centerYWithinMargins"
+        #if swift(>=5.0)
+        @unknown default:           return "unknown"
+        #endif
+    }
+    #else
+        switch attribute {
+        case .notAnAttribute:       return "notAnAttribute"
+        case .top:                  return "top"
+        case .left:                 return "left"
+        case .bottom:               return "bottom"
+        case .right:                return "right"
+        case .leading:              return "leading"
+        case .trailing:             return "trailing"
+        case .width:                return "width"
+        case .height:               return "height"
+        case .centerX:              return "centerX"
+        case .centerY:              return "centerY"
+        case .lastBaseline:         return "lastBaseline"
+        case .firstBaseline:        return "firstBaseline"
+        #if swift(>=5.0)
+        @unknown default:           return "unknown"
+        #endif
+    }
+    #endif
+}
+
+private func conditionalOptional<T>(from object: Optional<T>) -> Optional<T> {
+    return object
+}
+
+private func conditionalOptional<T>(from object: T) -> Optional<T> {
+    return Optional.some(object)
+}
+
+private func descriptionForObject(_ object: AnyObject) -> String {
+    let pointerDescription = String(format: "%p", UInt(bitPattern: ObjectIdentifier(object)))
+    var desc = ""
+    
+    desc += type(of: object).description()
+    
+    if let object = object as? ConstraintView {
+        desc += ":\(object.snp.label() ?? pointerDescription)"
+    } else if let object = object as? LayoutConstraint {
+        desc += ":\(object.label ?? pointerDescription)"
+    } else {
+        desc += ":\(pointerDescription)"
+    }
+    
+    if let object = object as? LayoutConstraint, let file = object.constraint?.sourceLocation.0, let line = object.constraint?.sourceLocation.1 {
+        desc += "@\((file as NSString).lastPathComponent)#\(line)"
+    }
+    
+    desc += ""
+    return desc
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/LayoutConstraint.swift b/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/LayoutConstraint.swift
new file mode 100644 (file)
index 0000000..607616d
--- /dev/null
@@ -0,0 +1,61 @@
+//
+//  SnapKit
+//
+//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
+//
+//  Permission is hereby granted, free of charge, to any person obtaining a copy
+//  of this software and associated documentation files (the "Software"), to deal
+//  in the Software without restriction, including without limitation the rights
+//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+//  copies of the Software, and to permit persons to whom the Software is
+//  furnished to do so, subject to the following conditions:
+//
+//  The above copyright notice and this permission notice shall be included in
+//  all copies or substantial portions of the Software.
+//
+//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+//  THE SOFTWARE.
+
+#if canImport(UIKit)
+    import UIKit
+#else
+    import AppKit
+#endif
+
+
+public class LayoutConstraint : NSLayoutConstraint {
+    
+    public var label: String? {
+        get {
+            return self.identifier
+        }
+        set {
+            self.identifier = newValue
+        }
+    }
+    
+    internal weak var constraint: Constraint? = nil
+    
+}
+
+internal func ==(lhs: LayoutConstraint, rhs: LayoutConstraint) -> Bool {
+    // If firstItem or secondItem on either constraint has a dangling pointer
+    // this comparison can cause a crash. The solution for this is to ensure
+    // your layout code hold strong references to things like Views, LayoutGuides
+    // and LayoutAnchors as SnapKit will not keep strong references to any of these.
+    guard lhs.firstAttribute == rhs.firstAttribute &&
+          lhs.secondAttribute == rhs.secondAttribute &&
+          lhs.relation == rhs.relation &&
+          lhs.priority == rhs.priority &&
+          lhs.multiplier == rhs.multiplier &&
+          lhs.secondItem === rhs.secondItem &&
+          lhs.firstItem === rhs.firstItem else {
+        return false
+    }
+    return true
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/LayoutConstraintItem.swift b/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/LayoutConstraintItem.swift
new file mode 100644 (file)
index 0000000..4f41b5d
--- /dev/null
@@ -0,0 +1,93 @@
+//
+//  SnapKit
+//
+//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
+//
+//  Permission is hereby granted, free of charge, to any person obtaining a copy
+//  of this software and associated documentation files (the "Software"), to deal
+//  in the Software without restriction, including without limitation the rights
+//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+//  copies of the Software, and to permit persons to whom the Software is
+//  furnished to do so, subject to the following conditions:
+//
+//  The above copyright notice and this permission notice shall be included in
+//  all copies or substantial portions of the Software.
+//
+//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+//  THE SOFTWARE.
+
+#if canImport(UIKit)
+    import UIKit
+#else
+    import AppKit
+#endif
+
+
+public protocol LayoutConstraintItem: AnyObject {
+}
+
+@available(iOS 9.0, OSX 10.11, *)
+extension ConstraintLayoutGuide : LayoutConstraintItem {
+}
+
+extension ConstraintView : LayoutConstraintItem {
+}
+
+
+extension LayoutConstraintItem {
+    
+    internal func prepare() {
+        if let view = self as? ConstraintView {
+            view.translatesAutoresizingMaskIntoConstraints = false
+        }
+    }
+    
+    internal var superview: ConstraintView? {
+        if let view = self as? ConstraintView {
+            return view.superview
+        }
+        
+        if #available(iOS 9.0, OSX 10.11, *), let guide = self as? ConstraintLayoutGuide {
+            return guide.owningView
+        }
+        
+        return nil
+    }
+    internal var constraints: [Constraint] {
+        return self.constraintsSet.allObjects as! [Constraint]
+    }
+    
+    internal func add(constraints: [Constraint]) {
+        let constraintsSet = self.constraintsSet
+        for constraint in constraints {
+            constraintsSet.add(constraint)
+        }
+    }
+    
+    internal func remove(constraints: [Constraint]) {
+        let constraintsSet = self.constraintsSet
+        for constraint in constraints {
+            constraintsSet.remove(constraint)
+        }
+    }
+    
+    private var constraintsSet: NSMutableSet {
+        let constraintsSet: NSMutableSet
+        
+        if let existing = objc_getAssociatedObject(self, &constraintsKey) as? NSMutableSet {
+            constraintsSet = existing
+        } else {
+            constraintsSet = NSMutableSet()
+            objc_setAssociatedObject(self, &constraintsKey, constraintsSet, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
+        }
+        return constraintsSet
+        
+    }
+    
+}
+private var constraintsKey: UInt8 = 0
diff --git a/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/PrivacyInfo.xcprivacy b/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/PrivacyInfo.xcprivacy
new file mode 100644 (file)
index 0000000..e540750
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+       <key>NSPrivacyTracking</key>
+       <false/>
+       <key>NSPrivacyAccessedAPITypes</key>
+       <array/>
+       <key>NSPrivacyCollectedDataTypes</key>
+       <array/>
+       <key>NSPrivacyTrackingDomains</key>
+       <array/>
+</dict>
+</plist>
diff --git a/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/Typealiases.swift b/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/Typealiases.swift
new file mode 100644 (file)
index 0000000..c0e6982
--- /dev/null
@@ -0,0 +1,42 @@
+//
+//  SnapKit
+//
+//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
+//
+//  Permission is hereby granted, free of charge, to any person obtaining a copy
+//  of this software and associated documentation files (the "Software"), to deal
+//  in the Software without restriction, including without limitation the rights
+//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+//  copies of the Software, and to permit persons to whom the Software is
+//  furnished to do so, subject to the following conditions:
+//
+//  The above copyright notice and this permission notice shall be included in
+//  all copies or substantial portions of the Software.
+//
+//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+//  THE SOFTWARE.
+
+import Foundation
+
+#if canImport(UIKit)
+    import UIKit
+#if swift(>=4.2)
+    typealias LayoutRelation = NSLayoutConstraint.Relation
+    typealias LayoutAttribute = NSLayoutConstraint.Attribute
+#else
+    typealias LayoutRelation = NSLayoutRelation
+    typealias LayoutAttribute = NSLayoutAttribute
+#endif
+    typealias LayoutPriority = UILayoutPriority
+#else
+    import AppKit
+    typealias LayoutRelation = NSLayoutConstraint.Relation
+    typealias LayoutAttribute = NSLayoutConstraint.Attribute
+    typealias LayoutPriority = NSLayoutConstraint.Priority
+#endif
+
diff --git a/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/UILayoutSupport+Extensions.swift b/IOTBluetooth/IOTBluetooth/Pods/SnapKit/Sources/UILayoutSupport+Extensions.swift
new file mode 100644 (file)
index 0000000..801cc3c
--- /dev/null
@@ -0,0 +1,36 @@
+//
+//  SnapKit
+//
+//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
+//
+//  Permission is hereby granted, free of charge, to any person obtaining a copy
+//  of this software and associated documentation files (the "Software"), to deal
+//  in the Software without restriction, including without limitation the rights
+//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+//  copies of the Software, and to permit persons to whom the Software is
+//  furnished to do so, subject to the following conditions:
+//
+//  The above copyright notice and this permission notice shall be included in
+//  all copies or substantial portions of the Software.
+//
+//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+//  THE SOFTWARE.
+
+#if canImport(UIKit)
+    import UIKit
+#endif
+
+    
+@available(iOS 8.0, *)
+public extension ConstraintLayoutSupport {
+    
+    var snp: ConstraintLayoutSupportDSL {
+        return ConstraintLayoutSupportDSL(support: self)
+    }
+    
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-Info.plist b/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-Info.plist
new file mode 100644 (file)
index 0000000..cc2a2fa
--- /dev/null
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+  <key>CFBundleDevelopmentRegion</key>
+  <string>${PODS_DEVELOPMENT_LANGUAGE}</string>
+  <key>CFBundleExecutable</key>
+  <string>${EXECUTABLE_NAME}</string>
+  <key>CFBundleIdentifier</key>
+  <string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
+  <key>CFBundleInfoDictionaryVersion</key>
+  <string>6.0</string>
+  <key>CFBundleName</key>
+  <string>${PRODUCT_NAME}</string>
+  <key>CFBundlePackageType</key>
+  <string>FMWK</string>
+  <key>CFBundleShortVersionString</key>
+  <string>7.1.1</string>
+  <key>CFBundleSignature</key>
+  <string>????</string>
+  <key>CFBundleVersion</key>
+  <string>${CURRENT_PROJECT_VERSION}</string>
+  <key>NSPrincipalClass</key>
+  <string></string>
+</dict>
+</plist>
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-dummy.m b/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-dummy.m
new file mode 100644 (file)
index 0000000..7937f27
--- /dev/null
@@ -0,0 +1,5 @@
+#import <Foundation/Foundation.h>
+@interface PodsDummy_IQKeyboardManagerSwift : NSObject
+@end
+@implementation PodsDummy_IQKeyboardManagerSwift
+@end
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-prefix.pch b/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-prefix.pch
new file mode 100644 (file)
index 0000000..beb2a24
--- /dev/null
@@ -0,0 +1,12 @@
+#ifdef __OBJC__
+#import <UIKit/UIKit.h>
+#else
+#ifndef FOUNDATION_EXPORT
+#if defined(__cplusplus)
+#define FOUNDATION_EXPORT extern "C"
+#else
+#define FOUNDATION_EXPORT extern
+#endif
+#endif
+#endif
+
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-umbrella.h b/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-umbrella.h
new file mode 100644 (file)
index 0000000..e95b398
--- /dev/null
@@ -0,0 +1,16 @@
+#ifdef __OBJC__
+#import <UIKit/UIKit.h>
+#else
+#ifndef FOUNDATION_EXPORT
+#if defined(__cplusplus)
+#define FOUNDATION_EXPORT extern "C"
+#else
+#define FOUNDATION_EXPORT extern
+#endif
+#endif
+#endif
+
+
+FOUNDATION_EXPORT double IQKeyboardManagerSwiftVersionNumber;
+FOUNDATION_EXPORT const unsigned char IQKeyboardManagerSwiftVersionString[];
+
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift.debug.xcconfig b/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift.debug.xcconfig
new file mode 100644 (file)
index 0000000..1472651
--- /dev/null
@@ -0,0 +1,15 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
+CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift $(SDKROOT)/usr/lib/swift
+OTHER_LDFLAGS = $(inherited) -l"swiftCoreGraphics" -framework "CoreGraphics" -framework "Foundation" -framework "QuartzCore" -framework "UIKit"
+OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE}
+PODS_ROOT = ${SRCROOT}
+PODS_TARGET_SRCROOT = ${PODS_ROOT}/IQKeyboardManagerSwift
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
+PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
+SKIP_INSTALL = YES
+USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift.modulemap b/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift.modulemap
new file mode 100644 (file)
index 0000000..6d9b343
--- /dev/null
@@ -0,0 +1,6 @@
+framework module IQKeyboardManagerSwift {
+  umbrella header "IQKeyboardManagerSwift-umbrella.h"
+
+  export *
+  module * { export * }
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift.release.xcconfig b/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift.release.xcconfig
new file mode 100644 (file)
index 0000000..1472651
--- /dev/null
@@ -0,0 +1,15 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
+CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift $(SDKROOT)/usr/lib/swift
+OTHER_LDFLAGS = $(inherited) -l"swiftCoreGraphics" -framework "CoreGraphics" -framework "Foundation" -framework "QuartzCore" -framework "UIKit"
+OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE}
+PODS_ROOT = ${SRCROOT}
+PODS_TARGET_SRCROOT = ${PODS_ROOT}/IQKeyboardManagerSwift
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
+PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
+SKIP_INSTALL = YES
+USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/IQKeyboardManagerSwift/ResourceBundle-IQKeyboardManagerSwift-IQKeyboardManagerSwift-Info.plist b/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/IQKeyboardManagerSwift/ResourceBundle-IQKeyboardManagerSwift-IQKeyboardManagerSwift-Info.plist
new file mode 100644 (file)
index 0000000..37405ab
--- /dev/null
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+  <key>CFBundleDevelopmentRegion</key>
+  <string>${PODS_DEVELOPMENT_LANGUAGE}</string>
+  <key>CFBundleIdentifier</key>
+  <string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
+  <key>CFBundleInfoDictionaryVersion</key>
+  <string>6.0</string>
+  <key>CFBundleName</key>
+  <string>${PRODUCT_NAME}</string>
+  <key>CFBundlePackageType</key>
+  <string>BNDL</string>
+  <key>CFBundleShortVersionString</key>
+  <string>7.1.1</string>
+  <key>CFBundleSignature</key>
+  <string>????</string>
+  <key>CFBundleVersion</key>
+  <string>1</string>
+  <key>NSPrincipalClass</key>
+  <string></string>
+</dict>
+</plist>
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Pods-Example/Pods-Example-Info.plist b/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Pods-Example/Pods-Example-Info.plist
new file mode 100644 (file)
index 0000000..19cf209
--- /dev/null
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+  <key>CFBundleDevelopmentRegion</key>
+  <string>${PODS_DEVELOPMENT_LANGUAGE}</string>
+  <key>CFBundleExecutable</key>
+  <string>${EXECUTABLE_NAME}</string>
+  <key>CFBundleIdentifier</key>
+  <string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
+  <key>CFBundleInfoDictionaryVersion</key>
+  <string>6.0</string>
+  <key>CFBundleName</key>
+  <string>${PRODUCT_NAME}</string>
+  <key>CFBundlePackageType</key>
+  <string>FMWK</string>
+  <key>CFBundleShortVersionString</key>
+  <string>1.0.0</string>
+  <key>CFBundleSignature</key>
+  <string>????</string>
+  <key>CFBundleVersion</key>
+  <string>${CURRENT_PROJECT_VERSION}</string>
+  <key>NSPrincipalClass</key>
+  <string></string>
+</dict>
+</plist>
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Pods-Example/Pods-Example-acknowledgements.markdown b/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Pods-Example/Pods-Example-acknowledgements.markdown
new file mode 100644 (file)
index 0000000..8efceba
--- /dev/null
@@ -0,0 +1,75 @@
+# Acknowledgements
+This application makes use of the following third party libraries:
+
+## IQKeyboardManagerSwift
+
+MIT License
+
+Copyright (c) 2013-2023 Iftekhar Qurashi
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+
+## SnapKit
+
+Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+
+## Toast-Swift
+
+Copyright (c) 2015-2024 Charles Scalesse.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Generated by CocoaPods - https://cocoapods.org
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Pods-Example/Pods-Example-acknowledgements.plist b/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Pods-Example/Pods-Example-acknowledgements.plist
new file mode 100644 (file)
index 0000000..0aeb8a1
--- /dev/null
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+       <key>PreferenceSpecifiers</key>
+       <array>
+               <dict>
+                       <key>FooterText</key>
+                       <string>This application makes use of the following third party libraries:</string>
+                       <key>Title</key>
+                       <string>Acknowledgements</string>
+                       <key>Type</key>
+                       <string>PSGroupSpecifier</string>
+               </dict>
+               <dict>
+                       <key>FooterText</key>
+                       <string>MIT License
+
+Copyright (c) 2013-2023 Iftekhar Qurashi
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+</string>
+                       <key>License</key>
+                       <string>MIT</string>
+                       <key>Title</key>
+                       <string>IQKeyboardManagerSwift</string>
+                       <key>Type</key>
+                       <string>PSGroupSpecifier</string>
+               </dict>
+               <dict>
+                       <key>FooterText</key>
+                       <string>Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+</string>
+                       <key>License</key>
+                       <string>MIT</string>
+                       <key>Title</key>
+                       <string>SnapKit</string>
+                       <key>Type</key>
+                       <string>PSGroupSpecifier</string>
+               </dict>
+               <dict>
+                       <key>FooterText</key>
+                       <string>Copyright (c) 2015-2024 Charles Scalesse.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+</string>
+                       <key>License</key>
+                       <string>MIT</string>
+                       <key>Title</key>
+                       <string>Toast-Swift</string>
+                       <key>Type</key>
+                       <string>PSGroupSpecifier</string>
+               </dict>
+               <dict>
+                       <key>FooterText</key>
+                       <string>Generated by CocoaPods - https://cocoapods.org</string>
+                       <key>Title</key>
+                       <string></string>
+                       <key>Type</key>
+                       <string>PSGroupSpecifier</string>
+               </dict>
+       </array>
+       <key>StringsTable</key>
+       <string>Acknowledgements</string>
+       <key>Title</key>
+       <string>Acknowledgements</string>
+</dict>
+</plist>
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Pods-Example/Pods-Example-dummy.m b/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Pods-Example/Pods-Example-dummy.m
new file mode 100644 (file)
index 0000000..6ee3f90
--- /dev/null
@@ -0,0 +1,5 @@
+#import <Foundation/Foundation.h>
+@interface PodsDummy_Pods_Example : NSObject
+@end
+@implementation PodsDummy_Pods_Example
+@end
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Pods-Example/Pods-Example-frameworks-Debug-input-files.xcfilelist b/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Pods-Example/Pods-Example-frameworks-Debug-input-files.xcfilelist
new file mode 100644 (file)
index 0000000..b6eb86e
--- /dev/null
@@ -0,0 +1,4 @@
+${PODS_ROOT}/Target Support Files/Pods-Example/Pods-Example-frameworks.sh
+${BUILT_PRODUCTS_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.framework
+${BUILT_PRODUCTS_DIR}/SnapKit/SnapKit.framework
+${BUILT_PRODUCTS_DIR}/Toast-Swift/Toast_Swift.framework
\ No newline at end of file
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Pods-Example/Pods-Example-frameworks-Debug-output-files.xcfilelist b/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Pods-Example/Pods-Example-frameworks-Debug-output-files.xcfilelist
new file mode 100644 (file)
index 0000000..806d76f
--- /dev/null
@@ -0,0 +1,3 @@
+${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/IQKeyboardManagerSwift.framework
+${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SnapKit.framework
+${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Toast_Swift.framework
\ No newline at end of file
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Pods-Example/Pods-Example-frameworks-Release-input-files.xcfilelist b/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Pods-Example/Pods-Example-frameworks-Release-input-files.xcfilelist
new file mode 100644 (file)
index 0000000..b6eb86e
--- /dev/null
@@ -0,0 +1,4 @@
+${PODS_ROOT}/Target Support Files/Pods-Example/Pods-Example-frameworks.sh
+${BUILT_PRODUCTS_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.framework
+${BUILT_PRODUCTS_DIR}/SnapKit/SnapKit.framework
+${BUILT_PRODUCTS_DIR}/Toast-Swift/Toast_Swift.framework
\ No newline at end of file
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Pods-Example/Pods-Example-frameworks-Release-output-files.xcfilelist b/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Pods-Example/Pods-Example-frameworks-Release-output-files.xcfilelist
new file mode 100644 (file)
index 0000000..806d76f
--- /dev/null
@@ -0,0 +1,3 @@
+${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/IQKeyboardManagerSwift.framework
+${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SnapKit.framework
+${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Toast_Swift.framework
\ No newline at end of file
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Pods-Example/Pods-Example-frameworks.sh b/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Pods-Example/Pods-Example-frameworks.sh
new file mode 100755 (executable)
index 0000000..792c8bf
--- /dev/null
@@ -0,0 +1,190 @@
+#!/bin/sh
+set -e
+set -u
+set -o pipefail
+
+function on_error {
+  echo "$(realpath -mq "${0}"):$1: error: Unexpected failure"
+}
+trap 'on_error $LINENO' ERR
+
+if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then
+  # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy
+  # frameworks to, so exit 0 (signalling the script phase was successful).
+  exit 0
+fi
+
+echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
+mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
+
+COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}"
+SWIFT_STDLIB_PATH="${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}"
+BCSYMBOLMAP_DIR="BCSymbolMaps"
+
+
+# This protects against multiple targets copying the same framework dependency at the same time. The solution
+# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html
+RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????")
+
+# Copies and strips a vendored framework
+install_framework()
+{
+  if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then
+    local source="${BUILT_PRODUCTS_DIR}/$1"
+  elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then
+    local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")"
+  elif [ -r "$1" ]; then
+    local source="$1"
+  fi
+
+  local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
+
+  if [ -L "${source}" ]; then
+    echo "Symlinked..."
+    source="$(readlink -f "${source}")"
+  fi
+
+  if [ -d "${source}/${BCSYMBOLMAP_DIR}" ]; then
+    # Locate and install any .bcsymbolmaps if present, and remove them from the .framework before the framework is copied
+    find "${source}/${BCSYMBOLMAP_DIR}" -name "*.bcsymbolmap"|while read f; do
+      echo "Installing $f"
+      install_bcsymbolmap "$f" "$destination"
+      rm "$f"
+    done
+    rmdir "${source}/${BCSYMBOLMAP_DIR}"
+  fi
+
+  # Use filter instead of exclude so missing patterns don't throw errors.
+  echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\""
+  rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}"
+
+  local basename
+  basename="$(basename -s .framework "$1")"
+  binary="${destination}/${basename}.framework/${basename}"
+
+  if ! [ -r "$binary" ]; then
+    binary="${destination}/${basename}"
+  elif [ -L "${binary}" ]; then
+    echo "Destination binary is symlinked..."
+    dirname="$(dirname "${binary}")"
+    binary="${dirname}/$(readlink "${binary}")"
+  fi
+
+  # Strip invalid architectures so "fat" simulator / device frameworks work on device
+  if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then
+    strip_invalid_archs "$binary"
+  fi
+
+  # Resign the code if required by the build settings to avoid unstable apps
+  code_sign_if_enabled "${destination}/$(basename "$1")"
+
+  # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7.
+  if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then
+    local swift_runtime_libs
+    swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u)
+    for lib in $swift_runtime_libs; do
+      echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\""
+      rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}"
+      code_sign_if_enabled "${destination}/${lib}"
+    done
+  fi
+}
+# Copies and strips a vendored dSYM
+install_dsym() {
+  local source="$1"
+  warn_missing_arch=${2:-true}
+  if [ -r "$source" ]; then
+    # Copy the dSYM into the targets temp dir.
+    echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\""
+    rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}"
+
+    local basename
+    basename="$(basename -s .dSYM "$source")"
+    binary_name="$(ls "$source/Contents/Resources/DWARF")"
+    binary="${DERIVED_FILES_DIR}/${basename}.dSYM/Contents/Resources/DWARF/${binary_name}"
+
+    # Strip invalid architectures from the dSYM.
+    if [[ "$(file "$binary")" == *"Mach-O "*"dSYM companion"* ]]; then
+      strip_invalid_archs "$binary" "$warn_missing_arch"
+    fi
+    if [[ $STRIP_BINARY_RETVAL == 0 ]]; then
+      # Move the stripped file into its final destination.
+      echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\""
+      rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.dSYM" "${DWARF_DSYM_FOLDER_PATH}"
+    else
+      # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing.
+      mkdir -p "${DWARF_DSYM_FOLDER_PATH}"
+      touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.dSYM"
+    fi
+  fi
+}
+
+# Used as a return value for each invocation of `strip_invalid_archs` function.
+STRIP_BINARY_RETVAL=0
+
+# Strip invalid architectures
+strip_invalid_archs() {
+  binary="$1"
+  warn_missing_arch=${2:-true}
+  # Get architectures for current target binary
+  binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)"
+  # Intersect them with the architectures we are building for
+  intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)"
+  # If there are no archs supported by this binary then warn the user
+  if [[ -z "$intersected_archs" ]]; then
+    if [[ "$warn_missing_arch" == "true" ]]; then
+      echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)."
+    fi
+    STRIP_BINARY_RETVAL=1
+    return
+  fi
+  stripped=""
+  for arch in $binary_archs; do
+    if ! [[ "${ARCHS}" == *"$arch"* ]]; then
+      # Strip non-valid architectures in-place
+      lipo -remove "$arch" -output "$binary" "$binary"
+      stripped="$stripped $arch"
+    fi
+  done
+  if [[ "$stripped" ]]; then
+    echo "Stripped $binary of architectures:$stripped"
+  fi
+  STRIP_BINARY_RETVAL=0
+}
+
+# Copies the bcsymbolmap files of a vendored framework
+install_bcsymbolmap() {
+    local bcsymbolmap_path="$1"
+    local destination="${BUILT_PRODUCTS_DIR}"
+    echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}""
+    rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}"
+}
+
+# Signs a framework with the provided identity
+code_sign_if_enabled() {
+  if [ -n "${EXPANDED_CODE_SIGN_IDENTITY:-}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then
+    # Use the current code_sign_identity
+    echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}"
+    local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'"
+
+    if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
+      code_sign_cmd="$code_sign_cmd &"
+    fi
+    echo "$code_sign_cmd"
+    eval "$code_sign_cmd"
+  fi
+}
+
+if [[ "$CONFIGURATION" == "Debug" ]]; then
+  install_framework "${BUILT_PRODUCTS_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.framework"
+  install_framework "${BUILT_PRODUCTS_DIR}/SnapKit/SnapKit.framework"
+  install_framework "${BUILT_PRODUCTS_DIR}/Toast-Swift/Toast_Swift.framework"
+fi
+if [[ "$CONFIGURATION" == "Release" ]]; then
+  install_framework "${BUILT_PRODUCTS_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.framework"
+  install_framework "${BUILT_PRODUCTS_DIR}/SnapKit/SnapKit.framework"
+  install_framework "${BUILT_PRODUCTS_DIR}/Toast-Swift/Toast_Swift.framework"
+fi
+if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
+  wait
+fi
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Pods-Example/Pods-Example-umbrella.h b/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Pods-Example/Pods-Example-umbrella.h
new file mode 100644 (file)
index 0000000..ecf498e
--- /dev/null
@@ -0,0 +1,16 @@
+#ifdef __OBJC__
+#import <UIKit/UIKit.h>
+#else
+#ifndef FOUNDATION_EXPORT
+#if defined(__cplusplus)
+#define FOUNDATION_EXPORT extern "C"
+#else
+#define FOUNDATION_EXPORT extern
+#endif
+#endif
+#endif
+
+
+FOUNDATION_EXPORT double Pods_ExampleVersionNumber;
+FOUNDATION_EXPORT const unsigned char Pods_ExampleVersionString[];
+
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Pods-Example/Pods-Example.debug.xcconfig b/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Pods-Example/Pods-Example.debug.xcconfig
new file mode 100644 (file)
index 0000000..efadfc3
--- /dev/null
@@ -0,0 +1,16 @@
+ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
+FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" "${PODS_CONFIGURATION_BUILD_DIR}/Toast-Swift"
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Toast-Swift/Toast_Swift.framework/Headers"
+LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks'
+LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift $(SDKROOT)/usr/lib/swift
+OTHER_LDFLAGS = $(inherited) -l"swiftCoreGraphics" -framework "CoreGraphics" -framework "Foundation" -framework "IQKeyboardManagerSwift" -framework "QuartzCore" -framework "SnapKit" -framework "Toast_Swift" -framework "UIKit"
+OTHER_MODULE_VERIFIER_FLAGS = $(inherited) "-F${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift" "-F${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" "-F${PODS_CONFIGURATION_BUILD_DIR}/Toast-Swift"
+OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
+PODS_ROOT = ${SRCROOT}/Pods
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
+USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Pods-Example/Pods-Example.modulemap b/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Pods-Example/Pods-Example.modulemap
new file mode 100644 (file)
index 0000000..4b5189f
--- /dev/null
@@ -0,0 +1,6 @@
+framework module Pods_Example {
+  umbrella header "Pods-Example-umbrella.h"
+
+  export *
+  module * { export * }
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Pods-Example/Pods-Example.release.xcconfig b/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Pods-Example/Pods-Example.release.xcconfig
new file mode 100644 (file)
index 0000000..efadfc3
--- /dev/null
@@ -0,0 +1,16 @@
+ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
+FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" "${PODS_CONFIGURATION_BUILD_DIR}/Toast-Swift"
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Toast-Swift/Toast_Swift.framework/Headers"
+LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks'
+LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift $(SDKROOT)/usr/lib/swift
+OTHER_LDFLAGS = $(inherited) -l"swiftCoreGraphics" -framework "CoreGraphics" -framework "Foundation" -framework "IQKeyboardManagerSwift" -framework "QuartzCore" -framework "SnapKit" -framework "Toast_Swift" -framework "UIKit"
+OTHER_MODULE_VERIFIER_FLAGS = $(inherited) "-F${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift" "-F${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" "-F${PODS_CONFIGURATION_BUILD_DIR}/Toast-Swift"
+OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
+PODS_ROOT = ${SRCROOT}/Pods
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
+USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/SnapKit/ResourceBundle-SnapKit_Privacy-SnapKit-Info.plist b/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/SnapKit/ResourceBundle-SnapKit_Privacy-SnapKit-Info.plist
new file mode 100644 (file)
index 0000000..d6be571
--- /dev/null
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+  <key>CFBundleDevelopmentRegion</key>
+  <string>${PODS_DEVELOPMENT_LANGUAGE}</string>
+  <key>CFBundleIdentifier</key>
+  <string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
+  <key>CFBundleInfoDictionaryVersion</key>
+  <string>6.0</string>
+  <key>CFBundleName</key>
+  <string>${PRODUCT_NAME}</string>
+  <key>CFBundlePackageType</key>
+  <string>BNDL</string>
+  <key>CFBundleShortVersionString</key>
+  <string>5.7.1</string>
+  <key>CFBundleSignature</key>
+  <string>????</string>
+  <key>CFBundleVersion</key>
+  <string>1</string>
+  <key>NSPrincipalClass</key>
+  <string></string>
+</dict>
+</plist>
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/SnapKit/SnapKit-Info.plist b/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/SnapKit/SnapKit-Info.plist
new file mode 100644 (file)
index 0000000..af3ef2c
--- /dev/null
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+  <key>CFBundleDevelopmentRegion</key>
+  <string>${PODS_DEVELOPMENT_LANGUAGE}</string>
+  <key>CFBundleExecutable</key>
+  <string>${EXECUTABLE_NAME}</string>
+  <key>CFBundleIdentifier</key>
+  <string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
+  <key>CFBundleInfoDictionaryVersion</key>
+  <string>6.0</string>
+  <key>CFBundleName</key>
+  <string>${PRODUCT_NAME}</string>
+  <key>CFBundlePackageType</key>
+  <string>FMWK</string>
+  <key>CFBundleShortVersionString</key>
+  <string>5.7.1</string>
+  <key>CFBundleSignature</key>
+  <string>????</string>
+  <key>CFBundleVersion</key>
+  <string>${CURRENT_PROJECT_VERSION}</string>
+  <key>NSPrincipalClass</key>
+  <string></string>
+</dict>
+</plist>
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/SnapKit/SnapKit-dummy.m b/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/SnapKit/SnapKit-dummy.m
new file mode 100644 (file)
index 0000000..b44e8e5
--- /dev/null
@@ -0,0 +1,5 @@
+#import <Foundation/Foundation.h>
+@interface PodsDummy_SnapKit : NSObject
+@end
+@implementation PodsDummy_SnapKit
+@end
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/SnapKit/SnapKit-prefix.pch b/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/SnapKit/SnapKit-prefix.pch
new file mode 100644 (file)
index 0000000..beb2a24
--- /dev/null
@@ -0,0 +1,12 @@
+#ifdef __OBJC__
+#import <UIKit/UIKit.h>
+#else
+#ifndef FOUNDATION_EXPORT
+#if defined(__cplusplus)
+#define FOUNDATION_EXPORT extern "C"
+#else
+#define FOUNDATION_EXPORT extern
+#endif
+#endif
+#endif
+
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/SnapKit/SnapKit-umbrella.h b/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/SnapKit/SnapKit-umbrella.h
new file mode 100644 (file)
index 0000000..1b1be64
--- /dev/null
@@ -0,0 +1,16 @@
+#ifdef __OBJC__
+#import <UIKit/UIKit.h>
+#else
+#ifndef FOUNDATION_EXPORT
+#if defined(__cplusplus)
+#define FOUNDATION_EXPORT extern "C"
+#else
+#define FOUNDATION_EXPORT extern
+#endif
+#endif
+#endif
+
+
+FOUNDATION_EXPORT double SnapKitVersionNumber;
+FOUNDATION_EXPORT const unsigned char SnapKitVersionString[];
+
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/SnapKit/SnapKit.debug.xcconfig b/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/SnapKit/SnapKit.debug.xcconfig
new file mode 100644 (file)
index 0000000..3e6e223
--- /dev/null
@@ -0,0 +1,15 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
+CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SnapKit
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift $(SDKROOT)/usr/lib/swift
+OTHER_LDFLAGS = $(inherited) -l"swiftCoreGraphics"
+OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE}
+PODS_ROOT = ${SRCROOT}
+PODS_TARGET_SRCROOT = ${PODS_ROOT}/SnapKit
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
+PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
+SKIP_INSTALL = YES
+USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/SnapKit/SnapKit.modulemap b/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/SnapKit/SnapKit.modulemap
new file mode 100644 (file)
index 0000000..4b3e47b
--- /dev/null
@@ -0,0 +1,6 @@
+framework module SnapKit {
+  umbrella header "SnapKit-umbrella.h"
+
+  export *
+  module * { export * }
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/SnapKit/SnapKit.release.xcconfig b/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/SnapKit/SnapKit.release.xcconfig
new file mode 100644 (file)
index 0000000..3e6e223
--- /dev/null
@@ -0,0 +1,15 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
+CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SnapKit
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift $(SDKROOT)/usr/lib/swift
+OTHER_LDFLAGS = $(inherited) -l"swiftCoreGraphics"
+OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE}
+PODS_ROOT = ${SRCROOT}
+PODS_TARGET_SRCROOT = ${PODS_ROOT}/SnapKit
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
+PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
+SKIP_INSTALL = YES
+USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Toast-Swift/ResourceBundle-Toast-Swift-Toast-Swift-Info.plist b/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Toast-Swift/ResourceBundle-Toast-Swift-Toast-Swift-Info.plist
new file mode 100644 (file)
index 0000000..5b2072c
--- /dev/null
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+  <key>CFBundleDevelopmentRegion</key>
+  <string>${PODS_DEVELOPMENT_LANGUAGE}</string>
+  <key>CFBundleIdentifier</key>
+  <string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
+  <key>CFBundleInfoDictionaryVersion</key>
+  <string>6.0</string>
+  <key>CFBundleName</key>
+  <string>${PRODUCT_NAME}</string>
+  <key>CFBundlePackageType</key>
+  <string>BNDL</string>
+  <key>CFBundleShortVersionString</key>
+  <string>5.1.1</string>
+  <key>CFBundleSignature</key>
+  <string>????</string>
+  <key>CFBundleVersion</key>
+  <string>1</string>
+  <key>NSPrincipalClass</key>
+  <string></string>
+</dict>
+</plist>
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Toast-Swift/Toast-Swift-Info.plist b/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Toast-Swift/Toast-Swift-Info.plist
new file mode 100644 (file)
index 0000000..021370d
--- /dev/null
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+  <key>CFBundleDevelopmentRegion</key>
+  <string>${PODS_DEVELOPMENT_LANGUAGE}</string>
+  <key>CFBundleExecutable</key>
+  <string>${EXECUTABLE_NAME}</string>
+  <key>CFBundleIdentifier</key>
+  <string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
+  <key>CFBundleInfoDictionaryVersion</key>
+  <string>6.0</string>
+  <key>CFBundleName</key>
+  <string>${PRODUCT_NAME}</string>
+  <key>CFBundlePackageType</key>
+  <string>FMWK</string>
+  <key>CFBundleShortVersionString</key>
+  <string>5.1.1</string>
+  <key>CFBundleSignature</key>
+  <string>????</string>
+  <key>CFBundleVersion</key>
+  <string>${CURRENT_PROJECT_VERSION}</string>
+  <key>NSPrincipalClass</key>
+  <string></string>
+</dict>
+</plist>
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Toast-Swift/Toast-Swift-dummy.m b/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Toast-Swift/Toast-Swift-dummy.m
new file mode 100644 (file)
index 0000000..2962aa4
--- /dev/null
@@ -0,0 +1,5 @@
+#import <Foundation/Foundation.h>
+@interface PodsDummy_Toast_Swift : NSObject
+@end
+@implementation PodsDummy_Toast_Swift
+@end
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Toast-Swift/Toast-Swift-prefix.pch b/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Toast-Swift/Toast-Swift-prefix.pch
new file mode 100644 (file)
index 0000000..beb2a24
--- /dev/null
@@ -0,0 +1,12 @@
+#ifdef __OBJC__
+#import <UIKit/UIKit.h>
+#else
+#ifndef FOUNDATION_EXPORT
+#if defined(__cplusplus)
+#define FOUNDATION_EXPORT extern "C"
+#else
+#define FOUNDATION_EXPORT extern
+#endif
+#endif
+#endif
+
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Toast-Swift/Toast-Swift-umbrella.h b/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Toast-Swift/Toast-Swift-umbrella.h
new file mode 100644 (file)
index 0000000..8abdfa0
--- /dev/null
@@ -0,0 +1,16 @@
+#ifdef __OBJC__
+#import <UIKit/UIKit.h>
+#else
+#ifndef FOUNDATION_EXPORT
+#if defined(__cplusplus)
+#define FOUNDATION_EXPORT extern "C"
+#else
+#define FOUNDATION_EXPORT extern
+#endif
+#endif
+#endif
+
+
+FOUNDATION_EXPORT double Toast_SwiftVersionNumber;
+FOUNDATION_EXPORT const unsigned char Toast_SwiftVersionString[];
+
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Toast-Swift/Toast-Swift.debug.xcconfig b/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Toast-Swift/Toast-Swift.debug.xcconfig
new file mode 100644 (file)
index 0000000..8c4b186
--- /dev/null
@@ -0,0 +1,15 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
+CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Toast-Swift
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift
+OTHER_LDFLAGS = $(inherited) -framework "QuartzCore"
+OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE}
+PODS_ROOT = ${SRCROOT}
+PODS_TARGET_SRCROOT = ${PODS_ROOT}/Toast-Swift
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
+PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
+SKIP_INSTALL = YES
+USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Toast-Swift/Toast-Swift.modulemap b/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Toast-Swift/Toast-Swift.modulemap
new file mode 100644 (file)
index 0000000..af3db9f
--- /dev/null
@@ -0,0 +1,6 @@
+framework module Toast_Swift {
+  umbrella header "Toast-Swift-umbrella.h"
+
+  export *
+  module * { export * }
+}
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Toast-Swift/Toast-Swift.release.xcconfig b/IOTBluetooth/IOTBluetooth/Pods/Target Support Files/Toast-Swift/Toast-Swift.release.xcconfig
new file mode 100644 (file)
index 0000000..8c4b186
--- /dev/null
@@ -0,0 +1,15 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
+CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Toast-Swift
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift
+OTHER_LDFLAGS = $(inherited) -framework "QuartzCore"
+OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE}
+PODS_ROOT = ${SRCROOT}
+PODS_TARGET_SRCROOT = ${PODS_ROOT}/Toast-Swift
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
+PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
+SKIP_INSTALL = YES
+USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Toast-Swift/LICENSE b/IOTBluetooth/IOTBluetooth/Pods/Toast-Swift/LICENSE
new file mode 100644 (file)
index 0000000..6b3b982
--- /dev/null
@@ -0,0 +1,20 @@
+Copyright (c) 2015-2024 Charles Scalesse.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Toast-Swift/README.md b/IOTBluetooth/IOTBluetooth/Pods/Toast-Swift/README.md
new file mode 100644 (file)
index 0000000..e7ae831
--- /dev/null
@@ -0,0 +1,143 @@
+Toast-Swift
+=============
+
+[![CocoaPods Version](https://img.shields.io/cocoapods/v/Toast-Swift.svg)](http://cocoadocs.org/docsets/Toast-Swift)
+[![Carthage Compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage)
+
+Toast-Swift is a Swift extension that adds toast notifications to the `UIView` object class. It is intended to be simple, lightweight, and easy to use. Most toast notifications can be triggered with a single line of code.
+
+**Toast-Swift is a native Swift port of [Toast for iOS](https://github.com/scalessec/Toast "Toast for iOS").**
+
+Screenshots
+---------
+![Toast-Swift Screenshots](toast_swift_screenshot.jpg)
+
+
+Basic Examples
+---------
+```swift
+// basic usage
+self.view.makeToast("This is a piece of toast")
+
+// toast with a specific duration and position
+self.view.makeToast("This is a piece of toast", duration: 3.0, position: .top)
+
+// toast presented with multiple options and with a completion closure
+self.view.makeToast("This is a piece of toast", duration: 2.0, point: CGPoint(x: 110.0, y: 110.0), title: "Toast Title", image: UIImage(named: "toast.png")) { didTap in
+    if didTap {
+        print("completion from tap")
+    } else {
+        print("completion without tap")
+    }
+}
+
+// display toast with an activity spinner
+self.view.makeToastActivity(.center)
+
+// display any view as toast
+self.view.showToast(myView)
+
+// immediately hides all toast views in self.view
+self.view.hideAllToasts()
+```
+
+But wait, there's more!
+---------
+```swift
+// create a new style
+var style = ToastStyle()
+
+// this is just one of many style options
+style.messageColor = .blue
+
+// present the toast with the new style
+self.view.makeToast("This is a piece of toast", duration: 3.0, position: .bottom, style: style)
+
+// or perhaps you want to use this style for all toasts going forward?
+// just set the shared style and there's no need to provide the style again
+ToastManager.shared.style = style
+self.view.makeToast("This is a piece of toast") // now uses the shared style
+
+// toggle "tap to dismiss" functionality
+ToastManager.shared.isTapToDismissEnabled = true
+
+// toggle queueing behavior
+ToastManager.shared.isQueueEnabled = true
+```
+
+See the demo project for more examples.
+
+
+Setup Instructions
+------------------
+
+[CocoaPods](http://cocoapods.org)
+------------------
+
+To integrate Toast-Swift into your Xcode project using CocoaPods, specify it in your `Podfile`:
+
+```ruby
+pod 'Toast-Swift', '~> 5.1.0'
+```
+
+and in your code add `import Toast_Swift`.
+
+[Carthage](https://github.com/Carthage/Carthage)
+------------------
+
+To integrate Toast-Swift into your Xcode project using Carthage, specify it in your `Cartfile`:
+
+```ogdl
+github "scalessec/Toast-Swift" ~> 5.1.0
+```
+
+Run `carthage update` to build the framework and drag the built `ToastSwiftFramework.framework` into your Xcode project.
+
+and in your code add `import ToastSwiftFramework`.
+
+[Swift Package Manager](https://swift.org/package-manager/)
+------------------
+
+When using Xcode 11 or later, you can install `Toast` by going to your Project settings > `Swift Packages` and add the repository by providing the GitHub URL. Alternatively, you can go to `File` > `Swift Packages` > `Add Package Dependencies...`
+
+Manually
+------------------
+
+1. Add `Toast.swift` to your project.
+2. Grab yourself a cold 🍺.
+
+Compatibility
+------------------
+* Version `5.x.x` requires Swift 5 and Xcode 10.2 or later.
+* Version `4.x.x` requires Swift 4.2 and Xcode 10.
+* Version `3.x.x` requires Swift 4 and Xcode 9.
+* Version `2.x.x` requires Swift 3 and Xcode 8.
+* Version `1.4.x` requires Swift 2.2 and Xcode 7.3. 
+* Version `1.0.0` can be used with Swift 2.1 and earlier versions of Xcode.
+
+Privacy
+-----------
+Toast-Swift does not collect any data. A [privacy manifest](Toast/Resources/PrivacyInfo.xcprivacy) is provided with the library. See [Apple's documentation](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files) for related details.
+ 
+MIT License
+-----------
+    Copyright (c) 2015-2024 Charles Scalesse.
+
+    Permission is hereby granted, free of charge, to any person obtaining a
+    copy of this software and associated documentation files (the
+    "Software"), to deal in the Software without restriction, including
+    without limitation the rights to use, copy, modify, merge, publish,
+    distribute, sublicense, and/or sell copies of the Software, and to
+    permit persons to whom the Software is furnished to do so, subject to
+    the following conditions:
+
+    The above copyright notice and this permission notice shall be included
+    in all copies or substantial portions of the Software.
+
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+    OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+    IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+    CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+    TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+    SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Toast-Swift/Toast/Resources/PrivacyInfo.xcprivacy b/IOTBluetooth/IOTBluetooth/Pods/Toast-Swift/Toast/Resources/PrivacyInfo.xcprivacy
new file mode 100644 (file)
index 0000000..3421b16
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+       <key>NSPrivacyTracking</key>
+       <false/>
+       <key>NSPrivacyCollectedDataTypes</key>
+       <array/>
+       <key>NSPrivacyTrackingDomains</key>
+       <array/>
+       <key>NSPrivacyAccessedAPITypes</key>
+       <array/>
+</dict>
+</plist>
\ No newline at end of file
diff --git a/IOTBluetooth/IOTBluetooth/Pods/Toast-Swift/Toast/Toast.swift b/IOTBluetooth/IOTBluetooth/Pods/Toast-Swift/Toast/Toast.swift
new file mode 100644 (file)
index 0000000..5b4dd05
--- /dev/null
@@ -0,0 +1,797 @@
+//
+//  Toast.swift
+//  Toast-Swift
+//
+//  Copyright (c) 2015-2024 Charles Scalesse.
+//
+//  Permission is hereby granted, free of charge, to any person obtaining a
+//  copy of this software and associated documentation files (the
+//  "Software"), to deal in the Software without restriction, including
+//  without limitation the rights to use, copy, modify, merge, publish,
+//  distribute, sublicense, and/or sell copies of the Software, and to
+//  permit persons to whom the Software is furnished to do so, subject to
+//  the following conditions:
+//
+//  The above copyright notice and this permission notice shall be included
+//  in all copies or substantial portions of the Software.
+//
+//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+//  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+//  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+//  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+//  CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+//  TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+//  SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+import UIKit
+import ObjectiveC
+
+/**
+ Toast is a Swift extension that adds toast notifications to the `UIView` object class.
+ It is intended to be simple, lightweight, and easy to use. Most toast notifications 
+ can be triggered with a single line of code.
+ 
+ The `makeToast` methods create a new view and then display it as toast.
+ 
+ The `showToast` methods display any view as toast.
+ 
+ */
+public extension UIView {
+    
+    /**
+     Keys used for associated objects.
+     */
+    private struct ToastKeys {
+        static var timer = malloc(1)
+        static var duration = malloc(1)
+        static var point = malloc(1)
+        static var completion = malloc(1)
+        static var activeToasts = malloc(1)
+        static var activityView = malloc(1)
+        static var queue = malloc(1)
+    }
+    
+    /**
+     Swift closures can't be directly associated with objects via the
+     Objective-C runtime, so the (ugly) solution is to wrap them in a
+     class that can be used with associated objects.
+     */
+    private class ToastCompletionWrapper {
+        let completion: ((Bool) -> Void)?
+        
+        init(_ completion: ((Bool) -> Void)?) {
+            self.completion = completion
+        }
+    }
+    
+    private enum ToastError: Error {
+        case missingParameters
+    }
+    
+    private var activeToasts: NSMutableArray {
+        get {
+            if let activeToasts = objc_getAssociatedObject(self, &ToastKeys.activeToasts) as? NSMutableArray {
+                return activeToasts
+            } else {
+                let activeToasts = NSMutableArray()
+                objc_setAssociatedObject(self, &ToastKeys.activeToasts, activeToasts, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
+                return activeToasts
+            }
+        }
+    }
+    
+    private var queue: NSMutableArray {
+        get {
+            if let queue = objc_getAssociatedObject(self, &ToastKeys.queue) as? NSMutableArray {
+                return queue
+            } else {
+                let queue = NSMutableArray()
+                objc_setAssociatedObject(self, &ToastKeys.queue, queue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
+                return queue
+            }
+        }
+    }
+    
+    // MARK: - Make Toast Methods
+    
+    /**
+     Creates and presents a new toast view.
+     
+     @param message The message to be displayed
+     @param duration The toast duration
+     @param position The toast's position
+     @param title The title
+     @param image The image
+     @param style The style. The shared style will be used when nil
+     @param completion The completion closure, executed after the toast view disappears.
+            didTap will be `true` if the toast view was dismissed from a tap.
+     */
+    func makeToast(_ message: String?, duration: TimeInterval = ToastManager.shared.duration, position: ToastPosition = ToastManager.shared.position, title: String? = nil, image: UIImage? = nil, style: ToastStyle = ToastManager.shared.style, completion: ((_ didTap: Bool) -> Void)? = nil) {
+        do {
+            let toast = try toastViewForMessage(message, title: title, image: image, style: style)
+            showToast(toast, duration: duration, position: position, completion: completion)
+        } catch ToastError.missingParameters {
+            print("Error: message, title, and image are all nil")
+        } catch {}
+    }
+    
+    /**
+     Creates a new toast view and presents it at a given center point.
+     
+     @param message The message to be displayed
+     @param duration The toast duration
+     @param point The toast's center point
+     @param title The title
+     @param image The image
+     @param style The style. The shared style will be used when nil
+     @param completion The completion closure, executed after the toast view disappears.
+            didTap will be `true` if the toast view was dismissed from a tap.
+     */
+    func makeToast(_ message: String?, duration: TimeInterval = ToastManager.shared.duration, point: CGPoint, title: String?, image: UIImage?, style: ToastStyle = ToastManager.shared.style, completion: ((_ didTap: Bool) -> Void)?) {
+        do {
+            let toast = try toastViewForMessage(message, title: title, image: image, style: style)
+            showToast(toast, duration: duration, point: point, completion: completion)
+        } catch ToastError.missingParameters {
+            print("Error: message, title, and image cannot all be nil")
+        } catch {}
+    }
+    
+    // MARK: - Show Toast Methods
+    
+    /**
+     Displays any view as toast at a provided position and duration. The completion closure
+     executes when the toast view completes. `didTap` will be `true` if the toast view was
+     dismissed from a tap.
+     
+     @param toast The view to be displayed as toast
+     @param duration The notification duration
+     @param position The toast's position
+     @param completion The completion block, executed after the toast view disappears.
+     didTap will be `true` if the toast view was dismissed from a tap.
+     */
+    func showToast(_ toast: UIView, duration: TimeInterval = ToastManager.shared.duration, position: ToastPosition = ToastManager.shared.position, completion: ((_ didTap: Bool) -> Void)? = nil) {
+        let point = position.centerPoint(forToast: toast, inSuperview: self)
+        showToast(toast, duration: duration, point: point, completion: completion)
+    }
+    
+    /**
+     Displays any view as toast at a provided center point and duration. The completion closure
+     executes when the toast view completes. `didTap` will be `true` if the toast view was
+     dismissed from a tap.
+     
+     @param toast The view to be displayed as toast
+     @param duration The notification duration
+     @param point The toast's center point
+     @param completion The completion block, executed after the toast view disappears.
+     didTap will be `true` if the toast view was dismissed from a tap.
+     */
+    func showToast(_ toast: UIView, duration: TimeInterval = ToastManager.shared.duration, point: CGPoint, completion: ((_ didTap: Bool) -> Void)? = nil) {
+        objc_setAssociatedObject(toast, &ToastKeys.completion, ToastCompletionWrapper(completion), .OBJC_ASSOCIATION_RETAIN_NONATOMIC);
+        
+        if ToastManager.shared.isQueueEnabled, activeToasts.count > 0 {
+            objc_setAssociatedObject(toast, &ToastKeys.duration, NSNumber(value: duration), .OBJC_ASSOCIATION_RETAIN_NONATOMIC);
+            objc_setAssociatedObject(toast, &ToastKeys.point, NSValue(cgPoint: point), .OBJC_ASSOCIATION_RETAIN_NONATOMIC);
+            
+            queue.add(toast)
+        } else {
+            showToast(toast, duration: duration, point: point)
+        }
+    }
+    
+    // MARK: - Hide Toast Methods
+    
+    /**
+     Hides the active toast. If there are multiple toasts active in a view, this method
+     hides the oldest toast (the first of the toasts to have been presented).
+     
+     @see `hideAllToasts()` to remove all active toasts from a view.
+     
+     @warning This method has no effect on activity toasts. Use `hideToastActivity` to
+     hide activity toasts.
+     
+    */
+    func hideToast() {
+        guard let activeToast = activeToasts.firstObject as? UIView else { return }
+        hideToast(activeToast)
+    }
+    
+    /**
+     Hides an active toast.
+     
+     @param toast The active toast view to dismiss. Any toast that is currently being displayed
+     on the screen is considered active.
+     
+     @warning this does not clear a toast view that is currently waiting in the queue.
+     */
+    func hideToast(_ toast: UIView) {
+        guard activeToasts.contains(toast) else { return }
+        hideToast(toast, fromTap: false)
+    }
+    
+    /**
+     Hides all toast views.
+     
+     @param includeActivity If `true`, toast activity will also be hidden. Default is `false`.
+     @param clearQueue If `true`, removes all toast views from the queue. Default is `true`.
+    */
+    func hideAllToasts(includeActivity: Bool = false, clearQueue: Bool = true) {
+        if clearQueue {
+            clearToastQueue()
+        }
+        
+        activeToasts.compactMap { $0 as? UIView }
+                    .forEach { hideToast($0) }
+        
+        if includeActivity {
+            hideToastActivity()
+        }
+    }
+    
+    /**
+     Removes all toast views from the queue. This has no effect on toast views that are
+     active. Use `hideAllToasts(clearQueue:)` to hide the active toasts views and clear
+     the queue.
+     */
+    func clearToastQueue() {
+        queue.removeAllObjects()
+    }
+    
+    // MARK: - Activity Methods
+    
+    /**
+     Creates and displays a new toast activity indicator view at a specified position.
+    
+     @warning Only one toast activity indicator view can be presented per superview. Subsequent
+     calls to `makeToastActivity(position:)` will be ignored until `hideToastActivity()` is called.
+    
+     @warning `makeToastActivity(position:)` works independently of the `showToast` methods. Toast
+     activity views can be presented and dismissed while toast views are being displayed.
+     `makeToastActivity(position:)` has no effect on the queueing behavior of the `showToast` methods.
+    
+     @param position The toast's position
+     */
+    func makeToastActivity(_ position: ToastPosition) {
+        // sanity
+        guard objc_getAssociatedObject(self, &ToastKeys.activityView) as? UIView == nil else { return }
+        
+        let toast = createToastActivityView()
+        let point = position.centerPoint(forToast: toast, inSuperview: self)
+        makeToastActivity(toast, point: point)
+    }
+    
+    /**
+     Creates and displays a new toast activity indicator view at a specified position.
+     
+     @warning Only one toast activity indicator view can be presented per superview. Subsequent
+     calls to `makeToastActivity(position:)` will be ignored until `hideToastActivity()` is called.
+     
+     @warning `makeToastActivity(position:)` works independently of the `showToast` methods. Toast
+     activity views can be presented and dismissed while toast views are being displayed.
+     `makeToastActivity(position:)` has no effect on the queueing behavior of the `showToast` methods.
+     
+     @param point The toast's center point
+     */
+    func makeToastActivity(_ point: CGPoint) {
+        // sanity
+        guard objc_getAssociatedObject(self, &ToastKeys.activityView) as? UIView == nil else { return }
+        
+        let toast = createToastActivityView()
+        makeToastActivity(toast, point: point)
+    }
+    
+    /**
+     Dismisses the active toast activity indicator view.
+     */
+    func hideToastActivity() {
+        if let toast = objc_getAssociatedObject(self, &ToastKeys.activityView) as? UIView {
+            UIView.animate(withDuration: ToastManager.shared.style.fadeDuration, delay: 0.0, options: [.curveEaseIn, .beginFromCurrentState], animations: {
+                toast.alpha = 0.0
+            }) { _ in
+                toast.removeFromSuperview()
+                objc_setAssociatedObject(self, &ToastKeys.activityView, nil, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
+            }
+        }
+    }
+    
+    // MARK: - Helper Methods
+    
+    /**
+     Returns `true` if a toast view or toast activity view is actively being displayed.
+     */
+    func isShowingToast() -> Bool {
+        return activeToasts.count > 0 || objc_getAssociatedObject(self, &ToastKeys.activityView) != nil
+    }
+    
+    // MARK: - Private Activity Methods
+    
+    private func makeToastActivity(_ toast: UIView, point: CGPoint) {
+        toast.alpha = 0.0
+        toast.center = point
+        
+        objc_setAssociatedObject(self, &ToastKeys.activityView, toast, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
+        
+        self.addSubview(toast)
+        
+        UIView.animate(withDuration: ToastManager.shared.style.fadeDuration, delay: 0.0, options: .curveEaseOut, animations: {
+            toast.alpha = 1.0
+        })
+    }
+    
+    private func createToastActivityView() -> UIView {
+        let style = ToastManager.shared.style
+        
+        let activityView = UIView(frame: CGRect(x: 0.0, y: 0.0, width: style.activitySize.width, height: style.activitySize.height))
+        activityView.backgroundColor = style.activityBackgroundColor
+        activityView.autoresizingMask = [.flexibleLeftMargin, .flexibleRightMargin, .flexibleTopMargin, .flexibleBottomMargin]
+        activityView.layer.cornerRadius = style.cornerRadius
+        
+        if style.displayShadow {
+            activityView.layer.shadowColor = style.shadowColor.cgColor
+            activityView.layer.shadowOpacity = style.shadowOpacity
+            activityView.layer.shadowRadius = style.shadowRadius
+            activityView.layer.shadowOffset = style.shadowOffset
+        }
+        
+        let activityIndicatorView = UIActivityIndicatorView(style: .whiteLarge)
+        activityIndicatorView.center = CGPoint(x: activityView.bounds.size.width / 2.0, y: activityView.bounds.size.height / 2.0)
+        activityView.addSubview(activityIndicatorView)
+        activityIndicatorView.color = style.activityIndicatorColor
+        activityIndicatorView.startAnimating()
+        
+        return activityView
+    }
+    
+    // MARK: - Private Show/Hide Methods
+    
+    private func showToast(_ toast: UIView, duration: TimeInterval, point: CGPoint) {
+        toast.center = point
+        toast.alpha = 0.0
+        
+        if ToastManager.shared.isTapToDismissEnabled {
+            let recognizer = UITapGestureRecognizer(target: self, action: #selector(UIView.handleToastTapped(_:)))
+            toast.addGestureRecognizer(recognizer)
+            toast.isUserInteractionEnabled = true
+            toast.isExclusiveTouch = true
+        }
+        
+        activeToasts.add(toast)
+        self.addSubview(toast)
+
+        let timer = Timer(timeInterval: duration, target: self, selector: #selector(UIView.toastTimerDidFinish(_:)), userInfo: toast, repeats: false)
+        objc_setAssociatedObject(toast, &ToastKeys.timer, timer, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
+
+        UIView.animate(withDuration: ToastManager.shared.style.fadeDuration, delay: 0.0, options: [.curveEaseOut, .allowUserInteraction], animations: {
+            toast.alpha = 1.0
+        }) { _ in
+            guard let timer = objc_getAssociatedObject(toast, &ToastKeys.timer) as? Timer else { return }
+            RunLoop.main.add(timer, forMode: .common)
+        }
+        
+        UIAccessibility.post(notification: .screenChanged, argument: toast)
+    }
+    
+    private func hideToast(_ toast: UIView, fromTap: Bool) {
+        if let timer = objc_getAssociatedObject(toast, &ToastKeys.timer) as? Timer {
+            timer.invalidate()
+        }
+        
+        UIView.animate(withDuration: ToastManager.shared.style.fadeDuration, delay: 0.0, options: [.curveEaseIn, .beginFromCurrentState], animations: {
+            toast.alpha = 0.0
+        }) { _ in
+            toast.removeFromSuperview()
+            self.activeToasts.remove(toast)
+            
+            if let wrapper = objc_getAssociatedObject(toast, &ToastKeys.completion) as? ToastCompletionWrapper, let completion = wrapper.completion {
+                completion(fromTap)
+            }
+            
+            if let nextToast = self.queue.firstObject as? UIView, let duration = objc_getAssociatedObject(nextToast, &ToastKeys.duration) as? NSNumber, let point = objc_getAssociatedObject(nextToast, &ToastKeys.point) as? NSValue {
+                self.queue.removeObject(at: 0)
+                self.showToast(nextToast, duration: duration.doubleValue, point: point.cgPointValue)
+            }
+        }
+    }
+    
+    // MARK: - Events
+    
+    @objc
+    private func handleToastTapped(_ recognizer: UITapGestureRecognizer) {
+        guard let toast = recognizer.view else { return }
+        hideToast(toast, fromTap: true)
+    }
+    
+    @objc
+    private func toastTimerDidFinish(_ timer: Timer) {
+        guard let toast = timer.userInfo as? UIView else { return }
+        hideToast(toast)
+    }
+    
+    // MARK: - Toast Construction
+    
+    /**
+     Creates a new toast view with any combination of message, title, and image.
+     The look and feel is configured via the style. Unlike the `makeToast` methods,
+     this method does not present the toast view automatically. One of the `showToast`
+     methods must be used to present the resulting view.
+    
+     @warning if message, title, and image are all nil, this method will throw
+     `ToastError.missingParameters`
+    
+     @param message The message to be displayed
+     @param title The title
+     @param image The image
+     @param style The style. The shared style will be used when nil
+     @throws `ToastError.missingParameters` when message, title, and image are all nil
+     @return The newly created toast view
+    */
+    func toastViewForMessage(_ message: String?, title: String?, image: UIImage?, style: ToastStyle) throws -> UIView {
+        // sanity
+        guard message != nil || title != nil || image != nil else {
+            throw ToastError.missingParameters
+        }
+        
+        var messageLabel: UILabel?
+        var titleLabel: UILabel?
+        var imageView: UIImageView?
+        
+        let wrapperView = UIView()
+        wrapperView.backgroundColor = style.backgroundColor
+        wrapperView.autoresizingMask = [.flexibleLeftMargin, .flexibleRightMargin, .flexibleTopMargin, .flexibleBottomMargin]
+        wrapperView.layer.cornerRadius = style.cornerRadius
+        
+        if style.displayShadow {
+            wrapperView.layer.shadowColor = style.shadowColor.cgColor
+            wrapperView.layer.shadowOpacity = style.shadowOpacity
+            wrapperView.layer.shadowRadius = style.shadowRadius
+            wrapperView.layer.shadowOffset = style.shadowOffset
+        }
+        
+        if let image = image {
+            imageView = UIImageView(image: image)
+            imageView?.contentMode = .scaleAspectFit
+            imageView?.frame = CGRect(x: style.horizontalPadding, y: style.verticalPadding, width: style.imageSize.width, height: style.imageSize.height)
+        }
+        
+        var imageRect = CGRect.zero
+        
+        if let imageView = imageView {
+            imageRect.origin.x = style.horizontalPadding
+            imageRect.origin.y = style.verticalPadding
+            imageRect.size.width = imageView.bounds.size.width
+            imageRect.size.height = imageView.bounds.size.height
+        }
+
+        if let title = title {
+            titleLabel = UILabel()
+            titleLabel?.numberOfLines = style.titleNumberOfLines
+            titleLabel?.font = style.titleFont
+            titleLabel?.textAlignment = style.titleAlignment
+            titleLabel?.lineBreakMode = .byTruncatingTail
+            titleLabel?.textColor = style.titleColor
+            titleLabel?.backgroundColor = UIColor.clear
+            titleLabel?.text = title;
+            
+            let maxTitleSize = CGSize(width: (self.bounds.size.width * style.maxWidthPercentage) - imageRect.size.width, height: self.bounds.size.height * style.maxHeightPercentage)
+            let titleSize = titleLabel?.sizeThatFits(maxTitleSize)
+            if let titleSize = titleSize {
+                titleLabel?.frame = CGRect(x: 0.0, y: 0.0, width: titleSize.width, height: titleSize.height)
+            }
+        }
+        
+        if let message = message {
+            messageLabel = UILabel()
+            messageLabel?.text = message
+            messageLabel?.numberOfLines = style.messageNumberOfLines
+            messageLabel?.font = style.messageFont
+            messageLabel?.textAlignment = style.messageAlignment
+            messageLabel?.lineBreakMode = .byTruncatingTail;
+            messageLabel?.textColor = style.messageColor
+            messageLabel?.backgroundColor = UIColor.clear
+            
+            let maxMessageSize = CGSize(width: (self.bounds.size.width * style.maxWidthPercentage) - imageRect.size.width, height: self.bounds.size.height * style.maxHeightPercentage)
+            let messageSize = messageLabel?.sizeThatFits(maxMessageSize)
+            if let messageSize = messageSize {
+                let actualWidth = min(messageSize.width, maxMessageSize.width)
+                let actualHeight = min(messageSize.height, maxMessageSize.height)
+                messageLabel?.frame = CGRect(x: 0.0, y: 0.0, width: actualWidth, height: actualHeight)
+            }
+        }
+  
+        var titleRect = CGRect.zero
+        
+        if let titleLabel = titleLabel {
+            titleRect.origin.x = imageRect.origin.x + imageRect.size.width + style.horizontalPadding
+            titleRect.origin.y = style.verticalPadding
+            titleRect.size.width = titleLabel.bounds.size.width
+            titleRect.size.height = titleLabel.bounds.size.height
+        }
+        
+        var messageRect = CGRect.zero
+        
+        if let messageLabel = messageLabel {
+            messageRect.origin.x = imageRect.origin.x + imageRect.size.width + style.horizontalPadding
+            messageRect.origin.y = titleRect.origin.y + titleRect.size.height + style.verticalPadding
+            messageRect.size.width = messageLabel.bounds.size.width
+            messageRect.size.height = messageLabel.bounds.size.height
+        }
+        
+        let longerWidth = max(titleRect.size.width, messageRect.size.width)
+        let longerX = max(titleRect.origin.x, messageRect.origin.x)
+        let wrapperWidth = max((imageRect.size.width + (style.horizontalPadding * 2.0)), (longerX + longerWidth + style.horizontalPadding))
+        
+        let textMaxY = messageRect.size.height <= 0.0 && titleRect.size.height > 0.0 ? titleRect.maxY : messageRect.maxY
+        let wrapperHeight = max((textMaxY + style.verticalPadding), (imageRect.size.height + (style.verticalPadding * 2.0)))
+        
+        wrapperView.frame = CGRect(x: 0.0, y: 0.0, width: wrapperWidth, height: wrapperHeight)
+        
+        if let titleLabel = titleLabel {
+            titleRect.size.width = longerWidth
+            titleLabel.frame = titleRect
+            wrapperView.addSubview(titleLabel)
+        }
+        
+        if let messageLabel = messageLabel {
+            messageRect.size.width = longerWidth
+            messageLabel.frame = messageRect
+            wrapperView.addSubview(messageLabel)
+        }
+        
+        if let imageView = imageView {
+            wrapperView.addSubview(imageView)
+        }
+        
+        return wrapperView
+    }
+    
+}
+
+// MARK: - Toast Style
+
+/**
+ `ToastStyle` instances define the look and feel for toast views created via the
+ `makeToast` methods as well for toast views created directly with
+ `toastViewForMessage(message:title:image:style:)`.
+
+ @warning `ToastStyle` offers relatively simple styling options for the default
+ toast view. If you require a toast view with more complex UI, it probably makes more
+ sense to create your own custom UIView subclass and present it with the `showToast`
+ methods.
+*/
+public struct ToastStyle {
+
+    public init() {}
+    
+    /**
+     The background color. Default is `.black` at 80% opacity.
+    */
+    public var backgroundColor: UIColor = UIColor.black.withAlphaComponent(0.8)
+    
+    /**
+     The title color. Default is `UIColor.whiteColor()`.
+    */
+    public var titleColor: UIColor = .white
+    
+    /**
+     The message color. Default is `.white`.
+    */
+    public var messageColor: UIColor = .white
+    
+    /**
+     A percentage value from 0.0 to 1.0, representing the maximum width of the toast
+     view relative to it's superview. Default is 0.8 (80% of the superview's width).
+    */
+    public var maxWidthPercentage: CGFloat = 0.8 {
+        didSet {
+            maxWidthPercentage = max(min(maxWidthPercentage, 1.0), 0.0)
+        }
+    }
+    
+    /**
+     A percentage value from 0.0 to 1.0, representing the maximum height of the toast
+     view relative to it's superview. Default is 0.8 (80% of the superview's height).
+    */
+    public var maxHeightPercentage: CGFloat = 0.8 {
+        didSet {
+            maxHeightPercentage = max(min(maxHeightPercentage, 1.0), 0.0)
+        }
+    }
+    
+    /**
+     The spacing from the horizontal edge of the toast view to the content. When an image
+     is present, this is also used as the padding between the image and the text.
+     Default is 10.0.
+     
+    */
+    public var horizontalPadding: CGFloat = 10.0
+    
+    /**
+     The spacing from the vertical edge of the toast view to the content. When a title
+     is present, this is also used as the padding between the title and the message.
+     Default is 10.0. On iOS11+, this value is added added to the `safeAreaInset.top`
+     and `safeAreaInsets.bottom`.
+    */
+    public var verticalPadding: CGFloat = 10.0
+    
+    /**
+     The corner radius. Default is 10.0.
+    */
+    public var cornerRadius: CGFloat = 10.0;
+    
+    /**
+     The title font. Default is `.boldSystemFont(16.0)`.
+    */
+    public var titleFont: UIFont = .boldSystemFont(ofSize: 16.0)
+    
+    /**
+     The message font. Default is `.systemFont(ofSize: 16.0)`.
+    */
+    public var messageFont: UIFont = .systemFont(ofSize: 16.0)
+    
+    /**
+     The title text alignment. Default is `NSTextAlignment.Left`.
+    */
+    public var titleAlignment: NSTextAlignment = .left
+    
+    /**
+     The message text alignment. Default is `NSTextAlignment.Left`.
+    */
+    public var messageAlignment: NSTextAlignment = .left
+    
+    /**
+     The maximum number of lines for the title. The default is 0 (no limit).
+    */
+    public var titleNumberOfLines = 0
+    
+    /**
+     The maximum number of lines for the message. The default is 0 (no limit).
+    */
+    public var messageNumberOfLines = 0
+    
+    /**
+     Enable or disable a shadow on the toast view. Default is `false`.
+    */
+    public var displayShadow = false
+    
+    /**
+     The shadow color. Default is `.black`.
+     */
+    public var shadowColor: UIColor = .black
+    
+    /**
+     A value from 0.0 to 1.0, representing the opacity of the shadow.
+     Default is 0.8 (80% opacity).
+    */
+    public var shadowOpacity: Float = 0.8 {
+        didSet {
+            shadowOpacity = max(min(shadowOpacity, 1.0), 0.0)
+        }
+    }
+
+    /**
+     The shadow radius. Default is 6.0.
+    */
+    public var shadowRadius: CGFloat = 6.0
+    
+    /**
+     The shadow offset. The default is 4 x 4.
+    */
+    public var shadowOffset = CGSize(width: 4.0, height: 4.0)
+    
+    /**
+     The image size. The default is 80 x 80.
+    */
+    public var imageSize = CGSize(width: 80.0, height: 80.0)
+    
+    /**
+     The size of the toast activity view when `makeToastActivity(position:)` is called.
+     Default is 100 x 100.
+    */
+    public var activitySize = CGSize(width: 100.0, height: 100.0)
+    
+    /**
+     The fade in/out animation duration. Default is 0.2.
+     */
+    public var fadeDuration: TimeInterval = 0.2
+    
+    /**
+     Activity indicator color. Default is `.white`.
+     */
+    public var activityIndicatorColor: UIColor = .white
+    
+    /**
+     Activity background color. Default is `.black` at 80% opacity.
+     */
+    public var activityBackgroundColor: UIColor = UIColor.black.withAlphaComponent(0.8)
+    
+}
+
+// MARK: - Toast Manager
+
+/**
+ `ToastManager` provides general configuration options for all toast
+ notifications. Backed by a singleton instance.
+*/
+public class ToastManager {
+    
+    /**
+     The `ToastManager` singleton instance.
+     
+     */
+    public static let shared = ToastManager()
+    
+    /**
+     The shared style. Used whenever toastViewForMessage(message:title:image:style:) is called
+     with with a nil style.
+     
+     */
+    public var style = ToastStyle()
+    
+    /**
+     Enables or disables tap to dismiss on toast views. Default is `true`.
+     
+     */
+    public var isTapToDismissEnabled = true
+    
+    /**
+     Enables or disables queueing behavior for toast views. When `true`,
+     toast views will appear one after the other. When `false`, multiple toast
+     views will appear at the same time (potentially overlapping depending
+     on their positions). This has no effect on the toast activity view,
+     which operates independently of normal toast views. Default is `false`.
+     
+     */
+    public var isQueueEnabled = false
+    
+    /**
+     The default duration. Used for the `makeToast` and
+     `showToast` methods that don't require an explicit duration.
+     Default is 3.0.
+     
+     */
+    public var duration: TimeInterval = 3.0
+    
+    /**
+     Sets the default position. Used for the `makeToast` and
+     `showToast` methods that don't require an explicit position.
+     Default is `ToastPosition.Bottom`.
+     
+     */
+    public var position: ToastPosition = .bottom
+    
+}
+
+// MARK: - ToastPosition
+
+public enum ToastPosition {
+    case top
+    case center
+    case bottom
+    
+    fileprivate func centerPoint(forToast toast: UIView, inSuperview superview: UIView) -> CGPoint {
+        let topPadding: CGFloat = ToastManager.shared.style.verticalPadding + superview.csSafeAreaInsets.top
+        let bottomPadding: CGFloat = ToastManager.shared.style.verticalPadding + superview.csSafeAreaInsets.bottom
+        
+        switch self {
+        case .top:
+            return CGPoint(x: superview.bounds.size.width / 2.0, y: (toast.frame.size.height / 2.0) + topPadding)
+        case .center:
+            return CGPoint(x: superview.bounds.size.width / 2.0, y: superview.bounds.size.height / 2.0)
+        case .bottom:
+            return CGPoint(x: superview.bounds.size.width / 2.0, y: (superview.bounds.size.height - (toast.frame.size.height / 2.0)) - bottomPadding)
+        }
+    }
+}
+
+// MARK: - Private UIView Extensions
+
+private extension UIView {
+    
+    var csSafeAreaInsets: UIEdgeInsets {
+        if #available(iOS 11.0, *) {
+            return self.safeAreaInsets
+        } else {
+            return .zero
+        }
+    }
+    
+}
diff --git a/IOTBluetooth/IOTBluetooth/podfile b/IOTBluetooth/IOTBluetooth/podfile
new file mode 100644 (file)
index 0000000..46f8763
--- /dev/null
@@ -0,0 +1,13 @@
+# source 'https://kkgithub.com/CocoaPods/Specs.git'
+source "https://gitee.com/mirrors/CocoaPods-Specs.git"
+platform :ios, '13.0'
+use_frameworks!
+
+
+workspace 'IOTBluetooth'
+project 'IOTBluetooth.xcodeproj'
+target 'Example' do
+    pod 'SnapKit', '~> 5.7.0'
+    pod 'Toast-Swift'
+    pod 'IQKeyboardManagerSwift'
+end