From 9d6ec1b3eddf0c3d44eb13537b04574b63e34fb9 Mon Sep 17 00:00:00 2001 From: Robert Dougan Date: Fri, 18 Jul 2014 13:26:09 +0200 Subject: [PATCH] First commit --- Podfile | 2 + Podfile.lock | 10 + Pods/BuildHeaders/SSKeychain/SSKeychain.h | 1 + .../BuildHeaders/SSKeychain/SSKeychainQuery.h | 1 + Pods/Headers/SSKeychain/SSKeychain.h | 1 + Pods/Headers/SSKeychain/SSKeychainQuery.h | 1 + Pods/Manifest.lock | 10 + Pods/Pods-SSKeychain-Private.xcconfig | 5 + Pods/Pods-SSKeychain-dummy.m | 5 + Pods/Pods-SSKeychain-prefix.pch | 5 + Pods/Pods-SSKeychain.xcconfig | 1 + Pods/Pods-acknowledgements.markdown | 27 + Pods/Pods-acknowledgements.plist | 57 + Pods/Pods-dummy.m | 5 + Pods/Pods-environment.h | 14 + Pods/Pods-resources.sh | 68 ++ Pods/Pods.xcconfig | 5 + Pods/Pods.xcodeproj/project.pbxproj | 1070 ++++++++++++++++ .../xcschemes/Pods-SSKeychain.xcscheme | 59 + .../xcschemes/Pods.xcscheme | 59 + .../xcschemes/xcschememanagement.plist | 32 + Pods/SSKeychain/LICENSE | 20 + Pods/SSKeychain/Readme.markdown | 71 ++ Pods/SSKeychain/SSKeychain/SSKeychain.h | 161 +++ Pods/SSKeychain/SSKeychain/SSKeychain.m | 94 ++ Pods/SSKeychain/SSKeychain/SSKeychainQuery.h | 133 ++ Pods/SSKeychain/SSKeychain/SSKeychainQuery.m | 282 +++++ README.md | 22 + Tado.xcodeproj/project.pbxproj | 1086 +++++++++++++++++ .../contents.xcworkspacedata | 7 + .../UserInterfaceState.xcuserstate | Bin 0 -> 13370 bytes .../xcschemes/Tado.xcscheme | 96 ++ .../xcschemes/xcschememanagement.plist | 27 + Tado.xcworkspace/contents.xcworkspacedata | 1 + .../UserInterfaceState.xcuserstate | Bin 0 -> 13793 bytes Tado/AppDelegate.h | 16 + Tado/AppDelegate.m | 121 ++ Tado/Base.lproj/MainMenu.xib | 741 +++++++++++ .../AppIcon.appiconset/Contents.json | 68 ++ .../AppIcon.appiconset/icon_128x128.png | Bin 0 -> 7797 bytes .../AppIcon.appiconset/icon_128x128@2x.png | Bin 0 -> 17592 bytes .../AppIcon.appiconset/icon_16x16.png | Bin 0 -> 711 bytes .../AppIcon.appiconset/icon_16x16@2x.png | Bin 0 -> 1563 bytes .../AppIcon.appiconset/icon_256x256.png | Bin 0 -> 17584 bytes .../AppIcon.appiconset/icon_256x256@2x.png | Bin 0 -> 41577 bytes .../AppIcon.appiconset/icon_32x32.png | Bin 0 -> 1563 bytes .../AppIcon.appiconset/icon_32x32@2x.png | Bin 0 -> 3290 bytes .../AppIcon.appiconset/icon_512x512.png | Bin 0 -> 41589 bytes .../AppIcon.appiconset/icon_512x512@2x.png | Bin 0 -> 88425 bytes Tado/Tado-Info.plist | 36 + Tado/Tado-Prefix.pch | 9 + Tado/en.lproj/Credits.rtf | 29 + Tado/en.lproj/InfoPlist.strings | 2 + Tado/main.m | 14 + TadoTests/TadoTests-Info.plist | 22 + TadoTests/TadoTests.m | 34 + TadoTests/en.lproj/InfoPlist.strings | 2 + 57 files changed, 4532 insertions(+) create mode 100644 Podfile create mode 100644 Podfile.lock create mode 120000 Pods/BuildHeaders/SSKeychain/SSKeychain.h create mode 120000 Pods/BuildHeaders/SSKeychain/SSKeychainQuery.h create mode 120000 Pods/Headers/SSKeychain/SSKeychain.h create mode 120000 Pods/Headers/SSKeychain/SSKeychainQuery.h create mode 100644 Pods/Manifest.lock create mode 100644 Pods/Pods-SSKeychain-Private.xcconfig create mode 100644 Pods/Pods-SSKeychain-dummy.m create mode 100644 Pods/Pods-SSKeychain-prefix.pch create mode 100644 Pods/Pods-SSKeychain.xcconfig create mode 100644 Pods/Pods-acknowledgements.markdown create mode 100644 Pods/Pods-acknowledgements.plist create mode 100644 Pods/Pods-dummy.m create mode 100644 Pods/Pods-environment.h create mode 100755 Pods/Pods-resources.sh create mode 100644 Pods/Pods.xcconfig create mode 100644 Pods/Pods.xcodeproj/project.pbxproj create mode 100644 Pods/Pods.xcodeproj/xcuserdata/rdougan.xcuserdatad/xcschemes/Pods-SSKeychain.xcscheme create mode 100644 Pods/Pods.xcodeproj/xcuserdata/rdougan.xcuserdatad/xcschemes/Pods.xcscheme create mode 100644 Pods/Pods.xcodeproj/xcuserdata/rdougan.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 Pods/SSKeychain/LICENSE create mode 100644 Pods/SSKeychain/Readme.markdown create mode 100644 Pods/SSKeychain/SSKeychain/SSKeychain.h create mode 100644 Pods/SSKeychain/SSKeychain/SSKeychain.m create mode 100644 Pods/SSKeychain/SSKeychain/SSKeychainQuery.h create mode 100644 Pods/SSKeychain/SSKeychain/SSKeychainQuery.m create mode 100644 README.md create mode 100644 Tado.xcodeproj/project.pbxproj create mode 100644 Tado.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 Tado.xcodeproj/project.xcworkspace/xcuserdata/rdougan.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 Tado.xcodeproj/xcuserdata/rdougan.xcuserdatad/xcschemes/Tado.xcscheme create mode 100644 Tado.xcodeproj/xcuserdata/rdougan.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 Tado.xcworkspace/contents.xcworkspacedata create mode 100644 Tado.xcworkspace/xcuserdata/rdougan.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 Tado/AppDelegate.h create mode 100644 Tado/AppDelegate.m create mode 100644 Tado/Base.lproj/MainMenu.xib create mode 100644 Tado/Images.xcassets/AppIcon.appiconset/Contents.json create mode 100644 Tado/Images.xcassets/AppIcon.appiconset/icon_128x128.png create mode 100644 Tado/Images.xcassets/AppIcon.appiconset/icon_128x128@2x.png create mode 100644 Tado/Images.xcassets/AppIcon.appiconset/icon_16x16.png create mode 100644 Tado/Images.xcassets/AppIcon.appiconset/icon_16x16@2x.png create mode 100644 Tado/Images.xcassets/AppIcon.appiconset/icon_256x256.png create mode 100644 Tado/Images.xcassets/AppIcon.appiconset/icon_256x256@2x.png create mode 100644 Tado/Images.xcassets/AppIcon.appiconset/icon_32x32.png create mode 100644 Tado/Images.xcassets/AppIcon.appiconset/icon_32x32@2x.png create mode 100644 Tado/Images.xcassets/AppIcon.appiconset/icon_512x512.png create mode 100644 Tado/Images.xcassets/AppIcon.appiconset/icon_512x512@2x.png create mode 100644 Tado/Tado-Info.plist create mode 100644 Tado/Tado-Prefix.pch create mode 100644 Tado/en.lproj/Credits.rtf create mode 100644 Tado/en.lproj/InfoPlist.strings create mode 100644 Tado/main.m create mode 100644 TadoTests/TadoTests-Info.plist create mode 100644 TadoTests/TadoTests.m create mode 100644 TadoTests/en.lproj/InfoPlist.strings diff --git a/Podfile b/Podfile new file mode 100644 index 0000000..8428e8d --- /dev/null +++ b/Podfile @@ -0,0 +1,2 @@ +platform :osx, '10.9' +pod 'SSKeychain' \ No newline at end of file diff --git a/Podfile.lock b/Podfile.lock new file mode 100644 index 0000000..570b748 --- /dev/null +++ b/Podfile.lock @@ -0,0 +1,10 @@ +PODS: + - SSKeychain (1.2.2) + +DEPENDENCIES: + - SSKeychain + +SPEC CHECKSUMS: + SSKeychain: cc48bd3ad24fcd9125adb9e0d23dd50b8bbd08b9 + +COCOAPODS: 0.33.1 diff --git a/Pods/BuildHeaders/SSKeychain/SSKeychain.h b/Pods/BuildHeaders/SSKeychain/SSKeychain.h new file mode 120000 index 0000000..e29ede6 --- /dev/null +++ b/Pods/BuildHeaders/SSKeychain/SSKeychain.h @@ -0,0 +1 @@ +../../SSKeychain/SSKeychain/SSKeychain.h \ No newline at end of file diff --git a/Pods/BuildHeaders/SSKeychain/SSKeychainQuery.h b/Pods/BuildHeaders/SSKeychain/SSKeychainQuery.h new file mode 120000 index 0000000..588528f --- /dev/null +++ b/Pods/BuildHeaders/SSKeychain/SSKeychainQuery.h @@ -0,0 +1 @@ +../../SSKeychain/SSKeychain/SSKeychainQuery.h \ No newline at end of file diff --git a/Pods/Headers/SSKeychain/SSKeychain.h b/Pods/Headers/SSKeychain/SSKeychain.h new file mode 120000 index 0000000..e29ede6 --- /dev/null +++ b/Pods/Headers/SSKeychain/SSKeychain.h @@ -0,0 +1 @@ +../../SSKeychain/SSKeychain/SSKeychain.h \ No newline at end of file diff --git a/Pods/Headers/SSKeychain/SSKeychainQuery.h b/Pods/Headers/SSKeychain/SSKeychainQuery.h new file mode 120000 index 0000000..588528f --- /dev/null +++ b/Pods/Headers/SSKeychain/SSKeychainQuery.h @@ -0,0 +1 @@ +../../SSKeychain/SSKeychain/SSKeychainQuery.h \ No newline at end of file diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock new file mode 100644 index 0000000..570b748 --- /dev/null +++ b/Pods/Manifest.lock @@ -0,0 +1,10 @@ +PODS: + - SSKeychain (1.2.2) + +DEPENDENCIES: + - SSKeychain + +SPEC CHECKSUMS: + SSKeychain: cc48bd3ad24fcd9125adb9e0d23dd50b8bbd08b9 + +COCOAPODS: 0.33.1 diff --git a/Pods/Pods-SSKeychain-Private.xcconfig b/Pods/Pods-SSKeychain-Private.xcconfig new file mode 100644 index 0000000..86ab340 --- /dev/null +++ b/Pods/Pods-SSKeychain-Private.xcconfig @@ -0,0 +1,5 @@ +#include "Pods-SSKeychain.xcconfig" +GCC_PREPROCESSOR_DEFINITIONS = COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/BuildHeaders" "${PODS_ROOT}/BuildHeaders/SSKeychain" "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/SSKeychain" +OTHER_LDFLAGS = -ObjC ${PODS_SSKEYCHAIN_OTHER_LDFLAGS} +PODS_ROOT = ${SRCROOT} \ No newline at end of file diff --git a/Pods/Pods-SSKeychain-dummy.m b/Pods/Pods-SSKeychain-dummy.m new file mode 100644 index 0000000..e80bea6 --- /dev/null +++ b/Pods/Pods-SSKeychain-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_SSKeychain : NSObject +@end +@implementation PodsDummy_Pods_SSKeychain +@end diff --git a/Pods/Pods-SSKeychain-prefix.pch b/Pods/Pods-SSKeychain-prefix.pch new file mode 100644 index 0000000..2e9257c --- /dev/null +++ b/Pods/Pods-SSKeychain-prefix.pch @@ -0,0 +1,5 @@ +#ifdef __OBJC__ +#import +#endif + +#import "Pods-environment.h" diff --git a/Pods/Pods-SSKeychain.xcconfig b/Pods/Pods-SSKeychain.xcconfig new file mode 100644 index 0000000..4aa77fe --- /dev/null +++ b/Pods/Pods-SSKeychain.xcconfig @@ -0,0 +1 @@ +PODS_SSKEYCHAIN_OTHER_LDFLAGS = -framework Foundation -framework Security \ No newline at end of file diff --git a/Pods/Pods-acknowledgements.markdown b/Pods/Pods-acknowledgements.markdown new file mode 100644 index 0000000..40ada16 --- /dev/null +++ b/Pods/Pods-acknowledgements.markdown @@ -0,0 +1,27 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## SSKeychain + +Copyright (c) 2010-2014 Sam Soffes, http://soff.es + +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 - http://cocoapods.org diff --git a/Pods/Pods-acknowledgements.plist b/Pods/Pods-acknowledgements.plist new file mode 100644 index 0000000..99a2b95 --- /dev/null +++ b/Pods/Pods-acknowledgements.plist @@ -0,0 +1,57 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + Copyright (c) 2010-2014 Sam Soffes, http://soff.es + +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. + + Title + SSKeychain + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - http://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/Pods/Pods-dummy.m b/Pods/Pods-dummy.m new file mode 100644 index 0000000..ade64bd --- /dev/null +++ b/Pods/Pods-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods : NSObject +@end +@implementation PodsDummy_Pods +@end diff --git a/Pods/Pods-environment.h b/Pods/Pods-environment.h new file mode 100644 index 0000000..32fded8 --- /dev/null +++ b/Pods/Pods-environment.h @@ -0,0 +1,14 @@ + +// To check if a library is compiled with CocoaPods you +// can use the `COCOAPODS` macro definition which is +// defined in the xcconfigs so it is available in +// headers also when they are imported in the client +// project. + + +// SSKeychain +#define COCOAPODS_POD_AVAILABLE_SSKeychain +#define COCOAPODS_VERSION_MAJOR_SSKeychain 1 +#define COCOAPODS_VERSION_MINOR_SSKeychain 2 +#define COCOAPODS_VERSION_PATCH_SSKeychain 2 + diff --git a/Pods/Pods-resources.sh b/Pods/Pods-resources.sh new file mode 100755 index 0000000..39c2549 --- /dev/null +++ b/Pods/Pods-resources.sh @@ -0,0 +1,68 @@ +#!/bin/sh +set -e + +RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt +> "$RESOURCES_TO_COPY" + +install_resource() +{ + case $1 in + *.storyboard) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc ${PODS_ROOT}/$1 --sdk ${SDKROOT}" + ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" + ;; + *.xib) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib ${PODS_ROOT}/$1 --sdk ${SDKROOT}" + ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" + ;; + *.framework) + echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "rsync -av ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + rsync -av "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + ;; + *.xcdatamodel) + echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1"`.mom\"" + xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodel`.mom" + ;; + *.xcdatamodeld) + echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd\"" + xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd" + ;; + *.xcassets) + ;; + /*) + echo "$1" + echo "$1" >> "$RESOURCES_TO_COPY" + ;; + *) + echo "${PODS_ROOT}/$1" + echo "${PODS_ROOT}/$1" >> "$RESOURCES_TO_COPY" + ;; + esac +} + +rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +if [[ "${ACTION}" == "install" ]]; then + rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +fi +rm -f "$RESOURCES_TO_COPY" + +if [[ -n "${WRAPPER_EXTENSION}" ]] && [ `xcrun --find actool` ] && [ `find . -name '*.xcassets' | wc -l` -ne 0 ] +then + case "${TARGETED_DEVICE_FAMILY}" in + 1,2) + TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" + ;; + 1) + TARGET_DEVICE_ARGS="--target-device iphone" + ;; + 2) + TARGET_DEVICE_ARGS="--target-device ipad" + ;; + *) + TARGET_DEVICE_ARGS="--target-device mac" + ;; + esac + find "${PWD}" -name "*.xcassets" -print0 | xargs -0 actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${IPHONEOS_DEPLOYMENT_TARGET}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +fi diff --git a/Pods/Pods.xcconfig b/Pods/Pods.xcconfig new file mode 100644 index 0000000..0b1c505 --- /dev/null +++ b/Pods/Pods.xcconfig @@ -0,0 +1,5 @@ +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/SSKeychain" +OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers" -isystem "${PODS_ROOT}/Headers/SSKeychain" +OTHER_LDFLAGS = -ObjC -framework Foundation -framework Security +PODS_ROOT = ${SRCROOT}/Pods \ No newline at end of file diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj new file mode 100644 index 0000000..189d048 --- /dev/null +++ b/Pods/Pods.xcodeproj/project.pbxproj @@ -0,0 +1,1070 @@ + + + + + archiveVersion + 1 + classes + + objectVersion + 46 + objects + + 037E645E51414480B35672E4 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + name + SSKeychainQuery.m + path + SSKeychain/SSKeychainQuery.m + sourceTree + <group> + + 03A0AC9D78014D54A23E90D2 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text + path + Pods-acknowledgements.markdown + sourceTree + <group> + + 040797A47CAB45728345D784 + + baseConfigurationReference + 794B81678E5546B7BC30B8BB + buildSettings + + ALWAYS_SEARCH_USER_PATHS + NO + COMBINE_HIDPI_IMAGES + YES + COPY_PHASE_STRIP + YES + DEBUG_INFORMATION_FORMAT + dwarf-with-dsym + DSTROOT + /tmp/xcodeproj.dst + GCC_C_LANGUAGE_STANDARD + gnu99 + GCC_ENABLE_OBJC_EXCEPTIONS + YES + GCC_PRECOMPILE_PREFIX_HEADER + YES + GCC_PREFIX_HEADER + Pods-SSKeychain-prefix.pch + GCC_VERSION + com.apple.compilers.llvm.clang.1_0 + INSTALL_PATH + $(BUILT_PRODUCTS_DIR) + MACOSX_DEPLOYMENT_TARGET + 10.9 + OTHER_CFLAGS + + -DNS_BLOCK_ASSERTIONS=1 + $(inherited) + + OTHER_CPLUSPLUSFLAGS + + -DNS_BLOCK_ASSERTIONS=1 + $(inherited) + + OTHER_LDFLAGS + + PRODUCT_NAME + $(TARGET_NAME) + SDKROOT + macosx + SKIP_INSTALL + YES + + isa + XCBuildConfiguration + name + Release + + 09081E03A474404F99E27C3B + + fileRef + 3AA3C551ED0B44818D8A3EC9 + isa + PBXBuildFile + + 1B5CC0C4EEAC4B55997B4A98 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text + name + Podfile + path + ../Podfile + sourceTree + SOURCE_ROOT + xcLanguageSpecificationIdentifier + xcode.lang.ruby + + 2575A39894D843E48932D6D4 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.script.sh + path + Pods-resources.sh + sourceTree + <group> + + 285ECC318E334026B4471578 + + explicitFileType + archive.ar + includeInIndex + 0 + isa + PBXFileReference + path + libPods.a + sourceTree + BUILT_PRODUCTS_DIR + + 2F36FA23206B475683C5A503 + + isa + PBXFileReference + lastKnownFileType + wrapper.framework + name + Cocoa.framework + path + Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/Cocoa.framework + sourceTree + DEVELOPER_DIR + + 2FE52B77808B43BC8F54F253 + + baseConfigurationReference + CE7965FCDC99487A93764CC5 + buildSettings + + ALWAYS_SEARCH_USER_PATHS + NO + COMBINE_HIDPI_IMAGES + YES + COPY_PHASE_STRIP + NO + DSTROOT + /tmp/xcodeproj.dst + GCC_C_LANGUAGE_STANDARD + gnu99 + GCC_DYNAMIC_NO_PIC + NO + GCC_ENABLE_OBJC_EXCEPTIONS + YES + GCC_OPTIMIZATION_LEVEL + 0 + GCC_PRECOMPILE_PREFIX_HEADER + YES + GCC_PREPROCESSOR_DEFINITIONS + + DEBUG=1 + $(inherited) + + GCC_SYMBOLS_PRIVATE_EXTERN + NO + GCC_VERSION + com.apple.compilers.llvm.clang.1_0 + INSTALL_PATH + $(BUILT_PRODUCTS_DIR) + MACOSX_DEPLOYMENT_TARGET + 10.9 + OTHER_LDFLAGS + + PRODUCT_NAME + $(TARGET_NAME) + SDKROOT + macosx + SKIP_INSTALL + YES + + isa + XCBuildConfiguration + name + Debug + + 32B2ED4BB56B424C9DA1057E + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + path + Pods-environment.h + sourceTree + <group> + + 38575FA34E434565BDAB8DE2 + + buildSettings + + ALWAYS_SEARCH_USER_PATHS + NO + CLANG_CXX_LANGUAGE_STANDARD + gnu++0x + CLANG_CXX_LIBRARY + libc++ + CLANG_ENABLE_MODULES + YES + CLANG_ENABLE_OBJC_ARC + NO + CLANG_WARN_BOOL_CONVERSION + YES + CLANG_WARN_CONSTANT_CONVERSION + YES + CLANG_WARN_DIRECT_OBJC_ISA_USAGE + YES + CLANG_WARN_EMPTY_BODY + YES + CLANG_WARN_ENUM_CONVERSION + YES + CLANG_WARN_INT_CONVERSION + YES + CLANG_WARN_OBJC_ROOT_CLASS + YES + COPY_PHASE_STRIP + NO + ENABLE_NS_ASSERTIONS + NO + GCC_C_LANGUAGE_STANDARD + gnu99 + GCC_WARN_64_TO_32_BIT_CONVERSION + YES + GCC_WARN_ABOUT_RETURN_TYPE + YES + GCC_WARN_UNDECLARED_SELECTOR + YES + GCC_WARN_UNINITIALIZED_AUTOS + YES + GCC_WARN_UNUSED_FUNCTION + YES + GCC_WARN_UNUSED_VARIABLE + YES + MACOSX_DEPLOYMENT_TARGET + 10.9 + STRIP_INSTALLED_PRODUCT + NO + VALIDATE_PRODUCT + YES + + isa + XCBuildConfiguration + name + Release + + 38EBD0CE7FB54455856C60E6 + + children + + 2F36FA23206B475683C5A503 + 72DFA8CC25584AEAA22B8B1C + 44B438426834499583DC63AB + + isa + PBXGroup + name + OS X + sourceTree + <group> + + 3AA3C551ED0B44818D8A3EC9 + + explicitFileType + archive.ar + includeInIndex + 0 + isa + PBXFileReference + path + libPods-SSKeychain.a + sourceTree + BUILT_PRODUCTS_DIR + + 3EE54875C21A4C89AD9E8E80 + + buildSettings + + ALWAYS_SEARCH_USER_PATHS + NO + CLANG_CXX_LANGUAGE_STANDARD + gnu++0x + CLANG_CXX_LIBRARY + libc++ + CLANG_ENABLE_MODULES + YES + CLANG_ENABLE_OBJC_ARC + NO + CLANG_WARN_BOOL_CONVERSION + YES + CLANG_WARN_CONSTANT_CONVERSION + YES + CLANG_WARN_DIRECT_OBJC_ISA_USAGE + YES + CLANG_WARN_EMPTY_BODY + YES + CLANG_WARN_ENUM_CONVERSION + YES + CLANG_WARN_INT_CONVERSION + YES + CLANG_WARN_OBJC_ROOT_CLASS + YES + COPY_PHASE_STRIP + YES + GCC_C_LANGUAGE_STANDARD + gnu99 + GCC_DYNAMIC_NO_PIC + NO + GCC_OPTIMIZATION_LEVEL + 0 + GCC_PREPROCESSOR_DEFINITIONS + + DEBUG=1 + $(inherited) + + GCC_SYMBOLS_PRIVATE_EXTERN + NO + GCC_WARN_64_TO_32_BIT_CONVERSION + YES + GCC_WARN_ABOUT_RETURN_TYPE + YES + GCC_WARN_UNDECLARED_SELECTOR + YES + GCC_WARN_UNINITIALIZED_AUTOS + YES + GCC_WARN_UNUSED_FUNCTION + YES + GCC_WARN_UNUSED_VARIABLE + YES + MACOSX_DEPLOYMENT_TARGET + 10.9 + ONLY_ACTIVE_ARCH + YES + STRIP_INSTALLED_PRODUCT + NO + + isa + XCBuildConfiguration + name + Debug + + 43E9D01DEC1447FB8BF1947C + + children + + 7856AC246FB54A10AF746530 + + isa + PBXGroup + name + Pods + sourceTree + <group> + + 44B438426834499583DC63AB + + isa + PBXFileReference + lastKnownFileType + wrapper.framework + name + Security.framework + path + Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/Security.framework + sourceTree + DEVELOPER_DIR + + 4B754CA14930448B8459C006 + + fileRef + B39D7894EE424DB087E29C8D + isa + PBXBuildFile + + 4CD89A493D01440A85ACDADB + + fileRef + 037E645E51414480B35672E4 + isa + PBXBuildFile + settings + + COMPILER_FLAGS + -fobjc-arc -DOS_OBJECT_USE_OBJC=0 + + + 4DB4378F88644FEC980F82BD + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + name + SSKeychain.m + path + SSKeychain/SSKeychain.m + sourceTree + <group> + + 50938D8A997740D7BEFA05D8 + + buildActionMask + 2147483647 + files + + 4B754CA14930448B8459C006 + 9B299DBFD8EE4EDC9A75B49F + + isa + PBXHeadersBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + 5DA64FE435E44FE39912140F + + attributes + + LastUpgradeCheck + 0510 + + buildConfigurationList + BA069C4B2B8840B3AC49BF75 + compatibilityVersion + Xcode 3.2 + developmentRegion + English + hasScannedForEncodings + 0 + isa + PBXProject + knownRegions + + en + + mainGroup + 9ECD4670923E4F0C802D5C83 + productRefGroup + 5EB9817AE7974BF8B94B1CEA + projectDirPath + + projectReferences + + projectRoot + + targets + + 6712BC97D9834E638B2C493F + 70FAC04579594ABC8BE98FA3 + + + 5EB9817AE7974BF8B94B1CEA + + children + + 285ECC318E334026B4471578 + 3AA3C551ED0B44818D8A3EC9 + + isa + PBXGroup + name + Products + sourceTree + <group> + + 6712BC97D9834E638B2C493F + + buildConfigurationList + E2D5486BDEFD465083F807B2 + buildPhases + + 6983E931D59341DC913C752A + 82FC372BE73E40A9B5CDC600 + + buildRules + + dependencies + + C75A0EC71D6B43838A011079 + + isa + PBXNativeTarget + name + Pods + productName + Pods + productReference + 285ECC318E334026B4471578 + productType + com.apple.product-type.library.static + + 6983E931D59341DC913C752A + + buildActionMask + 2147483647 + files + + 8E7FB561046443A69BF1A00B + + isa + PBXSourcesBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + 6A8966906865446899F5E9E2 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + path + Pods-SSKeychain-dummy.m + sourceTree + <group> + + 6BF0C14CD58C4FFDBC7AD679 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + path + Pods-dummy.m + sourceTree + <group> + + 6C08F108207A427B8E0AA993 + + fileRef + 44B438426834499583DC63AB + isa + PBXBuildFile + + 6DDD9EA500C94B1099BEC8CA + + children + + F7BE1890FE5F466FBE2B90C1 + + isa + PBXGroup + name + Targets Support Files + sourceTree + <group> + + 70FAC04579594ABC8BE98FA3 + + buildConfigurationList + 71EF20229C614B28B5A04CFB + buildPhases + + C2F0E28BC8C94A22869E38F6 + A168E2FACA3B48D6BA9C2C19 + 50938D8A997740D7BEFA05D8 + + buildRules + + dependencies + + isa + PBXNativeTarget + name + Pods-SSKeychain + productName + Pods-SSKeychain + productReference + 3AA3C551ED0B44818D8A3EC9 + productType + com.apple.product-type.library.static + + 71EF20229C614B28B5A04CFB + + buildConfigurations + + AF343173690342808E1DDAFD + 040797A47CAB45728345D784 + + defaultConfigurationIsVisible + 0 + defaultConfigurationName + Release + isa + XCConfigurationList + + 72DFA8CC25584AEAA22B8B1C + + isa + PBXFileReference + lastKnownFileType + wrapper.framework + name + Foundation.framework + path + Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/Foundation.framework + sourceTree + DEVELOPER_DIR + + 7856AC246FB54A10AF746530 + + children + + B39D7894EE424DB087E29C8D + 4DB4378F88644FEC980F82BD + D4A67B82C6DA42F0BE7A4CA9 + 037E645E51414480B35672E4 + 948C68B6065B4225A30853AA + + isa + PBXGroup + name + SSKeychain + path + SSKeychain + sourceTree + <group> + + 794B81678E5546B7BC30B8BB + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.xcconfig + path + Pods-SSKeychain-Private.xcconfig + sourceTree + <group> + + 82FC372BE73E40A9B5CDC600 + + buildActionMask + 2147483647 + files + + F65FA3618A07421B859C3D62 + 09081E03A474404F99E27C3B + + isa + PBXFrameworksBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + 8D560C128D42442D807105D9 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.plist.xml + path + Pods-acknowledgements.plist + sourceTree + <group> + + 8E7FB561046443A69BF1A00B + + fileRef + 6BF0C14CD58C4FFDBC7AD679 + isa + PBXBuildFile + + 948C68B6065B4225A30853AA + + children + + 96099E6C1B0947A7B5706F8A + 794B81678E5546B7BC30B8BB + 6A8966906865446899F5E9E2 + C4012953F5274F5A97007A89 + + isa + PBXGroup + name + Support Files + sourceTree + SOURCE_ROOT + + 96099E6C1B0947A7B5706F8A + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.xcconfig + path + Pods-SSKeychain.xcconfig + sourceTree + <group> + + 9B299DBFD8EE4EDC9A75B49F + + fileRef + D4A67B82C6DA42F0BE7A4CA9 + isa + PBXBuildFile + + 9ECD4670923E4F0C802D5C83 + + children + + 1B5CC0C4EEAC4B55997B4A98 + B21328B9B7CA48109C554AEC + 43E9D01DEC1447FB8BF1947C + 5EB9817AE7974BF8B94B1CEA + 6DDD9EA500C94B1099BEC8CA + + isa + PBXGroup + sourceTree + <group> + + A168E2FACA3B48D6BA9C2C19 + + buildActionMask + 2147483647 + files + + CC61CD34F986428F9DB2C73A + FB60ED26D2A74F5F8B23F1BC + 6C08F108207A427B8E0AA993 + + isa + PBXFrameworksBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + AF343173690342808E1DDAFD + + baseConfigurationReference + 794B81678E5546B7BC30B8BB + buildSettings + + ALWAYS_SEARCH_USER_PATHS + NO + COMBINE_HIDPI_IMAGES + YES + COPY_PHASE_STRIP + NO + DSTROOT + /tmp/xcodeproj.dst + GCC_C_LANGUAGE_STANDARD + gnu99 + GCC_DYNAMIC_NO_PIC + NO + GCC_ENABLE_OBJC_EXCEPTIONS + YES + GCC_OPTIMIZATION_LEVEL + 0 + GCC_PRECOMPILE_PREFIX_HEADER + YES + GCC_PREFIX_HEADER + Pods-SSKeychain-prefix.pch + GCC_PREPROCESSOR_DEFINITIONS + + DEBUG=1 + $(inherited) + + GCC_SYMBOLS_PRIVATE_EXTERN + NO + GCC_VERSION + com.apple.compilers.llvm.clang.1_0 + INSTALL_PATH + $(BUILT_PRODUCTS_DIR) + MACOSX_DEPLOYMENT_TARGET + 10.9 + OTHER_LDFLAGS + + PRODUCT_NAME + $(TARGET_NAME) + SDKROOT + macosx + SKIP_INSTALL + YES + + isa + XCBuildConfiguration + name + Debug + + B21328B9B7CA48109C554AEC + + children + + 38EBD0CE7FB54455856C60E6 + + isa + PBXGroup + name + Frameworks + sourceTree + <group> + + B39D7894EE424DB087E29C8D + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + name + SSKeychain.h + path + SSKeychain/SSKeychain.h + sourceTree + <group> + + BA069C4B2B8840B3AC49BF75 + + buildConfigurations + + 3EE54875C21A4C89AD9E8E80 + 38575FA34E434565BDAB8DE2 + + defaultConfigurationIsVisible + 0 + defaultConfigurationName + Release + isa + XCConfigurationList + + BE5A8A33B13844239F77FAF8 + + fileRef + 4DB4378F88644FEC980F82BD + isa + PBXBuildFile + settings + + COMPILER_FLAGS + -fobjc-arc -DOS_OBJECT_USE_OBJC=0 + + + C2F0E28BC8C94A22869E38F6 + + buildActionMask + 2147483647 + files + + FA4BEABA36EB4FEAAA1DADEE + BE5A8A33B13844239F77FAF8 + 4CD89A493D01440A85ACDADB + + isa + PBXSourcesBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + C35B184B6151434CA6C5F804 + + baseConfigurationReference + CE7965FCDC99487A93764CC5 + buildSettings + + ALWAYS_SEARCH_USER_PATHS + NO + COMBINE_HIDPI_IMAGES + YES + COPY_PHASE_STRIP + YES + DEBUG_INFORMATION_FORMAT + dwarf-with-dsym + DSTROOT + /tmp/xcodeproj.dst + GCC_C_LANGUAGE_STANDARD + gnu99 + GCC_ENABLE_OBJC_EXCEPTIONS + YES + GCC_PRECOMPILE_PREFIX_HEADER + YES + GCC_VERSION + com.apple.compilers.llvm.clang.1_0 + INSTALL_PATH + $(BUILT_PRODUCTS_DIR) + MACOSX_DEPLOYMENT_TARGET + 10.9 + OTHER_CFLAGS + + -DNS_BLOCK_ASSERTIONS=1 + $(inherited) + + OTHER_CPLUSPLUSFLAGS + + -DNS_BLOCK_ASSERTIONS=1 + $(inherited) + + OTHER_LDFLAGS + + PRODUCT_NAME + $(TARGET_NAME) + SDKROOT + macosx + SKIP_INSTALL + YES + + isa + XCBuildConfiguration + name + Release + + C4012953F5274F5A97007A89 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + path + Pods-SSKeychain-prefix.pch + sourceTree + <group> + + C75A0EC71D6B43838A011079 + + isa + PBXTargetDependency + target + 70FAC04579594ABC8BE98FA3 + targetProxy + D57C5446B94A486DA76E6B8D + + CC61CD34F986428F9DB2C73A + + fileRef + 2F36FA23206B475683C5A503 + isa + PBXBuildFile + + CE7965FCDC99487A93764CC5 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.xcconfig + path + Pods.xcconfig + sourceTree + <group> + + D4A67B82C6DA42F0BE7A4CA9 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + name + SSKeychainQuery.h + path + SSKeychain/SSKeychainQuery.h + sourceTree + <group> + + D57C5446B94A486DA76E6B8D + + containerPortal + 5DA64FE435E44FE39912140F + isa + PBXContainerItemProxy + proxyType + 1 + remoteGlobalIDString + 70FAC04579594ABC8BE98FA3 + remoteInfo + Pods-SSKeychain + + E2D5486BDEFD465083F807B2 + + buildConfigurations + + 2FE52B77808B43BC8F54F253 + C35B184B6151434CA6C5F804 + + defaultConfigurationIsVisible + 0 + defaultConfigurationName + Release + isa + XCConfigurationList + + F65FA3618A07421B859C3D62 + + fileRef + 2F36FA23206B475683C5A503 + isa + PBXBuildFile + + F7BE1890FE5F466FBE2B90C1 + + children + + CE7965FCDC99487A93764CC5 + 03A0AC9D78014D54A23E90D2 + 8D560C128D42442D807105D9 + 6BF0C14CD58C4FFDBC7AD679 + 32B2ED4BB56B424C9DA1057E + 2575A39894D843E48932D6D4 + + isa + PBXGroup + name + Pods + sourceTree + <group> + + FA4BEABA36EB4FEAAA1DADEE + + fileRef + 6A8966906865446899F5E9E2 + isa + PBXBuildFile + + FB60ED26D2A74F5F8B23F1BC + + fileRef + 72DFA8CC25584AEAA22B8B1C + isa + PBXBuildFile + + + rootObject + 5DA64FE435E44FE39912140F + + diff --git a/Pods/Pods.xcodeproj/xcuserdata/rdougan.xcuserdatad/xcschemes/Pods-SSKeychain.xcscheme b/Pods/Pods.xcodeproj/xcuserdata/rdougan.xcuserdatad/xcschemes/Pods-SSKeychain.xcscheme new file mode 100644 index 0000000..d747dcc --- /dev/null +++ b/Pods/Pods.xcodeproj/xcuserdata/rdougan.xcuserdatad/xcschemes/Pods-SSKeychain.xcscheme @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Pods/Pods.xcodeproj/xcuserdata/rdougan.xcuserdatad/xcschemes/Pods.xcscheme b/Pods/Pods.xcodeproj/xcuserdata/rdougan.xcuserdatad/xcschemes/Pods.xcscheme new file mode 100644 index 0000000..73c7824 --- /dev/null +++ b/Pods/Pods.xcodeproj/xcuserdata/rdougan.xcuserdatad/xcschemes/Pods.xcscheme @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Pods/Pods.xcodeproj/xcuserdata/rdougan.xcuserdatad/xcschemes/xcschememanagement.plist b/Pods/Pods.xcodeproj/xcuserdata/rdougan.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..818eb2a --- /dev/null +++ b/Pods/Pods.xcodeproj/xcuserdata/rdougan.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,32 @@ + + + + + SchemeUserState + + Pods-SSKeychain.xcscheme + + isShown + + + Pods.xcscheme + + isShown + + + + SuppressBuildableAutocreation + + 6712BC97D9834E638B2C493F + + primary + + + 70FAC04579594ABC8BE98FA3 + + primary + + + + + diff --git a/Pods/SSKeychain/LICENSE b/Pods/SSKeychain/LICENSE new file mode 100644 index 0000000..2ed16bd --- /dev/null +++ b/Pods/SSKeychain/LICENSE @@ -0,0 +1,20 @@ +Copyright (c) 2010-2014 Sam Soffes, http://soff.es + +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/Pods/SSKeychain/Readme.markdown b/Pods/SSKeychain/Readme.markdown new file mode 100644 index 0000000..c39ba8e --- /dev/null +++ b/Pods/SSKeychain/Readme.markdown @@ -0,0 +1,71 @@ +# SSKeychain + +SSKeychain is a simple wrapper for accessing accounts, getting passwords, setting passwords, and deleting passwords using the system Keychain on Mac OS X and iOS. + +## Adding to Your Project + +Simply add the following to your Podfile if you're using CocoaPods: + +``` ruby +pod 'SSKeychain' +``` + +To manually add to your project: + +1. Add `Security.framework` to your target +2. Add `SSKeychain.h`, `SSKeychain.m`, `SSKeychainQuery.h`, and `SSKeychainQuery.m` to your project. + +SSKeychain requires ARC. + +Note: Currently SSKeychain does not support Mac OS 10.6. + +## Working with the Keychain + +SSKeychain has the following class methods for working with the system keychain: + +```objective-c ++ (NSArray *)allAccounts; ++ (NSArray *)accountsForService:(NSString *)serviceName; ++ (NSString *)passwordForService:(NSString *)serviceName account:(NSString *)account; ++ (BOOL)deletePasswordForService:(NSString *)serviceName account:(NSString *)account; ++ (BOOL)setPassword:(NSString *)password forService:(NSString *)serviceName account:(NSString *)account; +``` + +Easy as that. (See [SSKeychain.h](https://github.com/soffes/sskeychain/blob/master/SSKeychain/SSKeychain.h) and [SSKeychainQuery.h](https://github.com/soffes/sskeychain/blob/master/SSKeychain/SSKeychainQuery.h) for all of the methods.) + +## Documentation + +### Use prepared documentation + +Read the [online documentation](http://cocoadocs.org/docsets/SSKeychain/1.2.1/). + +## Debugging + +If your saving to the keychain fails, use the NSError object to handle it. You can invoke `[error code]` to get the numeric error code. A few values are defined in SSKeychain.h, and the rest in SecBase.h. + +```objective-c +NSError *error = nil; +SSKeychainQuery *query = [[SSKeychainQuery alloc] init]; +query.service = @"MyService"; +query.account = @"soffes"; +[query fetch:&error]; + +if ([error code] == errSecItemNotFound) { + NSLog(@"Password not found"); +} else if (error != nil) { + NSLog(@"Some other error occurred: %@", [error localizedDescription]); +} +``` + +Obviously, you should do something more sophisticated. You can just call `[error localizedDescription]` if all you need is the error message. + +## Disclaimer + +Working with the keychain is pretty sucky. You should really check for errors and failures. This library doesn't make it any more stable, it just wraps up all of the annoying C APIs. + + +## Thanks + +This was originally inspired by EMKeychain and SDKeychain (both of which are now gone). Thanks to the authors. SSKeychain has since switched to a simpler implementation that was abstracted from [SSToolkit](http://sstoolk.it). + +A huge thanks to [Caleb Davenport](https://github.com/calebd) for leading the way on version 1.0 of SSKeychain. diff --git a/Pods/SSKeychain/SSKeychain/SSKeychain.h b/Pods/SSKeychain/SSKeychain/SSKeychain.h new file mode 100644 index 0000000..3fcb2de --- /dev/null +++ b/Pods/SSKeychain/SSKeychain/SSKeychain.h @@ -0,0 +1,161 @@ +// +// SSKeychain.h +// SSKeychain +// +// Created by Sam Soffes on 5/19/10. +// Copyright (c) 2010-2014 Sam Soffes. All rights reserved. +// + +#import "SSKeychainQuery.h" + +/** + Error code specific to SSKeychain that can be returned in NSError objects. + For codes returned by the operating system, refer to SecBase.h for your + platform. + */ +typedef NS_ENUM(OSStatus, SSKeychainErrorCode) { + /** Some of the arguments were invalid. */ + SSKeychainErrorBadArguments = -1001, +}; + +/** SSKeychain error domain */ +extern NSString *const kSSKeychainErrorDomain; + +/** Account name. */ +extern NSString *const kSSKeychainAccountKey; + +/** + Time the item was created. + + The value will be a string. + */ +extern NSString *const kSSKeychainCreatedAtKey; + +/** Item class. */ +extern NSString *const kSSKeychainClassKey; + +/** Item description. */ +extern NSString *const kSSKeychainDescriptionKey; + +/** Item label. */ +extern NSString *const kSSKeychainLabelKey; + +/** Time the item was last modified. + + The value will be a string. + */ +extern NSString *const kSSKeychainLastModifiedKey; + +/** Where the item was created. */ +extern NSString *const kSSKeychainWhereKey; + +/** + Simple wrapper for accessing accounts, getting passwords, setting passwords, and deleting passwords using the system + Keychain on Mac OS X and iOS. + + This was originally inspired by EMKeychain and SDKeychain (both of which are now gone). Thanks to the authors. + SSKeychain has since switched to a simpler implementation that was abstracted from [SSToolkit](http://sstoolk.it). + */ +@interface SSKeychain : NSObject + +#pragma mark - Classic methods + +/** + Returns a string containing the password for a given account and service, or `nil` if the Keychain doesn't have a + password for the given parameters. + + @param serviceName The service for which to return the corresponding password. + + @param account The account for which to return the corresponding password. + + @return Returns a string containing the password for a given account and service, or `nil` if the Keychain doesn't + have a password for the given parameters. + */ ++ (NSString *)passwordForService:(NSString *)serviceName account:(NSString *)account; ++ (NSString *)passwordForService:(NSString *)serviceName account:(NSString *)account error:(NSError **)error; + + +/** + Deletes a password from the Keychain. + + @param serviceName The service for which to delete the corresponding password. + + @param account The account for which to delete the corresponding password. + + @return Returns `YES` on success, or `NO` on failure. + */ ++ (BOOL)deletePasswordForService:(NSString *)serviceName account:(NSString *)account; ++ (BOOL)deletePasswordForService:(NSString *)serviceName account:(NSString *)account error:(NSError **)error; + + +/** + Sets a password in the Keychain. + + @param password The password to store in the Keychain. + + @param serviceName The service for which to set the corresponding password. + + @param account The account for which to set the corresponding password. + + @return Returns `YES` on success, or `NO` on failure. + */ ++ (BOOL)setPassword:(NSString *)password forService:(NSString *)serviceName account:(NSString *)account; ++ (BOOL)setPassword:(NSString *)password forService:(NSString *)serviceName account:(NSString *)account error:(NSError **)error; + + +/** + Returns an array containing the Keychain's accounts, or `nil` if the Keychain has no accounts. + + See the `NSString` constants declared in SSKeychain.h for a list of keys that can be used when accessing the + dictionaries returned by this method. + + @return An array of dictionaries containing the Keychain's accounts, or `nil` if the Keychain doesn't have any + accounts. The order of the objects in the array isn't defined. + */ ++ (NSArray *)allAccounts; + + +/** + Returns an array containing the Keychain's accounts for a given service, or `nil` if the Keychain doesn't have any + accounts for the given service. + + See the `NSString` constants declared in SSKeychain.h for a list of keys that can be used when accessing the + dictionaries returned by this method. + + @param serviceName The service for which to return the corresponding accounts. + + @return An array of dictionaries containing the Keychain's accountsfor a given `serviceName`, or `nil` if the Keychain + doesn't have any accounts for the given `serviceName`. The order of the objects in the array isn't defined. + */ ++ (NSArray *)accountsForService:(NSString *)serviceName; + + +#pragma mark - Configuration + +#if __IPHONE_4_0 && TARGET_OS_IPHONE +/** + Returns the accessibility type for all future passwords saved to the Keychain. + + @return Returns the accessibility type. + + The return value will be `NULL` or one of the "Keychain Item Accessibility + Constants" used for determining when a keychain item should be readable. + + @see setAccessibilityType + */ ++ (CFTypeRef)accessibilityType; + +/** + Sets the accessibility type for all future passwords saved to the Keychain. + + @param accessibilityType One of the "Keychain Item Accessibility Constants" + used for determining when a keychain item should be readable. + + If the value is `NULL` (the default), the Keychain default will be used. + + @see accessibilityType + */ ++ (void)setAccessibilityType:(CFTypeRef)accessibilityType; +#endif + +@end diff --git a/Pods/SSKeychain/SSKeychain/SSKeychain.m b/Pods/SSKeychain/SSKeychain/SSKeychain.m new file mode 100644 index 0000000..36337ba --- /dev/null +++ b/Pods/SSKeychain/SSKeychain/SSKeychain.m @@ -0,0 +1,94 @@ +// +// SSKeychain.m +// SSKeychain +// +// Created by Sam Soffes on 5/19/10. +// Copyright (c) 2010-2014 Sam Soffes. All rights reserved. +// + +#import "SSKeychain.h" + +NSString *const kSSKeychainErrorDomain = @"com.samsoffes.sskeychain"; +NSString *const kSSKeychainAccountKey = @"acct"; +NSString *const kSSKeychainCreatedAtKey = @"cdat"; +NSString *const kSSKeychainClassKey = @"labl"; +NSString *const kSSKeychainDescriptionKey = @"desc"; +NSString *const kSSKeychainLabelKey = @"labl"; +NSString *const kSSKeychainLastModifiedKey = @"mdat"; +NSString *const kSSKeychainWhereKey = @"svce"; + +#if __IPHONE_4_0 && TARGET_OS_IPHONE + static CFTypeRef SSKeychainAccessibilityType = NULL; +#endif + +@implementation SSKeychain + ++ (NSString *)passwordForService:(NSString *)serviceName account:(NSString *)account { + return [self passwordForService:serviceName account:account error:nil]; +} + + ++ (NSString *)passwordForService:(NSString *)serviceName account:(NSString *)account error:(NSError *__autoreleasing *)error { + SSKeychainQuery *query = [[SSKeychainQuery alloc] init]; + query.service = serviceName; + query.account = account; + [query fetch:error]; + return query.password; +} + + ++ (BOOL)deletePasswordForService:(NSString *)serviceName account:(NSString *)account { + return [self deletePasswordForService:serviceName account:account error:nil]; +} + + ++ (BOOL)deletePasswordForService:(NSString *)serviceName account:(NSString *)account error:(NSError *__autoreleasing *)error { + SSKeychainQuery *query = [[SSKeychainQuery alloc] init]; + query.service = serviceName; + query.account = account; + return [query deleteItem:error]; +} + + ++ (BOOL)setPassword:(NSString *)password forService:(NSString *)serviceName account:(NSString *)account { + return [self setPassword:password forService:serviceName account:account error:nil]; +} + + ++ (BOOL)setPassword:(NSString *)password forService:(NSString *)serviceName account:(NSString *)account error:(NSError *__autoreleasing *)error { + SSKeychainQuery *query = [[SSKeychainQuery alloc] init]; + query.service = serviceName; + query.account = account; + query.password = password; + return [query save:error]; +} + + ++ (NSArray *)allAccounts { + return [self accountsForService:nil]; +} + + ++ (NSArray *)accountsForService:(NSString *)serviceName { + SSKeychainQuery *query = [[SSKeychainQuery alloc] init]; + query.service = serviceName; + return [query fetchAll:nil]; +} + + +#if __IPHONE_4_0 && TARGET_OS_IPHONE ++ (CFTypeRef)accessibilityType { + return SSKeychainAccessibilityType; +} + + ++ (void)setAccessibilityType:(CFTypeRef)accessibilityType { + CFRetain(accessibilityType); + if (SSKeychainAccessibilityType) { + CFRelease(SSKeychainAccessibilityType); + } + SSKeychainAccessibilityType = accessibilityType; +} +#endif + +@end diff --git a/Pods/SSKeychain/SSKeychain/SSKeychainQuery.h b/Pods/SSKeychain/SSKeychain/SSKeychainQuery.h new file mode 100644 index 0000000..436e2fd --- /dev/null +++ b/Pods/SSKeychain/SSKeychain/SSKeychainQuery.h @@ -0,0 +1,133 @@ +// +// SSKeychainQuery.h +// SSKeychain +// +// Created by Caleb Davenport on 3/19/13. +// Copyright (c) 2013-2014 Sam Soffes. All rights reserved. +// + +#import +#import + +#if __IPHONE_7_0 || __MAC_10_9 + // Keychain synchronization available at compile time + #define SSKEYCHAIN_SYNCHRONIZATION_AVAILABLE 1 +#endif + +#ifdef SSKEYCHAIN_SYNCHRONIZATION_AVAILABLE +typedef NS_ENUM(NSUInteger, SSKeychainQuerySynchronizationMode) { + SSKeychainQuerySynchronizationModeAny, + SSKeychainQuerySynchronizationModeNo, + SSKeychainQuerySynchronizationModeYes +}; +#endif + +/** + Simple interface for querying or modifying keychain items. + */ +@interface SSKeychainQuery : NSObject + +/** kSecAttrAccount */ +@property (nonatomic, copy) NSString *account; + +/** kSecAttrService */ +@property (nonatomic, copy) NSString *service; + +/** kSecAttrLabel */ +@property (nonatomic, copy) NSString *label; + +#if __IPHONE_3_0 && TARGET_OS_IPHONE +/** kSecAttrAccessGroup (only used on iOS) */ +@property (nonatomic, copy) NSString *accessGroup; +#endif + +#ifdef SSKEYCHAIN_SYNCHRONIZATION_AVAILABLE +/** kSecAttrSynchronizable */ +@property (nonatomic) SSKeychainQuerySynchronizationMode synchronizationMode; +#endif + +/** Root storage for password information */ +@property (nonatomic, copy) NSData *passwordData; + +/** + This property automatically transitions between an object and the value of + `passwordData` using NSKeyedArchiver and NSKeyedUnarchiver. + */ +@property (nonatomic, copy) id passwordObject; + +/** + Convenience accessor for setting and getting a password string. Passes through + to `passwordData` using UTF-8 string encoding. + */ +@property (nonatomic, copy) NSString *password; + + +///------------------------ +/// @name Saving & Deleting +///------------------------ + +/** + Save the receiver's attributes as a keychain item. Existing items with the + given account, service, and access group will first be deleted. + + @param error Populated should an error occur. + + @return `YES` if saving was successful, `NO` otherwise. + */ +- (BOOL)save:(NSError **)error; + +/** + Dete keychain items that match the given account, service, and access group. + + @param error Populated should an error occur. + + @return `YES` if saving was successful, `NO` otherwise. + */ +- (BOOL)deleteItem:(NSError **)error; + + +///--------------- +/// @name Fetching +///--------------- + +/** + Fetch all keychain items that match the given account, service, and access + group. The values of `password` and `passwordData` are ignored when fetching. + + @param error Populated should an error occur. + + @return An array of dictionaries that represent all matching keychain items or + `nil` should an error occur. + The order of the items is not determined. + */ +- (NSArray *)fetchAll:(NSError **)error; + +/** + Fetch the keychain item that matches the given account, service, and access + group. The `password` and `passwordData` properties will be populated unless + an error occurs. The values of `password` and `passwordData` are ignored when + fetching. + + @param error Populated should an error occur. + + @return `YES` if fetching was successful, `NO` otherwise. + */ +- (BOOL)fetch:(NSError **)error; + + +///----------------------------- +/// @name Synchronization Status +///----------------------------- + +#ifdef SSKEYCHAIN_SYNCHRONIZATION_AVAILABLE +/** + Returns a boolean indicating if keychain synchronization is available on the device at runtime. The #define + SSKEYCHAIN_SYNCHRONIZATION_AVAILABLE is only for compile time. If you are checking for the presence of synchronization, + you should use this method. + + @return A value indicating if keychain synchronization is available + */ ++ (BOOL)isSynchronizationAvailable; +#endif + +@end diff --git a/Pods/SSKeychain/SSKeychain/SSKeychainQuery.m b/Pods/SSKeychain/SSKeychain/SSKeychainQuery.m new file mode 100644 index 0000000..b93c620 --- /dev/null +++ b/Pods/SSKeychain/SSKeychain/SSKeychainQuery.m @@ -0,0 +1,282 @@ +// +// SSKeychainQuery.m +// SSKeychain +// +// Created by Caleb Davenport on 3/19/13. +// Copyright (c) 2013-2014 Sam Soffes. All rights reserved. +// + +#import "SSKeychainQuery.h" +#import "SSKeychain.h" + +@implementation SSKeychainQuery + +@synthesize account = _account; +@synthesize service = _service; +@synthesize label = _label; +@synthesize passwordData = _passwordData; + +#if __IPHONE_3_0 && TARGET_OS_IPHONE +@synthesize accessGroup = _accessGroup; +#endif + +#ifdef SSKEYCHAIN_SYNCHRONIZATION_AVAILABLE +@synthesize synchronizationMode = _synchronizationMode; +#endif + +#pragma mark - Public + +- (BOOL)save:(NSError *__autoreleasing *)error { + OSStatus status = SSKeychainErrorBadArguments; + if (!self.service || !self.account || !self.passwordData) { + if (error) { + *error = [[self class] errorWithCode:status]; + } + return NO; + } + + [self deleteItem:nil]; + + NSMutableDictionary *query = [self query]; + [query setObject:self.passwordData forKey:(__bridge id)kSecValueData]; + if (self.label) { + [query setObject:self.label forKey:(__bridge id)kSecAttrLabel]; + } +#if __IPHONE_4_0 && TARGET_OS_IPHONE + CFTypeRef accessibilityType = [SSKeychain accessibilityType]; + if (accessibilityType) { + [query setObject:(__bridge id)accessibilityType forKey:(__bridge id)kSecAttrAccessible]; + } +#endif + status = SecItemAdd((__bridge CFDictionaryRef)query, NULL); + + if (status != errSecSuccess && error != NULL) { + *error = [[self class] errorWithCode:status]; + } + + return (status == errSecSuccess); +} + + +- (BOOL)deleteItem:(NSError *__autoreleasing *)error { + OSStatus status = SSKeychainErrorBadArguments; + if (!self.service || !self.account) { + if (error) { + *error = [[self class] errorWithCode:status]; + } + return NO; + } + + NSMutableDictionary *query = [self query]; +#if TARGET_OS_IPHONE + status = SecItemDelete((__bridge CFDictionaryRef)query); +#else + CFTypeRef result = NULL; + [query setObject:@YES forKey:(__bridge id)kSecReturnRef]; + status = SecItemCopyMatching((__bridge CFDictionaryRef)query, &result); + if (status == errSecSuccess) { + status = SecKeychainItemDelete((SecKeychainItemRef)result); + CFRelease(result); + } +#endif + + if (status != errSecSuccess && error != NULL) { + *error = [[self class] errorWithCode:status]; + } + + return (status == errSecSuccess); +} + + +- (NSArray *)fetchAll:(NSError *__autoreleasing *)error { + OSStatus status = SSKeychainErrorBadArguments; + NSMutableDictionary *query = [self query]; + [query setObject:@YES forKey:(__bridge id)kSecReturnAttributes]; + [query setObject:(__bridge id)kSecMatchLimitAll forKey:(__bridge id)kSecMatchLimit]; + + CFTypeRef result = NULL; + status = SecItemCopyMatching((__bridge CFDictionaryRef)query, &result); + if (status != errSecSuccess && error != NULL) { + *error = [[self class] errorWithCode:status]; + return nil; + } + + return (__bridge_transfer NSArray *)result; +} + + +- (BOOL)fetch:(NSError *__autoreleasing *)error { + OSStatus status = SSKeychainErrorBadArguments; + if (!self.service || !self.account) { + if (error) { + *error = [[self class] errorWithCode:status]; + } + return NO; + } + + CFTypeRef result = NULL; + NSMutableDictionary *query = [self query]; + [query setObject:@YES forKey:(__bridge id)kSecReturnData]; + [query setObject:(__bridge id)kSecMatchLimitOne forKey:(__bridge id)kSecMatchLimit]; + status = SecItemCopyMatching((__bridge CFDictionaryRef)query, &result); + + if (status != errSecSuccess && error != NULL) { + *error = [[self class] errorWithCode:status]; + return NO; + } + + self.passwordData = (__bridge_transfer NSData *)result; + return YES; +} + + +#pragma mark - Accessors + +- (void)setPasswordObject:(id)object { + self.passwordData = [NSKeyedArchiver archivedDataWithRootObject:object]; +} + + +- (id)passwordObject { + if ([self.passwordData length]) { + return [NSKeyedUnarchiver unarchiveObjectWithData:self.passwordData]; + } + return nil; +} + + +- (void)setPassword:(NSString *)password { + self.passwordData = [password dataUsingEncoding:NSUTF8StringEncoding]; +} + + +- (NSString *)password { + if ([self.passwordData length]) { + return [[NSString alloc] initWithData:self.passwordData encoding:NSUTF8StringEncoding]; + } + return nil; +} + + +#pragma mark - Synchronization Status + +#ifdef SSKEYCHAIN_SYNCHRONIZATION_AVAILABLE ++ (BOOL)isSynchronizationAvailable { +#if TARGET_OS_IPHONE + // Apple suggested way to check for 7.0 at runtime + // https://developer.apple.com/library/ios/documentation/userexperience/conceptual/transitionguide/SupportingEarlieriOS.html + return floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1; +#else + return floor(NSFoundationVersionNumber) > NSFoundationVersionNumber10_8_4; +#endif +} +#endif + + +#pragma mark - Private + +- (NSMutableDictionary *)query { + NSMutableDictionary *dictionary = [NSMutableDictionary dictionaryWithCapacity:3]; + [dictionary setObject:(__bridge id)kSecClassGenericPassword forKey:(__bridge id)kSecClass]; + + if (self.service) { + [dictionary setObject:self.service forKey:(__bridge id)kSecAttrService]; + } + + if (self.account) { + [dictionary setObject:self.account forKey:(__bridge id)kSecAttrAccount]; + } + +#if __IPHONE_3_0 && TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + if (self.accessGroup) { + [dictionary setObject:self.accessGroup forKey:(__bridge id)kSecAttrAccessGroup]; + } +#endif + +#ifdef SSKEYCHAIN_SYNCHRONIZATION_AVAILABLE + if ([[self class] isSynchronizationAvailable]) { + id value; + + switch (self.synchronizationMode) { + case SSKeychainQuerySynchronizationModeNo: { + value = @NO; + break; + } + case SSKeychainQuerySynchronizationModeYes: { + value = @YES; + break; + } + case SSKeychainQuerySynchronizationModeAny: { + value = (__bridge id)(kSecAttrSynchronizableAny); + break; + } + } + + [dictionary setObject:value forKey:(__bridge id)(kSecAttrSynchronizable)]; + } +#endif + + return dictionary; +} + + ++ (NSError *)errorWithCode:(OSStatus) code { + NSString *message = nil; + switch (code) { + case errSecSuccess: return nil; + case SSKeychainErrorBadArguments: message = NSLocalizedStringFromTable(@"SSKeychainErrorBadArguments", @"SSKeychain", nil); break; + +#if TARGET_OS_IPHONE + case errSecUnimplemented: { + message = NSLocalizedStringFromTable(@"errSecUnimplemented", @"SSKeychain", nil); + break; + } + case errSecParam: { + message = NSLocalizedStringFromTable(@"errSecParam", @"SSKeychain", nil); + break; + } + case errSecAllocate: { + message = NSLocalizedStringFromTable(@"errSecAllocate", @"SSKeychain", nil); + break; + } + case errSecNotAvailable: { + message = NSLocalizedStringFromTable(@"errSecNotAvailable", @"SSKeychain", nil); + break; + } + case errSecDuplicateItem: { + message = NSLocalizedStringFromTable(@"errSecDuplicateItem", @"SSKeychain", nil); + break; + } + case errSecItemNotFound: { + message = NSLocalizedStringFromTable(@"errSecItemNotFound", @"SSKeychain", nil); + break; + } + case errSecInteractionNotAllowed: { + message = NSLocalizedStringFromTable(@"errSecInteractionNotAllowed", @"SSKeychain", nil); + break; + } + case errSecDecode: { + message = NSLocalizedStringFromTable(@"errSecDecode", @"SSKeychain", nil); + break; + } + case errSecAuthFailed: { + message = NSLocalizedStringFromTable(@"errSecAuthFailed", @"SSKeychain", nil); + break; + } + default: { + message = NSLocalizedStringFromTable(@"errSecDefault", @"SSKeychain", nil); + } +#else + default: + message = (__bridge_transfer NSString *)SecCopyErrorMessageString(code, NULL); +#endif + } + + NSDictionary *userInfo = nil; + if (message) { + userInfo = @{ NSLocalizedDescriptionKey : message }; + } + return [NSError errorWithDomain:kSSKeychainErrorDomain code:code userInfo:userInfo]; +} + +@end diff --git a/README.md b/README.md new file mode 100644 index 0000000..30a48ef --- /dev/null +++ b/README.md @@ -0,0 +1,22 @@ +# Tado for OSX + +A simple application to show the current temperature of your [Tado](http://www.tado.com/de-en/) heating device in the OSX status bar. + +## How it works + +It is rather simple. On first load, the application will ask you for your username and password your Tado device (these are what you use to login to `my.tado.com`). It then saves those details in the keychain and starts fetching the Tado API every 5 minutes for the latest temperature. + +The temperature is displayed in the OSX status bar: + +![Screenshot](http://i.imgur.com/mnZdAHm.png) + +## Usage + +- Download and run the application +- Login +- Add the application to your login items (System Preferences > Users & Groups > Login Items) + +## Thanks + +- [SSKeychain](https://github.com/soffes/sskeychain) +- [Mac App Icon Template](http://blog.dfilimonov.com/2013/07/08/mac-app-icon-template-for-photoshop.html) \ No newline at end of file diff --git a/Tado.xcodeproj/project.pbxproj b/Tado.xcodeproj/project.pbxproj new file mode 100644 index 0000000..db082ff --- /dev/null +++ b/Tado.xcodeproj/project.pbxproj @@ -0,0 +1,1086 @@ + + + + + archiveVersion + 1 + classes + + objectVersion + 46 + objects + + 4A7276C2260D4F3D941932D0 + + buildActionMask + 2147483647 + files + + inputPaths + + isa + PBXShellScriptBuildPhase + name + Copy Pods Resources + outputPaths + + runOnlyForDeploymentPostprocessing + 0 + shellPath + /bin/sh + shellScript + "${SRCROOT}/Pods/Pods-resources.sh" + + showEnvVarsInLog + 0 + + 509694EBC6994F24B0710150 + + explicitFileType + archive.ar + includeInIndex + 0 + isa + PBXFileReference + path + libPods.a + sourceTree + BUILT_PRODUCTS_DIR + + 60F3F43D1978240B000A72AE + + children + + 60F3F44F1978240C000A72AE + 60F3F46D1978240C000A72AE + 60F3F4481978240C000A72AE + 60F3F4471978240C000A72AE + DAD04D69278B422FA8A2CDE4 + + isa + PBXGroup + sourceTree + <group> + + 60F3F43E1978240B000A72AE + + attributes + + LastUpgradeCheck + 0510 + ORGANIZATIONNAME + Robert Dougan + TargetAttributes + + 60F3F4661978240C000A72AE + + TestTargetID + 60F3F4451978240B000A72AE + + + + buildConfigurationList + 60F3F4411978240B000A72AE + compatibilityVersion + Xcode 3.2 + developmentRegion + English + hasScannedForEncodings + 0 + isa + PBXProject + knownRegions + + en + Base + + mainGroup + 60F3F43D1978240B000A72AE + productRefGroup + 60F3F4471978240C000A72AE + projectDirPath + + projectReferences + + projectRoot + + targets + + 60F3F4451978240B000A72AE + 60F3F4661978240C000A72AE + + + 60F3F4411978240B000A72AE + + buildConfigurations + + 60F3F4751978240C000A72AE + 60F3F4761978240C000A72AE + + defaultConfigurationIsVisible + 0 + defaultConfigurationName + Release + isa + XCConfigurationList + + 60F3F4421978240B000A72AE + + buildActionMask + 2147483647 + files + + 60F3F45D1978240C000A72AE + 60F3F4561978240C000A72AE + + isa + PBXSourcesBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + 60F3F4431978240B000A72AE + + buildActionMask + 2147483647 + files + + 60F3F44A1978240C000A72AE + 70CB8C7BEBFC485F998D8501 + + isa + PBXFrameworksBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + 60F3F4441978240B000A72AE + + buildActionMask + 2147483647 + files + + 60F3F4541978240C000A72AE + 60F3F4621978240C000A72AE + 60F3F45A1978240C000A72AE + 60F3F4601978240C000A72AE + + isa + PBXResourcesBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + 60F3F4451978240B000A72AE + + buildConfigurationList + 60F3F4771978240C000A72AE + buildPhases + + 73A4F64B53B145E49C230408 + 60F3F4421978240B000A72AE + 60F3F4431978240B000A72AE + 60F3F4441978240B000A72AE + 4A7276C2260D4F3D941932D0 + + buildRules + + dependencies + + isa + PBXNativeTarget + name + Tado + productName + Tado + productReference + 60F3F4461978240C000A72AE + productType + com.apple.product-type.application + + 60F3F4461978240C000A72AE + + explicitFileType + wrapper.application + includeInIndex + 0 + isa + PBXFileReference + path + Tado.app + sourceTree + BUILT_PRODUCTS_DIR + + 60F3F4471978240C000A72AE + + children + + 60F3F4461978240C000A72AE + 60F3F4671978240C000A72AE + + isa + PBXGroup + name + Products + sourceTree + <group> + + 60F3F4481978240C000A72AE + + children + + 60F3F4491978240C000A72AE + 60F3F4681978240C000A72AE + 60F3F44B1978240C000A72AE + 509694EBC6994F24B0710150 + + isa + PBXGroup + name + Frameworks + sourceTree + <group> + + 60F3F4491978240C000A72AE + + isa + PBXFileReference + lastKnownFileType + wrapper.framework + name + Cocoa.framework + path + System/Library/Frameworks/Cocoa.framework + sourceTree + SDKROOT + + 60F3F44A1978240C000A72AE + + fileRef + 60F3F4491978240C000A72AE + isa + PBXBuildFile + + 60F3F44B1978240C000A72AE + + children + + 60F3F44C1978240C000A72AE + 60F3F44D1978240C000A72AE + 60F3F44E1978240C000A72AE + + isa + PBXGroup + name + Other Frameworks + sourceTree + <group> + + 60F3F44C1978240C000A72AE + + isa + PBXFileReference + lastKnownFileType + wrapper.framework + name + AppKit.framework + path + System/Library/Frameworks/AppKit.framework + sourceTree + SDKROOT + + 60F3F44D1978240C000A72AE + + isa + PBXFileReference + lastKnownFileType + wrapper.framework + name + CoreData.framework + path + System/Library/Frameworks/CoreData.framework + sourceTree + SDKROOT + + 60F3F44E1978240C000A72AE + + isa + PBXFileReference + lastKnownFileType + wrapper.framework + name + Foundation.framework + path + System/Library/Frameworks/Foundation.framework + sourceTree + SDKROOT + + 60F3F44F1978240C000A72AE + + children + + 60F3F45B1978240C000A72AE + 60F3F45C1978240C000A72AE + 60F3F45E1978240C000A72AE + 60F3F4611978240C000A72AE + 60F3F4501978240C000A72AE + + isa + PBXGroup + path + Tado + sourceTree + <group> + + 60F3F4501978240C000A72AE + + children + + 60F3F4511978240C000A72AE + 60F3F4521978240C000A72AE + 60F3F4551978240C000A72AE + 60F3F4571978240C000A72AE + 60F3F4581978240C000A72AE + + isa + PBXGroup + name + Supporting Files + sourceTree + <group> + + 60F3F4511978240C000A72AE + + isa + PBXFileReference + lastKnownFileType + text.plist.xml + path + Tado-Info.plist + sourceTree + <group> + + 60F3F4521978240C000A72AE + + children + + 60F3F4531978240C000A72AE + + isa + PBXVariantGroup + name + InfoPlist.strings + sourceTree + <group> + + 60F3F4531978240C000A72AE + + isa + PBXFileReference + lastKnownFileType + text.plist.strings + name + en + path + en.lproj/InfoPlist.strings + sourceTree + <group> + + 60F3F4541978240C000A72AE + + fileRef + 60F3F4521978240C000A72AE + isa + PBXBuildFile + + 60F3F4551978240C000A72AE + + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + path + main.m + sourceTree + <group> + + 60F3F4561978240C000A72AE + + fileRef + 60F3F4551978240C000A72AE + isa + PBXBuildFile + + 60F3F4571978240C000A72AE + + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + path + Tado-Prefix.pch + sourceTree + <group> + + 60F3F4581978240C000A72AE + + children + + 60F3F4591978240C000A72AE + + isa + PBXVariantGroup + name + Credits.rtf + sourceTree + <group> + + 60F3F4591978240C000A72AE + + isa + PBXFileReference + lastKnownFileType + text.rtf + name + en + path + en.lproj/Credits.rtf + sourceTree + <group> + + 60F3F45A1978240C000A72AE + + fileRef + 60F3F4581978240C000A72AE + isa + PBXBuildFile + + 60F3F45B1978240C000A72AE + + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + path + AppDelegate.h + sourceTree + <group> + + 60F3F45C1978240C000A72AE + + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + path + AppDelegate.m + sourceTree + <group> + + 60F3F45D1978240C000A72AE + + fileRef + 60F3F45C1978240C000A72AE + isa + PBXBuildFile + + 60F3F45E1978240C000A72AE + + children + + 60F3F45F1978240C000A72AE + + isa + PBXVariantGroup + name + MainMenu.xib + sourceTree + <group> + + 60F3F45F1978240C000A72AE + + isa + PBXFileReference + lastKnownFileType + file.xib + name + Base + path + Base.lproj/MainMenu.xib + sourceTree + <group> + + 60F3F4601978240C000A72AE + + fileRef + 60F3F45E1978240C000A72AE + isa + PBXBuildFile + + 60F3F4611978240C000A72AE + + isa + PBXFileReference + lastKnownFileType + folder.assetcatalog + path + Images.xcassets + sourceTree + <group> + + 60F3F4621978240C000A72AE + + fileRef + 60F3F4611978240C000A72AE + isa + PBXBuildFile + + 60F3F4631978240C000A72AE + + buildActionMask + 2147483647 + files + + 60F3F4741978240C000A72AE + + isa + PBXSourcesBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + 60F3F4641978240C000A72AE + + buildActionMask + 2147483647 + files + + 60F3F46A1978240C000A72AE + 60F3F4691978240C000A72AE + + isa + PBXFrameworksBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + 60F3F4651978240C000A72AE + + buildActionMask + 2147483647 + files + + 60F3F4721978240C000A72AE + + isa + PBXResourcesBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + 60F3F4661978240C000A72AE + + buildConfigurationList + 60F3F47A1978240C000A72AE + buildPhases + + 60F3F4631978240C000A72AE + 60F3F4641978240C000A72AE + 60F3F4651978240C000A72AE + + buildRules + + dependencies + + 60F3F46C1978240C000A72AE + + isa + PBXNativeTarget + name + TadoTests + productName + TadoTests + productReference + 60F3F4671978240C000A72AE + productType + com.apple.product-type.bundle.unit-test + + 60F3F4671978240C000A72AE + + explicitFileType + wrapper.cfbundle + includeInIndex + 0 + isa + PBXFileReference + path + TadoTests.xctest + sourceTree + BUILT_PRODUCTS_DIR + + 60F3F4681978240C000A72AE + + isa + PBXFileReference + lastKnownFileType + wrapper.framework + name + XCTest.framework + path + Library/Frameworks/XCTest.framework + sourceTree + DEVELOPER_DIR + + 60F3F4691978240C000A72AE + + fileRef + 60F3F4681978240C000A72AE + isa + PBXBuildFile + + 60F3F46A1978240C000A72AE + + fileRef + 60F3F4491978240C000A72AE + isa + PBXBuildFile + + 60F3F46B1978240C000A72AE + + containerPortal + 60F3F43E1978240B000A72AE + isa + PBXContainerItemProxy + proxyType + 1 + remoteGlobalIDString + 60F3F4451978240B000A72AE + remoteInfo + Tado + + 60F3F46C1978240C000A72AE + + isa + PBXTargetDependency + target + 60F3F4451978240B000A72AE + targetProxy + 60F3F46B1978240C000A72AE + + 60F3F46D1978240C000A72AE + + children + + 60F3F4731978240C000A72AE + 60F3F46E1978240C000A72AE + + isa + PBXGroup + path + TadoTests + sourceTree + <group> + + 60F3F46E1978240C000A72AE + + children + + 60F3F46F1978240C000A72AE + 60F3F4701978240C000A72AE + + isa + PBXGroup + name + Supporting Files + sourceTree + <group> + + 60F3F46F1978240C000A72AE + + isa + PBXFileReference + lastKnownFileType + text.plist.xml + path + TadoTests-Info.plist + sourceTree + <group> + + 60F3F4701978240C000A72AE + + children + + 60F3F4711978240C000A72AE + + isa + PBXVariantGroup + name + InfoPlist.strings + sourceTree + <group> + + 60F3F4711978240C000A72AE + + isa + PBXFileReference + lastKnownFileType + text.plist.strings + name + en + path + en.lproj/InfoPlist.strings + sourceTree + <group> + + 60F3F4721978240C000A72AE + + fileRef + 60F3F4701978240C000A72AE + isa + PBXBuildFile + + 60F3F4731978240C000A72AE + + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + path + TadoTests.m + sourceTree + <group> + + 60F3F4741978240C000A72AE + + fileRef + 60F3F4731978240C000A72AE + isa + PBXBuildFile + + 60F3F4751978240C000A72AE + + buildSettings + + ALWAYS_SEARCH_USER_PATHS + NO + CLANG_CXX_LANGUAGE_STANDARD + gnu++0x + CLANG_CXX_LIBRARY + libc++ + CLANG_ENABLE_MODULES + YES + CLANG_ENABLE_OBJC_ARC + YES + CLANG_WARN_BOOL_CONVERSION + YES + CLANG_WARN_CONSTANT_CONVERSION + YES + CLANG_WARN_DIRECT_OBJC_ISA_USAGE + YES_ERROR + CLANG_WARN_EMPTY_BODY + YES + CLANG_WARN_ENUM_CONVERSION + YES + CLANG_WARN_INT_CONVERSION + YES + CLANG_WARN_OBJC_ROOT_CLASS + YES_ERROR + CLANG_WARN__DUPLICATE_METHOD_MATCH + YES + COPY_PHASE_STRIP + NO + GCC_C_LANGUAGE_STANDARD + gnu99 + GCC_DYNAMIC_NO_PIC + NO + GCC_ENABLE_OBJC_EXCEPTIONS + YES + GCC_OPTIMIZATION_LEVEL + 0 + GCC_PREPROCESSOR_DEFINITIONS + + DEBUG=1 + $(inherited) + + GCC_SYMBOLS_PRIVATE_EXTERN + NO + 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 + MACOSX_DEPLOYMENT_TARGET + 10.10 + ONLY_ACTIVE_ARCH + YES + SDKROOT + macosx + + isa + XCBuildConfiguration + name + Debug + + 60F3F4761978240C000A72AE + + buildSettings + + ALWAYS_SEARCH_USER_PATHS + NO + CLANG_CXX_LANGUAGE_STANDARD + gnu++0x + CLANG_CXX_LIBRARY + libc++ + CLANG_ENABLE_MODULES + YES + CLANG_ENABLE_OBJC_ARC + YES + CLANG_WARN_BOOL_CONVERSION + YES + CLANG_WARN_CONSTANT_CONVERSION + YES + CLANG_WARN_DIRECT_OBJC_ISA_USAGE + YES_ERROR + CLANG_WARN_EMPTY_BODY + YES + CLANG_WARN_ENUM_CONVERSION + YES + CLANG_WARN_INT_CONVERSION + YES + CLANG_WARN_OBJC_ROOT_CLASS + YES_ERROR + CLANG_WARN__DUPLICATE_METHOD_MATCH + YES + COPY_PHASE_STRIP + YES + DEBUG_INFORMATION_FORMAT + dwarf-with-dsym + ENABLE_NS_ASSERTIONS + NO + GCC_C_LANGUAGE_STANDARD + gnu99 + GCC_ENABLE_OBJC_EXCEPTIONS + YES + 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 + MACOSX_DEPLOYMENT_TARGET + 10.10 + SDKROOT + macosx + + isa + XCBuildConfiguration + name + Release + + 60F3F4771978240C000A72AE + + buildConfigurations + + 60F3F4781978240C000A72AE + 60F3F4791978240C000A72AE + + defaultConfigurationIsVisible + 0 + isa + XCConfigurationList + + 60F3F4781978240C000A72AE + + baseConfigurationReference + DAD04D69278B422FA8A2CDE4 + buildSettings + + ASSETCATALOG_COMPILER_APPICON_NAME + AppIcon + COMBINE_HIDPI_IMAGES + YES + GCC_PRECOMPILE_PREFIX_HEADER + YES + GCC_PREFIX_HEADER + Tado/Tado-Prefix.pch + INFOPLIST_FILE + Tado/Tado-Info.plist + PRODUCT_NAME + $(TARGET_NAME) + WRAPPER_EXTENSION + app + + isa + XCBuildConfiguration + name + Debug + + 60F3F4791978240C000A72AE + + baseConfigurationReference + DAD04D69278B422FA8A2CDE4 + buildSettings + + ASSETCATALOG_COMPILER_APPICON_NAME + AppIcon + COMBINE_HIDPI_IMAGES + YES + GCC_PRECOMPILE_PREFIX_HEADER + YES + GCC_PREFIX_HEADER + Tado/Tado-Prefix.pch + INFOPLIST_FILE + Tado/Tado-Info.plist + PRODUCT_NAME + $(TARGET_NAME) + WRAPPER_EXTENSION + app + + isa + XCBuildConfiguration + name + Release + + 60F3F47A1978240C000A72AE + + buildConfigurations + + 60F3F47B1978240C000A72AE + 60F3F47C1978240C000A72AE + + defaultConfigurationIsVisible + 0 + isa + XCConfigurationList + + 60F3F47B1978240C000A72AE + + buildSettings + + BUNDLE_LOADER + $(BUILT_PRODUCTS_DIR)/Tado.app/Contents/MacOS/Tado + COMBINE_HIDPI_IMAGES + YES + FRAMEWORK_SEARCH_PATHS + + $(DEVELOPER_FRAMEWORKS_DIR) + $(inherited) + + GCC_PRECOMPILE_PREFIX_HEADER + YES + GCC_PREFIX_HEADER + Tado/Tado-Prefix.pch + GCC_PREPROCESSOR_DEFINITIONS + + DEBUG=1 + $(inherited) + + INFOPLIST_FILE + TadoTests/TadoTests-Info.plist + PRODUCT_NAME + $(TARGET_NAME) + TEST_HOST + $(BUNDLE_LOADER) + WRAPPER_EXTENSION + xctest + + isa + XCBuildConfiguration + name + Debug + + 60F3F47C1978240C000A72AE + + buildSettings + + BUNDLE_LOADER + $(BUILT_PRODUCTS_DIR)/Tado.app/Contents/MacOS/Tado + COMBINE_HIDPI_IMAGES + YES + FRAMEWORK_SEARCH_PATHS + + $(DEVELOPER_FRAMEWORKS_DIR) + $(inherited) + + GCC_PRECOMPILE_PREFIX_HEADER + YES + GCC_PREFIX_HEADER + Tado/Tado-Prefix.pch + INFOPLIST_FILE + TadoTests/TadoTests-Info.plist + PRODUCT_NAME + $(TARGET_NAME) + TEST_HOST + $(BUNDLE_LOADER) + WRAPPER_EXTENSION + xctest + + isa + XCBuildConfiguration + name + Release + + 70CB8C7BEBFC485F998D8501 + + fileRef + 509694EBC6994F24B0710150 + isa + PBXBuildFile + + 73A4F64B53B145E49C230408 + + buildActionMask + 2147483647 + files + + inputPaths + + isa + PBXShellScriptBuildPhase + name + Check Pods Manifest.lock + outputPaths + + runOnlyForDeploymentPostprocessing + 0 + shellPath + /bin/sh + shellScript + diff "${PODS_ROOT}/../Podfile.lock" "${PODS_ROOT}/Manifest.lock" > /dev/null +if [[ $? != 0 ]] ; then + cat << EOM +error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation. +EOM + exit 1 +fi + + showEnvVarsInLog + 0 + + DAD04D69278B422FA8A2CDE4 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.xcconfig + name + Pods.xcconfig + path + Pods/Pods.xcconfig + sourceTree + <group> + + + rootObject + 60F3F43E1978240B000A72AE + + diff --git a/Tado.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Tado.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..95e4b70 --- /dev/null +++ b/Tado.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Tado.xcodeproj/project.xcworkspace/xcuserdata/rdougan.xcuserdatad/UserInterfaceState.xcuserstate b/Tado.xcodeproj/project.xcworkspace/xcuserdata/rdougan.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..fc2870440378f2ce2b56cbf429e975ec58c74031 GIT binary patch literal 13370 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 Q5Fz3x*D8Jn{$|ww53G= + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Tado.xcodeproj/xcuserdata/rdougan.xcuserdatad/xcschemes/xcschememanagement.plist b/Tado.xcodeproj/xcuserdata/rdougan.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..b9ad771 --- /dev/null +++ b/Tado.xcodeproj/xcuserdata/rdougan.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,27 @@ + + + + + SchemeUserState + + Tado.xcscheme + + orderHint + 0 + + + SuppressBuildableAutocreation + + 60F3F4451978240B000A72AE + + primary + + + 60F3F4661978240C000A72AE + + primary + + + + + diff --git a/Tado.xcworkspace/contents.xcworkspacedata b/Tado.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..d42cdbd --- /dev/null +++ b/Tado.xcworkspace/contents.xcworkspacedata @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Tado.xcworkspace/xcuserdata/rdougan.xcuserdatad/UserInterfaceState.xcuserstate b/Tado.xcworkspace/xcuserdata/rdougan.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..34096034ef2571d5d611696dd8e82db11b4b81b4 GIT binary patch literal 13793 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 literal 0 HcmV?d00001 diff --git a/Tado/AppDelegate.h b/Tado/AppDelegate.h new file mode 100644 index 0000000..73047c5 --- /dev/null +++ b/Tado/AppDelegate.h @@ -0,0 +1,16 @@ +// +// AppDelegate.h +// Tado +// +// Created by Robert Dougan on 17/07/14. +// Copyright (c) 2014 Robert Dougan. All rights reserved. +// + +#import + +@interface AppDelegate : NSObject + +@property (assign) IBOutlet NSWindow *loginWindow; +@property (strong, nonatomic) NSStatusItem *statusItem; + +@end diff --git a/Tado/AppDelegate.m b/Tado/AppDelegate.m new file mode 100644 index 0000000..3ebf91a --- /dev/null +++ b/Tado/AppDelegate.m @@ -0,0 +1,121 @@ +// +// AppDelegate.m +// Tado +// +// Created by Robert Dougan on 17/07/14. +// Copyright (c) 2014 Robert Dougan. All rights reserved. +// + +#import "AppDelegate.h" + +#import + +@interface AppDelegate () + +@property (nonatomic, weak) IBOutlet NSTextField *usernameField; +@property (nonatomic, weak) IBOutlet NSSecureTextField *passwordField; +@property (nonatomic, weak) IBOutlet NSButton *loginButton; + +@end + +@implementation AppDelegate + +- (void)applicationDidFinishLaunching:(NSNotification *)notification +{ + self.statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength]; + self.statusItem.highlightMode = NO; + + // Check if the user has logged in + if (![self loginDetails]) { + [self.loginWindow makeKeyAndOrderFront:self]; + return; + } + + [self startFetching]; +} + +- (NSDictionary *)loginDetails +{ + NSString *username = [[NSUserDefaults standardUserDefaults] objectForKey:@"username"]; + if (!username) { + return nil; + } + + NSString *password = [SSKeychain passwordForService:@"Tado" account:username]; + if (!password) { + return nil; + } + + return @{ + @"username": username, + @"password": password + }; +} + +- (void)startFetching +{ + [self fetchTemperatue]; + + [NSTimer scheduledTimerWithTimeInterval:60.0f * 5.0f + target:self + selector:@selector(fetchTemperatue) + userInfo:nil + repeats:YES]; +} + +- (void)fetchTemperatue +{ + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{ + NSDictionary *loginDetails = [self loginDetails]; + + NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"https://my.tado.com/mobile/1.3/getCurrentState?username=%@&password=%@", [loginDetails valueForKey:@"username"], [loginDetails valueForKey:@"password"]]]; + NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url + cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData + timeoutInterval:10]; + + NSError *requestError; + NSURLResponse *urlResponse = nil; + NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&requestError]; + + if (requestError) { + return; + } + + NSError *error; + NSDictionary *json = [NSJSONSerialization JSONObjectWithData:response options:kNilOptions error:&error]; + + if (error) { + return; + } + + NSString *temperature = [NSString stringWithFormat:@"%.1f°", [[json valueForKey:@"insideTemp"] floatValue]]; + self.statusItem.title = temperature; + }); +} + +- (IBAction)login:(id)sender +{ + NSString *username = self.usernameField.stringValue; + NSString *password = self.passwordField.stringValue; + + [[NSUserDefaults standardUserDefaults] setObject:username forKey:@"username"]; + [SSKeychain setPassword:password forService:@"Tado" account:username]; + + [self.loginWindow close]; + self.loginWindow = nil; + + [self startFetching]; +} + +#pragma mark - NSTextFieldDelegate + +- (void)controlTextDidChange:(NSNotification *)notification +{ + NSString *username = self.usernameField.stringValue; + NSString *password = self.passwordField.stringValue; + + BOOL disabled = !username || !password || [username isEqualToString:@""] || [password isEqualToString:@""]; + [self.loginButton setEnabled:!disabled]; +} + +@end diff --git a/Tado/Base.lproj/MainMenu.xib b/Tado/Base.lproj/MainMenu.xib new file mode 100644 index 0000000..f4bc754 --- /dev/null +++ b/Tado/Base.lproj/MainMenu.xib @@ -0,0 +1,741 @@ + + + + + + + + + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Default + + + + + + + Left to Right + + + + + + + Right to Left + + + + + + + + + + + Default + + + + + + + Left to Right + + + + + + + Right to Left + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NSAllRomanInputSourcesLocaleIdentifier + + + + + + + + + + + + diff --git a/Tado/Images.xcassets/AppIcon.appiconset/Contents.json b/Tado/Images.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..7cd4f8e --- /dev/null +++ b/Tado/Images.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "images" : [ + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "icon_16x16.png", + "scale" : "1x" + }, + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "icon_16x16@2x.png", + "scale" : "2x" + }, + { + "size" : "32x32", + "idiom" : "mac", + "filename" : "icon_32x32.png", + "scale" : "1x" + }, + { + "size" : "32x32", + "idiom" : "mac", + "filename" : "icon_32x32@2x.png", + "scale" : "2x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "icon_128x128.png", + "scale" : "1x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "icon_128x128@2x.png", + "scale" : "2x" + }, + { + "size" : "256x256", + "idiom" : "mac", + "filename" : "icon_256x256.png", + "scale" : "1x" + }, + { + "size" : "256x256", + "idiom" : "mac", + "filename" : "icon_256x256@2x.png", + "scale" : "2x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "icon_512x512.png", + "scale" : "1x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "icon_512x512@2x.png", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Tado/Images.xcassets/AppIcon.appiconset/icon_128x128.png b/Tado/Images.xcassets/AppIcon.appiconset/icon_128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..27c784e16c50896b2f6c9d5ce723c6ee436e98c0 GIT binary patch literal 7797 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 Hu0mjfQ+3Gd literal 0 HcmV?d00001 diff --git a/Tado/Images.xcassets/AppIcon.appiconset/icon_128x128@2x.png b/Tado/Images.xcassets/AppIcon.appiconset/icon_128x128@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..45227b49a0fa5ae5b452796eaaf97523a353c0c6 GIT binary patch literal 17592 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 literal 0 HcmV?d00001 diff --git a/Tado/Images.xcassets/AppIcon.appiconset/icon_16x16.png b/Tado/Images.xcassets/AppIcon.appiconset/icon_16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..19720900c5c3ce6cb5967c713887b042f04ae33b GIT binary patch literal 711 zcmV;&0yzDNP)U0R*w-gb)J* zE7MyB7G@y^Mn(pPzyBB*e*X;s8nY3iUX*5V>1tS;1JSBm_8iW@mTi?S&Qw=-MUq zV+kl2cx0mFgvs_;!I~;c)P{PASc4H9hgvnoAO{#q^}d)tr`G+c$rWUJQF#ZRBo;?X z{fcscADTM=3l!)6^VT!{r!_h6YfLkO+YWBr3nE0y#`xwgTZ-T!$=&6_JndUpF77N5 zjXCrt{}%(skWv-8b8VzWU1G|r1d-@c=u8DSEy)Pw)xE@P;bA1jEdgB5G&gefGdwpG t(vX#;^TI=z7&yV#0_VF{)4w?XyPjQ?$A zMg$v8h)W{aU9p*&3x+QP(8^5p1d*^oZG?IaD-Q0v!jx!8oRuBd*J}#h=-JhF1}v@$fAN21cDgWj)Q^+KjXz`_#MH=`HS@ndJuI$+1+Vs+gXs+ zLQhSTH2u5dw{jSCW6NaQsadEN%LwM(%_Mqw6+)RoG8PuHVi36=|Q}E^W(J)Ei zE=QK+Vsr5Uadp-Qwj{Nq70(#-4NCFAB4>SR%V9CmTLx569Gl1tQxD5wJn5xU^tJ9u zbmM@J0EAOZ3c@fDooTVXfg9KE{jA)30Z-s5yn>hV0B!_z;l?WnLRCa9opC-%Eh07$ zk|E5?%X=>$FRVfjg(`}$kU5vCC#Wk~mq4&{pPaAC-~j6yfJ7@ay`n7&s*32eW>JG^ zASZjAoP$+Y)&>@_p>D>eW`^WjRjd>yWwn)RWB^pq5%VN?OpWFrBRqkhG)&_+fTB7; z&V9%%Bw+gT9{|1RL5+WOp&9FmWEMNi1HV|KGOYpNPX5RnjX8l0WC)lB z9WXWv?b4!r5{BJ~+ZyM#@fLu!YR73Hh@tktLIquDI0O>n3Q&h5aEx#TPQeXmK_GE~ zNR(WFChbNdlVxmd&u>2p4Jo`k+VQ-2{N8i^4G?>fg>;DV?hcgadnx}~-d}QsM~R2X z07Oj;gj4}$BAk_J0ef1=A|iScfZINRD;;LIfFOtU6JrV&O{#BOySe01%7op1dp%|73@=( z{#3jI(doboMhnQ4UGs_?oM8iXtR>ZPNE8!X33qJ_RsZbr=tpdIeI9`| z8l;$aT7%p*+X*}80ed+IWy_OF3I-Hl6UJ_E@&#Yi0yp`*Hbo=GotJHbI{S6w@@M|; zu-%m5J2&7x>s6IS6JOP&fNeZ(Y={E%Po%U=f9V#rPJP>4lt7 z4X)!Nsqvxq&Cqm8dmrP_)aWm)Rn@g+k3LE~(8m%_*9oV#6C?^#J2@s|H1k4+2jgMb zLD1o|Jv4pAterzRed3Cg z5Zr=1!)JWd{jR6`0t0e>XG|2c? zWp=IPL@-}Xi_oc1f{heZKX7c9_e;LNQxJavH~(IaKLCHM4^eajsqO#( N002ovPDHLkV1mX?&b|Nu literal 0 HcmV?d00001 diff --git a/Tado/Images.xcassets/AppIcon.appiconset/icon_256x256.png b/Tado/Images.xcassets/AppIcon.appiconset/icon_256x256.png new file mode 100644 index 0000000000000000000000000000000000000000..03d667412003f406344c6ad162c9f7ce81063d22 GIT binary patch literal 17584 zcmaHRRaDgvu=Vc*aOguf96F@CIS5kHA>AF)C3)zS5Tr{<5eW$ifde9-(k)#A(j8Lw zzt;Ei-Ix2a*X*_CVdiDl%-)lrt*MNULyZFf0KTe4D&yH;+J#$AEWYp zX5_2q;ouu!?QIXp+j-d7BUE2nJKF2oTidwVZg@R@pxQBiKi*lag-HAY595}NwQ=Oo6&g@ztdO}b?(%ivA=UHSTA4nLCx8tR z`cKp)vYT_liTX&9$AVN*HgkUssD_x{KAH-w5kih%06B`vmF(7)nF5A59%0_(luix_ z&hX1zre`wE=`w_ofiZ(8Vw>mZ0(;J27^i)-(2Gh`SCk3%*m*T9&%1vm>x`}2wF4-| zvc&qrnJabA@Lb)YXD_$(NrgMC9X$Hy!Ihw-a<=@~YL~Of@ptSw&le+8Zpe-E#FqRZ z?+VY`oKZbZUV}z&3b`M5){MCC`90BhEb0{CV|O&10#@EDW>)|Ht^uI@1g>A*YhpZ! z5&A}q3L^tjX{542k1i1<@^h2asOq94`X3lGDN$UOI8SK>> z>WyaH>EH%fJ_cKcjtn*#E?TSzHZMvt5;tLkEg~mLU(GBASP90y7C=aUJqOkQ=|Hgt z%4#Q?CfVG)#bs*&h*eJeA;X_?+`m2OWyO9LtGYw4{j{e%GY*667#XOL!eLn?eG~9I z%^qkV*I(#|vF`6zy$xHgrl7D_;%9xoN643HFlyGxlU2DIOJ0cxJwGUEk3enDZPi`_ zw83TNtiqMWA}lc$D6)eCH~c5_8VyV}o{$o?WJv0!^TYZQBg7+4DJ`^ox!=n6f3da>?Iy&aFOFj#=Gy^ z1aC(7#!`*P&Cv3rO;?s$0cBVl*D5$<=pPLkKe1fe+SJakG%DlYF)|qS1j3~FWnx4S z4Xt+Ts~Ye+7Tii%+}Q`M^iG`s5Aj)NTt!N-%$^dMroD(GauE*Kcu7BpA5c7ohpAV; zR82$FC)oe@^8;G;<*$1jVUN|ewZMnpfwT&DD~+qdGzt{Q2{U!|_JX)6Z)t)|e?q)? zuOTu-S6xBRGYg58lG7%k+Ke6Vh@H13wcVK)B}lnP?cC-~8^4MxpBLY#RJ4H%6Zttf z%V_wU834`-+n^u|Dm9s`Z^0$zT4)losBjG^9u8gH)u`>YCSu2T$Ty{Q=AWzWjdB_( z#X4s1j|7TV7BSC?2Q=Ro>8;ApZW^1xBxlT1!WS(958~oWevIpy1L5F$4;~3kh6)O$^$M;5abuUDD$`t{7C?7&3=)634!1s0B8=A^T&Jd*uh z`dlyK$aDQ7AY`Zyc{*wlnbG}bq9mEU6|?rzSH3(L(q=u0^e?GwIOJu(QDg>=S~o8AxF@OqgLJ``GvysXwxm;?kBoKHv+FFiJ=EjWtU;UzPSK`U}mn! zsLyDd+ikh1VsH|xy8WSm!WYIhKSv~HzfnfZDz$2_q=3mUO`o73Gz(s-fdqN{y0iTY zY#(x~fMr)T=(9qcrA_L{QDdl;1PZPe*)F#2e-5j`2>HS2y%`tD#8zTV%yX9xt-EB> zCT2va)f@hVt$CS+2XK{i_Ydf3|JDCVl#9t8-80OCEr%5cG7Q`lRk}Vy9ezFpZ){c- zA%rH&I0QyNkirX!G>@883X%~ zHU`?!u1$o$$kGNx>98rpIiG-mlH@NM!idx(`i#483wr;LnHG!IE{GVTwbMwZjdp*7 z)QMHG){8vgLVDOGMp~2|lc-1=d!&T=3BVmVxw#k(;av|eWPg(5^vZYR4h$ofdYx1X zc}KN&BcIom()9!f9ql$q#>QHYp>GpGD}P-7JaG0r8)@xxn^S|p&W$Yn2`h~47s{2t zgtxxM+AN$M4d>>Iwekoq zXx46iB-bsh^vEkHeiT&-++NNzS3lV_mTq;<>^3^q=w1(chW*Mf?V?+X_V8w}7}z(L z`^fSPUPmo2Jb^~aq0Y;862>6(7O;3cIH2qTUc8gZhrr97Z+>Mm!K8C`V>VIW*3I$mSh=* zxCwJa4@yfmb;n-z)jX-WIPp*j9xtRwBf-J#UCy1c1Thl(^$+zuDXDewj;Bzmy{;p5 zGc|!OFLs{`^JKmy-rTNA_hDeyb(`1wn22VIc+z2~RFI^$pX-#hy8mzGxwqmMc%#Bb zaHKN>*D@7rGSRQx^{t~QJs*Hr6jj>hPKpKF`sRj>QA!KN!S{6q!_4@w7Uy5L>s_&b zJB{DNIof!(ghvna-~8?u?}{*E2Q5=?Z4ln=;Q97vnlwDKIPMoc>M%aX8mIadkGv76 zBRF_McHKB8F1|k2S5~kP`~++<74Jk&sIQFjzIo4}J~ipP46q$^EX4z{GA{PlDqaRizvmR^5RW~eF`z)#b z;+M2G>8aVYDtC4KSesn!0tHUiR<5{q?T6A7l%t6vp8o@%m9PKNLo$sjuQ!r_y;F=Q zm@1^?Spr9y_@BNHCo8K{qrW8G`6GTy7^ld6Xsb>TRIp(s7Lv}lz`Ie`2t%vut%zLx za_m4bdTZNW8_RV+!%DXJ-TH6AM^iBVuYk0cd%|ywTeSwU7bO%p0tq}8yt$We2#`#% znHu%H=x1))xo))iksCs@`}h3a&&mUIj!vA*AfK!FyI$$$cQ!qE)c01m!#+h3rEn|2 zGGbCmNE72%t}E4`MS2J<#bz1fd@DhRycw2A{p3NpU)ehg_o!Qv&1W;D8LLh+N$=n* z=B^*!^z4+Lys7zPx(b$jRGp({n1>S~B=hHohq&5#^_*z1uz#m{>$?rpNi7vg^tR ziw*bK_BnDh{Q#3_nNUUSroGL||6F6DY>192=u-^jpDJy|;9kphdCjR!M&-WCbly9D z%7w1kOaAZB?G~34^R=aufw3a3h`5n!3~!4P7woaq2pvB25#k=Y`>EnDrnZs!8za2p z1O^fkJRtv^Ui)+o+UKwU=ivnK1uWCjJG@&q8pz*RS^LAF7ooC0xg}kU^p4yQd@{n& zOoSMJmLt`Qfd5<{(laS%Z?_9 ze|ODnXW<5o@=;11#6uV)|G~b>v73^rT{?z0U?NUJned{8$`nCfBPEN%|Mdr~9F(Ij z(mA`TOYJa{sUgIssmy#55zLyD&sYQ9SZK;|h&X)1bThG-6m8Z|YCWm6Dzv@98J1CB zIKWPgx13XS5^^sKJy=m}k=4{9tm=YN*i$?~z&I5S)2e^byks~G#Ky$G7m9VsTuk(S zlj*GBcRncsDPJD{P3nlGWJLNTQ-OOup6RVDSz41pg^L8*zaTmJx#pZqHlbH*ibmnH zL`J~`dtq;Wy+OuE5Ef$UPIJz6|1M&n!RZ8_DC}p8uC}SW2L9)Zo<|FOwAc36Cpj{# ze<70As>3INtZS#WHP6-k$XKkuk13Ap_?z=9`OCX zuI?f)d(pamZ6F2^D+C^K(aY0O^Ew!7xfIOf@#IPk+NG58@@b_0IPc*+eGL13Pl@C| zHI4mLWbr3|VN;4wae4L;s>2O^Yh`<)2zg%!k5QTG{VG+|dFy|5H#C&H6nq$Zs+4zi=W5M38%8Iu5-qx<;#zLApGE{&wM3{TtoqrS-KRe3i?R2$oK znFs&S)vYA$Wfbps7b!R@- zOfPi5r%FwK6qES<)6wfHe6}`i`cNGUpB!jLO8e;jUZ>~s@SYO8HvQ4`XBi#^sr+7> zRe?=V~$bhEW=C91;W>dU1(^)_u%#FeXN~iYtlze{_byQ-n@3Bj7I>$6yqu5<@EBO>uxQFX;VzY!H z>N9DdP`}c8HW9 z<4!14mNN_O`J~&)XO}VU$b9lq;F9LWCnfRR%;c8NM%K6#CdbrwpI5?7r}4^)`N%sh zaydD&ZNWMQ?z&;kuqPT@x za$MdcA6dl5Ah)B|Km|IcwBGo@2L`-&aS*MFANW?gXTmb=-aqGvQSrG133^l!MnioN zTeK?IUb``wl7#r$j9lSwt3s0XLCWd>t_D!*}5nc(=pD7$pb=2Qm(oS+j z4^@k!RpdL(RXVy8Ru2o*gu^}1bM^&JkD(moWvub1Oa<;~*A#(<{@C7_b+iSSVye`7 zci^^twU5}WOF0W_BzfjvMA?lJjAp-}=lec36qU87M&2iQyC0cLX-|o>I_P5?mvCbG zUb)`op{p1xhqvZCJcx4!I?U>ZO?>q23%8HJ88oMhsxR+EQ$Z=kW=wfDs@AQAW-UiM zB>8NTJ=I4Lw1V-g>z*nqNsB+UN+?102?(yPJyT6$^jaQqj#aXzKDG`TV6<7KFxz{e z^*K{_#+)Pcv)A1DozZ+(lNSK1-BQ`1QU6m+5SscUr-Z8wA$A=W(NM5eD|(&DG@!LosofA z#UJ$NE_D1at9V4`UXcGFaQ@!4tBz!GiYQ>FJS2(B{}N1bCFAuj9y>6*RJ~q}M&~er z`I#C^Xn;oC1*bUf8^pUlL)~P0l9Ev)v5p&4Y?5PLr0^$~M7_tZXj8b|i{D#UHemfG zAS#W)t(1V&G!=*a;se+kanfR0Q+E0Et=Sn*0!UN|mvR`j1y?)%0HkImf!||^bF0K< z#;&#(^~8P%PohF3acW=c@$hqg12mG@7_e}eDJkumqK}08JMFWNzuXYCD^IGNXCtB5%G6hdJ?&h9 zwe35Dz{27~wbtdo*u`v8rrgbyHX}udb|LKF^zb(?SWa!$Q$m(6aiT`s@yN`OiIaxh zDZU2LVgV2^noR)la31Aw;`rLJvYX-Zm!Tplz(8;HRpK5wnNy#kf~?w&F#7 z8jPt81+il1!d^B!w;;lxz#h`NG6J=M)_ue?`;Az<4M{aw{uXIO7#mL2fb|~dQ%;wzA9#w4Yt=3gSL18#b;yR6@4z*+pcddb4$%Gmp@n&nShb=aCxY?x zc?`k>8S>UMgtrx}s3jdLXm`)?`NrhyC|l^^fzQ0c$H*&rJuWqi%T(P2c1)IUnT$0n#ISh@ASlwjx8t5G zp649bG!6vcLEGF`_WQmFp$Tqx<+^aOa;~tz18|vjwJ!NIZm_JqTc;bh`cBR8Y|-ft z&XvANtc=~_vkCtDahq)t#H6$IuFz~AwAdN2Z-kS+4wBOC;TTaF$~}7%ZjLY4TKo-#R!~Twy-v=VG<2-+hTnFheio`Q4Yr3tGOv zqa(O1yVaM(9B*7wh@=_N%3-+8VCL~ql4s(~J+~@h`mHaJbK{5NTsRNo8^au`!=z!FUw*I z0Nq8VpE1E@{0g3P)qigGl7`$4$;|H3mvHMOb?(ybPK_K;`@2jQUc?`<`Puig`U%^D zWNF49ea=o}>;T^TZQt*}D92jP%`IP{?<+C-?Q&w&4r1V_Iw zjkunijJ1pznQ!=>QjvkR)iLKNJ6#%fR5ky{AXtRkVWn(x$jusaxcR5BZo(j-aCa2Fiotj;7eZd6XS#?OEh%>@`ULfBMEDQd{nSJFy zc(;)1$oO5%gruH_$oVO}s^6@;)h zQs^IO2Wu&R)EeOirxkZiUA8D_^QC)VyIz?j9O)8@5#jgTFCNdj?UWk?S9Q+rB?5Sr z!SmU#KIJn;pR43!>qDXqUTG^yI+U&l_5U*VbnUqK!36yErOYcMp^!?bmU4jOqgc+M zpF|Hun1xsMYNc4cpw>IpfmG}t{HJBd-It7@2u-mj{u}QvjyRm#lCjK|0*jatnz-kI zhek&QPUT(iOhD$tjhVgq3$H_I$gpzai(Yi*4Roq&n-QzdCNxjUY#dq-7ANr%;I_uS zTOaH1t~GtUHssfOZ~f`@;s*7qXjS9u-%Eo}kl#UqnAhV?0&G*lopNB9M1i~rA^i39 zSnelbvzA#A;EjFPi#oBeHyl(mj@U1BbA zA{LBPO%3@^;0VS0#J^T~1pnM@@#aTZV_(g~X5>o>)QTU7xKepeHG+GAkZrjGiF4x; z8u~050AJFJt0Sx^^DqZq%}7iq6v?%GqO_XfE%Kf0Wp23d-~AmsH=Eg;(UAH1uTzYi zgv$xQL*lx)VteITTs{BWAb9o?hLYKI8WLm{H^C?!`$tga2@m+ikH^m#@KXGR0XA_y zMb2~j9(~M!?qGIdg?WmXQP@bVdJya;94ew}z-s8Q43q2{Kp;Gb<3r&fCM>+yHK%k! zYuHy0)iU)#Aj%iq*x6Qbk&HNHPl3_a0d2o0sZ)QPCoZ&G$zf=+99vW{`_g5MfmFet zE_Mo(yNnF;0TNj_CFFDj)P7NzAM_Bs#=WzkC&P=HOJf5@HEO=C7t=on{F`y4(+@v} zU8!%crGvs_=lqf}BGCtb+5A&00{X;Yr*mi65eQ*C0)E+R1*^-B4fjYko$sj?SP>ui zhR_i+VJ8y=@Gl8g(Kw}`=ur!HWnk>MgaAyWO4B6y$76pKo3iCet@v#re9`=%7zic4 z(%iu)&|li5Fpg!mF1zy1DH?5yK(t1F053?{xvkHGVtSagXehs6g8gVhH9Tnrw<&*p z0u_0Nt4Q?k`mX%hn5wo8@ha7y?4i%^*?d(R4if4u&ps1OEIktCz1njr(Xv$LTV1n) z&B}N7A5mE(8Zg_95kyCb05IiiI^>*?RWU0mCZX)g4};s|_E#W}s`(k0y@3kw+xaofUlhI4N=8E(%%|8lN1M+tI9`SjGBUE^K zF~~HP5Q_9Oo|XHB$gjBoR2GsaDgS^@2Eo~bb6}^+TVhSw?><)&(vkK;XF;r~2soCf zI>W!^i2Jtg_d8Mw&FGXv{P=?grD5ZBSFMr#&%vhM0+(K!!3yoMjI%=Llxwp1GX6-C z(eGvpu1v z#fij54q(wyaP(|#$BuydL;(b;AAbrmj!MrJuqSx1;#bw_K%MzJoeRC-8xJ+S?N5Rn zpCdYglomxpBAgPFHNbgFY;)rFkhL%!m|M)0#G8QVr~7@&qD9-j1Nv;MQ}s^73-o&T z@4V}{-L+$VD_Qn!3Ghe=M2FlMPYcan?oXsc(ZTJd&)G-}zr!H3He--GXKR-p)CE&= z$U9C61zc4y|MyC5asP*HYNt1bJD-e&6$S}4Pl~HPk`g@lvN`igb6m=>3Y3`LnP5LH zsUlU(>6&wNC3w$AdAZQBIX;w*{*H(iCdt-YqO=y}8h=pQZW8@!`b5^W?15*SfDg(j zK-`+avGhfJ^$97l2m&HSbA7-ezfz61VDO{_*DN;lM?W8)^lV+@M+T(SX{=%Hu0Kq$ zXtNN1eDx}S3UOJRb_fmz-3XP%2Mv#U&9*WHa_9HOLLTe|) z&9%lh=*n|YQB2+HIBG(w40SR)&x7&;~e?V$}u3{?Y$^8`B|%lLlIqzBDaemyeh-9&pjWtEhe`fqO!pqH!@O zXiw3C-VjBtVG5YbVge!N`q=$cw{_aFsGy~{waA}sg?F~Rnfv{O{=y?x`hdf*Dq*WX zw&|@ryjaGb6Lwx@Mu~dKXAzSQa~;IUPGIp)9(q5)S(Go< zvD8*F7Vv5NgVnY77RnyXKs2bC8i;Nt8x%4HC%l3Jqxnr@9*zFmJXCsMdEDz^ODZM?#-UZrF2VRU zeV>z|WovI@0xP%9c_@@E-mZw){{`rZs(B%=&@c*A#4rFTG%0{0xoF{^FN98Sxa)ud zll>bmD4M@CqMjHY_<2+#_&QtZ1ZNftBJa;-L@1wo*cKh~bYMUkK}(9UR~;}IRnEYl`#`(9QGDl= z5|CGan>i!XYd~{tKpHTf#r5V3#1|pLWup+xRLDjDa;iV}^}RDE~j& z=GeC)XYOr4Xrsx(Eiej{;%gHL&pUV^^J$sD;B<_Lp)iGjEdkJLjT?vQE`jdel+K!t zrAjzjG3VSo1-qmwMWv|3w@59YtnqMY@DyRT{VD?TWz-iHU{;d?$# z;2}8s)h{Eah7zn%IplMS!ziLAdcXU$9uOr(q@vn);4zX-L7ai4KCJ|TDG*CU8u3np z7|e6_taybCu736?Cs_fQf&C(En?Q)u@>y0l_&Kx%fI7Jl+0*>94}Kix{F0x?btx|@ z&bTy}Oe(R?x4|e()~vt-Q!|@P5k3 z`2gRG=77K>ob6>@$NTt;5XGfkhA|hQ<*HaJ5(w0~%sPBSImU?ldel0Clx-ao7NK_F zI`EJk87UAuD*f8q7YBbeQl1*N?umkc$4BW8UlY8y#Pc?fL7IkZH(wIoJ_FITH;f)! zk)gIDjaViwFeQ0PPB2APVf<@S21fy*kMy07R>cE5rhKb%bWP)ZWkkK$@NytMQ`vEP zm0#*i-l3~jeA@A!Y@$DZd@0Gt%axm~^u?Y(j^=TP`dxk@o}Xc-%@MZK=%HwJ3WF~H zzhBa>dV>cLdI%)F6aw1pD_&ZWn--5KgT!3B9V(ekX15#2pkGu zfwwKwU6U7KCH(^lTh^al^4RUIf@}nZR*tZN|z%_7hN#KaPmDZ@k% zpWSfoX-ogZB>IH&6r~SyP-FCjg6!l6dEoEPyps)ux^M7DDBr>SsKM&MlK~(lOUW7^=BW^6CA}B5-Y>NM+z%2QfwOp#<0j~Bo zsZu`;a#_z)I_f*Ye~zjhjY`jV0f7kNqT)AK6wq)6uxz*7$`Rh+oR3du4Pg({2Vr(- zQ9ubCj5?+U6G8=h)4t;(pH&$$L!rmk!1<4%$Drv4(RTogU$*_DqIJ&Ph!8Rcu##wt zej@rem(04@8zkZnyfbvvzIrJ4WI{^+hK%0j)&BfDxc@Y)I{j~{w;AdY?-Q4BVOxC+ z0M0=zq+W)oPl07@?>UFC7&iuUD?Xf1%3eoE;9jf|FjB|Y4}&^1bw_Vkb^EXWDO z@t3;cbG^S^+{ivQX7F5*2jzyn z037%sED(;^im>m~55~6muKT@#`lC!?I@8NLZLe(h#Ys0y-}NEDYq>>SL!6Tx(Hw}_ z*f85~z4+6U$MhzJ03L2>7j~Yr-L}*jAbmBq`zOV}9(dn42)*OpAf_B5!%UeEIj19< z`u+$Rs?+#u&g?(2{H=%6SAP1?OIzF18j=k}`Go#>6%3q-8Sp@A0OCI>eDJJ{CEb8mT4riKZlA#ycedx+LIpDSOK@? z!V*(y35ZA~&!$KoIO8EZCb(giNsDwHvV0L{-fUQ7jUX*I~NjM8uFpVJaD z)4V6Xoq@BpLxS2$UfHx|u^gw(C5V#4ysc}%^AKT`xbRA*=EvtOb0dcKvLGEluf*^q zqp`+&7S(bk$hjA;p6=Hl{#_OGxRM@)S< zTv9Hz#cPXCO7!sig4g|x!q78iH{+3?Efn3-IQymZqeY&7e%!nW-lXPZ z){GE$`u&N-dym6Phr4XC13&j7fcpclgC9DPv5U&de~46RRG)Y8BVQyG4l z`5gT}>jk&9uGW_nFJ4+kqGwSDFyY+sL-(aGpID;ewVjS8G+$x-FZtsCk*4gOM{rYs zO#K<%v(T0YB%G6+2S@lNHGCZE#zV;!ZW6&&L8{1uFk+mEPXx#2F}+XFfs5Q_C?=8j zO+ z#dyP#DeSMp5YaYE!$Dwcn_V%akkCz0(b2fK(`}t=@o{a|w_OiwPIR5TUh!JWWq8gU zwc2F(@3Zb#4-@0z=L`Jdh3jAcyF|n{Q^$GbIe1_#pAH|Y9&@k&N{y!j3PMQ-=|v16 zjr*#&z%J9zjqb(nQ4UO310}f{0a4pp#uEWA#RE`bUfl)KngvRtM`BAEYf9B7Ezj?yKkIY+ zHeRqL_Wmr(yPjFi9K$6W{`63$j=TgX+~+8-_m*9D?ke`nl0yIsk*Z2^QFMr8%pol_ocb*eJB_IZt? zuLOh>G}ji&i;nEgmx0xWE~&*3mQ&c#X$Uc=b{U-5g->}-LVi11YL+jj7Z_~3a4s1` zK{$|%VVM3HPQ-Y;=ONoVACCfG20&0Dl09d)3$@3LPH((mmXd#x)Yv}u4*bz%3q2|r z9K#gfGj0`+T>o7jpn`$=u-748CDn??m8|!E2SPtgoSAAcyg2wLubTugpQk-Jf0OzX zTWW_SsR~U^RhA!b&SaE}i?{eg6K;h~`QdVPzWJ!ueEu@MJF1{&h^``(FmaJCuemC` z#F1Xo=F{r3ZbqMAUzBZ(E8xZBFE<&{mf`T0|6{uUP{_k|r`oqz9Y}*hkfH*U-{^F| zkj%<_SQq;2j{|6*ywJa?%r56c?5E>^P-pKC+k=KsMmX7RiMPrm-;LIz5| z0m3W(;a(%fJ-Uoo6wf7b$ zi4;7WE8wo#C-n9;6pF)J{7-&90Nv>dKV)yt-JHiiYkj3H<4zXjOxWW$h}!1|y_LWf1QH5V%`T%s7a zp6L|!X3N?rhcz7tif5v&XhlJdsQlmqLQhRwB3!zBDQRgtw*s`iNI{~qm01GsRwfc= zzCynPb_?me_6Iv2!{`=8T53sj?7Yl08eSOd;a16AY1O@ZqeK|MKU9zc45x01m4*C z`|Lwag=ez1E_D=%`0Hl0xux{LOQnw;2}9AGZ0HhitQVdj4iY(8xdX6b#P=R-Il^JQ z?|);i#^Xe&cJRlhK1sdBJMRM(>3cfD_aV=i65!H_5Z#nTe!&JMDQm}Sda<7Sa%|*} zKJL{s{ys(CwUA5tlo!oy;1r!Xhzyo2e4t_3ws;t2Axc-I;V*`SntG}(&s8!X9@Rgt$kf;lbm`oUk; z_&-D2ALz)&l1h72jKN{wBH=Ug%!qLvPSdvyPu1@BUSi^Ty$|Lw`xnUpg;C^)FORMCca-Bnwfp`~KdvlLs$8VF^~hWm*C6O#-EhJ2Lq?49 z-Td_Vh@-#vyX-mv^R8ekkTI6|LZI^Zfb0T^sgw9`8$gB^f>)U`E2~*^&M98RD5xvhsKTxp9zlc!S9CQIX~T%`_(9 zDhbKMVA+vX&$}2C+cRewG|HoZW30Cd+-Htu!=&65>Rp#f#3ti(tx7P!>a-b)qX5)j zl1?{qyUKlS5;0X;k3f7KJiGYOOY-LTAv9R}?ZH6aKTaw{Y}IG=Mcs~-*HV5H)BstL z*sYNRbwj_%SZic;mqKgd;-#Nlc=EQCbcX@~xQi<9-;Kfnb^ax1M)v~pLueVBqu`Bq z98@n+$bhUe>vZLkyT@cJC1@GxvXd$>F7dk97GLEMY|mPAwbFqvvdl0unHn&T!Lj?2 zG47w+=eRm3z2Ac2PU3$bzsmy$sWd4x3jsOo=Q+$hM&lYeRMs&Nfva=}+ z%DJdd-^|R?6yV0Ph~Cc_p(!X9Px)S>K7D|$s>X;8s%J||@nj3VlG+IKjhe{Y8}K2} z&Megml3hM~JZQ&&pB7v4y85SyNOi27yjI4))p;AL^IK<7b60e%XP9d+tbx@X#8!hz z%1uCOhO6I>A-)rG70qV!uylrn!suWxy9h&k0+Gpvs=alIkPk}BJkDPorG*JDM#}%= z-J&a1#ou~CQGtrV%#RBW`?O7QP>ta^jb7}JuJ7;FatZI@(q^3`b$T#c6YDAN7O5A2 zuhsw<{J>XuUVFBo#)(Pga}3N@SRU=;yH%DL)x6<9o7k@(e` zSo=28Rjcz8#{yze2D1z+f9paQL-Zoze8V46-2?eM$ja;YaKf=ZLiCTbDY}fiZI^tb>-y+xM-)A{;!zR3U%*D&_;v}O+7sx19i7!hmtoVWwM#gmv z{DU`%fuHj7wKYv@*W=J|_9bwPRGKNQ>52|Rj~+v>*av$q_(2^PEH*+1jGW$OmNg-) zEo>8R_J7`AmK{H7?!taZjzC9*X#(~mr8P^ek41Q=5&Srag2^%05>5qKSKu1I1;0v> zo_AF__h4QplB<`H?G6)+a3FlYF2p)EZ?$@yI}+<)bYJJ%*)lJW*1kLD7F9`SHZtip zl^(J;XM3{h7}51AU5_5cJg>Lw$h%>p|ET#1*147BKmqOhzS~w@TqPqylN-8@2*U82xo`y+&z~Ugu{Hj z;^YYck{G|_#|k2g?TO|+jq3mg7=Pmys@)wpe&`_G{Pq?PAET&iIc97VYlsW;c&KQ% zPo+wJqP6*@tJv%MyyK$;*40xalI-}o5iZB=9j`uSMl9@h)c1iFv?{G@RCN;iRunU+ z)gu{I-PAp9Z3N1_)rP>evmQQz5+7s~up8I|A6Cr(#O7V`Gv+VE|5p7Q3>3`W zGDc#cyWA@0Ffj()aE+2LDS_yAKqR_oK}=q*h75XFA^Ar1o>NIF|8J2y`#-l&h}Bub z@OLf-!zol2k|>Yrd8cFy)W5Sd39YGrAIcC@SP-J>s}mD>B#Zr$z(Rp%jh;o^)5*mn zYDLi}-^_qdqs4T%=uiJ1MQnk`gU98#a5cXknaKyGvnJs442E6PD;GI7?r5q3;2|T# z*l3KyXri^XlfcfdME8uE=Fp?r3^jV&O-RRK=kB*qaB$Kkkp4I^j#>K68|0Gr$Z1$| z{y1cY(xUifb?MeK4|aq7cNu`;Z;JJ><#M;=E~ob0fK`SJK5>Ev)p_yq56v&4U$o#u z2(+#nlOp-uw{xH+Uh|J5R3IQMbGe~l5zW&%#alR}D#saeLHbn_o|UDXTtF>{f}sE`K^m_Z1;fRe8La#V(bB$OepV1Qry;#z$NZo)0`d(1Lxb`mHmwOAJRix7?l703~PWx+4hkDm}q!1&$31C9dqnt5odzg;Q|ZZiN9-6#^B(}3m^5z8d_jDY)bi7WCg@~5#lpE zD~17t%$$9c?#?02T70B~8%H32k_}=+2z(2NeO|C`qUp6*=T$QD39GBOYM=t5Lc;wHeR__o3uH?9xd+d&02_FYOfuQ!K?zn2enz48x@ixpK)!;BKXgDU9iVw@ zdFNnkI3=Y%c?hNPrXJOErqX+=-q#6^7}syMkAC-klxyk1#M@Fgn!OWqhVPW&M=gU< zwQn39@rk#~n&h7BA4E*`l@jBJ5554skgZg_{vApdT`Y3@U9J0Z;|7%P5@}20KDcrk z!Z*rCBo83hFp+Xs470Ah1Y4M1+nMc9J#de#DW>@ND}!d)c)iecDJ_zzJsi3F!GKo} z4x^79bpU+Fuq0RFTChc+(EqMe#-FHdi8$>k;lp1VOLtf)7$DB za0&sfe|?YF1*F{%hr@a{nLztHjyNKx_ezVWy6NRvCs&{ql~epy*f}Vnj@7=?*orb) zJNk#rN*B+*Y|EdK6Z%oY)4RG*3Se^$U1Yp;@;!G)j*bRy1J(^e2}xjqXF*_9N-wM! z|I!)omboKN&uBByidfawi4_deT5#~8&6m$^EkC&IVZF|39@WUdgvb@*Ao{~({us25 zgr>*}A>oz-&mP*I-`vgp-kuNuskh?zq(W4{RiGY=kr*bnw9^|RsF=sjSt;`(WLNsf z%F&_eW#RW#vHODU=PgTS3oSsqFO#sb*61O|t5yyv5KcpI9|dtNQ^EpjZh$tubluHB)vcNRyO^x&m(^El;4UUhuM%ui!+Mmk!Y3$YmO z0q;y`U1yV?VmvrlIY`I{OZM=Tr1Y!}trewJ#Nu)`nhXA66|+7b|ATwUt1dl3-Z?-F zjOX2-AJbPShB?LEC}unctyH8I=rs=g02@tAznp!f7$rRX@}{(zL5*N*{k#Q$`AMtN^FWJ7Z3A7|PkE@(kks*Hj`5#5*eGBkS} zrepZ`-aid3O(4G{FwGgHKO^d8X1~vZ_Or@;2TQm+Na-Nm- ztuKCZ<~1|v{;F_v(r5XcHi*8vs$3UpPaFgk3Zb2GD&eu2xqGC8Nv7wx@=6k(vRN@%$p=k0dvWvGb%V={M_&f`(22n1KRHJJGuOJ zNL;2;taU-e^lBntF(E>EQ@fNkPo_+tA$+3))zGK7(Z>7xclf^h{O+3+JU7=IuKk{7 z-u+H@l<$86Uj(50AGUBwd_X51T~~Yn1{i?>D(Kw1=7#xF*poZd zw-*UNsqG0(p9}^vE>azhALvZaABG*HT?Bw7o!|by*7IXXi$EGGBtH{HKbWK)jLvnW zm_0Mq~iTm@jBLYj`E_NP9( zJ{Y8qZ@M!T!=q zj#d^&c(UiaR^z@)UbL+Gj7<*siWTQj-`i~=>8QuOXNvBHoun3IuDPJ^QbwW?UOC?p`tOZ9hH5kVcfX_ULl4|X;onyaAg1@Wzw;ixA>Y<_4}g!zi)KEP z2cVg`$81AE)4P<4a>SR(EQGwpQj$4IW3_&4I^-_&LErsZ{xx240J3oq0I;O5b=-p| zL9>kciPROk@22qD4AUFW9Jl&Od=>J6Z@l zDhGQV1JKgzT0bxF#q1jGDW8$`F(Y4?^K(<%G1JdqOu#w!(mXf0jfj6p{yX=*d;fl0 zUhDbcZF`@6$ii;`Fr?pw<=j4m=Xm}?mSAaufD0xtwt(GbEZtxD9xxlI-s=CJ)VA&8 zJl|wp-2fm(Ax7|kcIw}EdVc$$XJN#P#COUPz{pY{kHxb6Q}d$m8L4-Wd(ZB+p~THmlsVt0J3aq)8`KT$ z6IP&lgLPXA0!~F&9`U+Up5^%$p~(xEDLFKVi9lXK$*`#@H6$=*1c0VbLsL*Q2>DkA z1zwB{05(k5L>9sEo}cOYxzNlK%kAJowjY+I0dJ}vK#k~spS}#u%+EJ@{)lxo1Atwi zFdzJnTJCo8^Ps5`6Y>zgElbecgn~W=D3qlm1OfkZ&wm9W^Uk!o0l=QoyP>-h(wZLO z`3cbEn}46@ZyYUnZcBonrjSw_W^P{HT1^(5GXOYvy1wP#A@<$P^TVL2iTJRVzXO_K ztxX85mO>ydRC4}j&!6b93HXf3A)>tnBclT)8wNBoG5|0#GBN-#GBPp%FfuYS05CE# qG5|0#GBN-#GBPp%FfuaQANqgA8eI!VkfB2W0000%sp{&Q>guZQ{yj6XS{jPDSX5X50N^Ss$?E_B_`fX}z(4~4P(b!hO$&md5q{ zqF~m(8oJMyuW9G=4jOL!QBH2=qMt~$z9y}h^+S*$)bkIbn3}&QNpb~^ukr%__4zT$rT_fw-PLrjlO_Y1|o zN`u7bZuw8x+zj&N3hk+^b+Yvro+DZ#IfW8jt5Zcr7A+?%>*kt?IJ1fa{QdnXh9Qs+ z%Ci9E`FwvLw}t$$G8AR?hut^jR5Dvq)VF(bQ9_s~y7ajjZofs)?+tYNtG=84daCcX zv4b3Rj+u5OBN^OCN#H$%%3mePa`vOP+Xb z{EUO@=(ewJ{vnZGW^}J`-ZSvvrTk7-AL@R~#~&%bM?T*qA1@B+2U>B!$*>YFy8~=%yS`tmwCyOF zMmA<&8o_v-Wos)9EQPMVCik?syoMK|Jq9aWuX>Va5Y!$(AS^yxKtK6MMbdoXH)JUmk+OO* zirzV<=ddIq_po0tC|e(CGOPW=-+Z!`HW(havyCLh!C>|t+v6vp8NBaL`zIdRfW^jf z0v>5kI=|u={<;BL!Pt*5$;V<)+$LY9%=A{E`X_)P90ff#W4X0@XbE7nBVUkc66pFrW_@651BX)evJ_mFiu(^w8*m=iHe4y}w{bTLX5sffDhj6Hh zOz8$FoP9BaU=*8wx}F=LCUrx-Hpd2i_-xJL+zb43jA49ymIa~G%=SahqP-7ZL@GX6 zU5qm#qyxXiykjIlQ~6$mZG51_6X=dQI74DVrls`*Q(qQZM8)}QBEu=efKm1f!Khdb zB?@y2lo7@4Jq?r<)fTxOhs_iifs&bpZxNwm_crA7ZSS53rJ| z|4X!^a7C}EOWs3Nr;R@9qm_l~Z>kJ8Y@wIk)8Kp&VH?iRRW`wN&$$@FQ;=3%zR_dZ z3Lt9x45dx89Du=ApX~j4`S5QxyU~M?sHSQ9&8HltMG?7lEzx(bLsRkoy4F-)EBJ>k z4$#bNb>8w-Apg(Vu!pbfqxZ!J6P(yDwh7)8d0();Cl50O5kBCM?JN$qVex${*rmm! z1ougWVEb@@skxx-ME4KBJfE>!~I<-NDq!15oS%(J#ndR&5(#(h-B zcAX|aI|$v4MU;a@9>;m7H46}3VaAocv)X5}Dt&XE=x^3(i(#zX_N=1`Afxp+OjIXO4TC_B0gLU-#Nkith^N8q*hTS4Eu&Zr4s-6Y=_Ke zk#qOVn!U%#!L4^CRQcfZV%%CU!2ZtZmBt+RYp&HdvP)7Y=M_zpqa#k97tHn_*KAsc zfA`+??r-gH-)|Ot@uOXTKA;MO);pe~KOW@p$6&q_6}Zt8u$86kOwbsH6ko z*Ar0f{F<2_Lkt}vgky+dGcr<)y%}yPgzI*S@e_La05SvwN9@e<@ZJQfopQ^OeiHt{bd^3 zw;o4$5{67e+u6l!havXs1^Sgkf!WUrTx-RMA6N)jZ26`cig27BZ00?|xVqS%u#L_s z{R`*CM&pVpc?LO5vK{rdY-zubRR8FfxudLP!Y-mP|E^&CCRiWDVBlmBR?L_bLagI6 z3|8_ztDh6Bd#WRELE4seW!Q^&1G$pumTV`@Vo~R*Q)iV&Io*;Dl(-z`Tc=Mq;}b?0 zCoJr$h#=dp^9cTz$Y)9C;ulbOa@_VanJL{40f!+Z=?r}*mPObvO(jCqdze)V9^Tb8 zp2+@6Fwt5_t$>$r0JYpXkp>@|u@WTYhqFCj9EfGZJ2q>Yh_zbywUvrLH&Qt=l3)z> z&CGiM)0fI%C&$@-p}m_Pehb3Nh3cv^^v!lqQ8Do=ek$U>8M@-HLbVZ6&t}2Gq09`v zPAREGB`0N<7Z?tl**CV~=%e)Ab(uvs{QaT!Z#FGSvL^=c5N2ICfkF?@YT^+y{`dN2 zt(o#3<%^vl#}A*=DNC32=rSXhvvrO=T+~e%IbMvG4egZks`UTZ0o@(*f1Lm>m%7%w zJ%g}*_m55yQ(iT%q1z=nXpQd_5w2&MwY7ZLX?0I^MzZWvbj@^xYXh{hEc-OfB-P=J zEbOlU$}zC#UOu4|3`Ns$<-~?hkwIxICe009%sBanW=x)LGW3ttM~>4k`FGad$vK}v z4B`r%u-JT$q;jV4BQ(~xPsO^Jphq&}>OdhT*rUp|jOh7n1ENT~vbpDF9hC=7)CV0? z@O7mnA8m8jd6~5@ZqlXa^ec>S+ZIIIt+-+`5E@LauOp4>2Q||Gz1SmVB?(pQDSt`h zLKLbE4j4C6N71F`PpY5Jtq<~?BZ7U?sHWwIY#YbFiw2cWJ)(j_*@Ya8@f(1-dDJbCouXD zp%81EK9yzkju;}8_tR+l<5-8GFVJVjCF4@qZ!ER?I-+cJY!o1=sN<}{GT%a&jQFp1 zJkfy5c+Pw9VXf+`{1EIK{*%s3f-Q{BdFI+m=x1>Su@0%n$5$@aEP*%c@WAL_%rY5pSRY$72?r}$YDMB8f68+`Qhinp&NY5v&eEZzR=NMN9L(0qd|oNu;osC}o(6wT(>L99Wh^$bsn5LD$oqcUEDE=c|%(Lp1Xs-HDvn zl*hEOCNMS)hLQX0h1H4WL*aaBhOtqxo?s|9EG(wL`L)bj$Rq;foY`L_`$?CmO1!PJ zkH)g^b3qC%k!K`@O)>*ldfV%@$k@WBx9!x7rZY+;m5U(j8wiVgXG;@zBI^nG+UUO7 zm?`2Iop0@-e>yzpcY7_+{I$ymQ{Cv)3+K|6^H_TCpqQrJ$s%fg#`0IEV^=DpfCq}s z6ze-!)2=pJqiIR+uPs%BpX{Q_CydOJ2jv1)GCI~cSC3_v{GxrE#!3FYcwMy5pHbar zP){_0t12_aL?#S_{FjU=Vn}vImPmAfP*&aoGZu(NF@w#LDM6u7HCY8E8%83#Qi2n# zNCE&)4F%*|xZS#(f3#P*x0kcrmeWF65iHoyvOQPzoLgD#+KM;JVj&@dHktoEUK|D}N%U_{@grP}N5Y&vYwMk}hDm$FFU_e62N%RwSZTRZ zv)U^fX5P46#ZvRASZ$Ay?_J29T&ZRn(#X9SzF6?=;YDHU4Q?B9BuMW4e=%p zr>`lFx5ndz@DN*g#0MT*M_lZsA&97IimA>)9?iwJ%1}2aC35)WBYl$21l9ge8Rz;b zuaO@Ya6VX^T?J4q<1V!N^m8f~HsebtKt~ScAZc5ccv}Ec5VF}v3g|Ug10GoUdo#>f zWSK=Eo-!2p?)1-yGFE=dQc4R&GVrXk?!yUNWVOmg@~UKxPIVVs85PI?vm{_lEhycP z2&bMt@MA4u94yd7%x-Exot7*^|zsCIXKMwehF@YxmaGUcY|}E(V5~; zb!|;wvhfal5;rYALP-_W^&F1u)9;13Yw{iGW_A!>VEr6^X(%ZSO}zcA+zOi;Y#x~P zIf%m}zLL;r6x7ap#@lBD6(|$<+2@dr3d#2J*r{5=TFJ)sj!mN+s096_VB~ynwg*pX z&}2?#oZ-(ulO2zZ0}r)cEPP=Uv~G@8WnI{oF@ z7=C!ALG(E1Q9NvxiD-V7hDizonxiDTvC}lthq>i6YTpT$aenu!7vEgTUR_w)Bo&B|U)tyhWSa0E%gD@MaX|`W1?fbJ~EMJB0{ zeifc@!r8><61C*{P>$8Lei~l<{c3AI#E-E-{Z3L1I}D`+pa;j^81ntweO)~-g9TBk zI3KaB028+w;;FAth>{JF2tJcfLL+9$lbP~?j!7O@JhIN;7PN=WlkC4iiR)G+=6m`# z$TU6T)Ii3CCHcIXsC4C~vkylOe7iXdzxlYgz3Z@0Cjd%cl<6lNsxDgHl3eI9Iewhz zK?$nXX4@aPWecs$JtWU4Y%5c|;B1T|vM%a2SK((@L#R)6YZITyC_PPqZ zqt9E}qsTRe%Jh#6&!NXH(RSeM|HHFn@LKrLiQ$PywE9>}f$X&pgHv*>h5QQpttfb+ z(7^$Hjc@?(j+PaS;p#pU3c_MI;bJ}^D{2;4)Vz!vAG^tG+;_#O6p2lJFX^WMfekqX z<>atLbePPgrqp*4bP9_Jpn0RgG0YXmO=EKuL%(!k9PK4e%`FhH)>r$ONVb!UNdlkK zObfOn;r{DouIRjW<2?h=>Ev!=Oe-i{T!PAJ7$Y!kp@(R_?kDwG!+>#$($v<>1MJ`u zy)6h<9Th5#8y)UU@b0k!#%*rEW?%PT8wcNiw97$UJ2iNbwVsYl64FlNlAP;VCf!7M zRK2SXu2}i-w;c|g^x`P;MG<%;zIN55k>$`>#YkO%<5qdfTc}6{1v#@`Voz;xvsvI9 zj`8Erq>b5Gg=k!%octQg8niWE!5 zsj+<|`bzLC?G-oe#IK0n+E^u)pDKCu7|(iZ2E{Oi6o(&JA<;^pD4yPE_;>6WmRO9- zpBt^Ror+T-={Fnm51}Tm-YRcT#B4^a!8&RnEnX_^KuCJvY8~M+gH*ySeQYt`da&^B zc~B@?qgy4-`zuW~!$?r7_6QDI?H{6Aa52AhIHx&BcQqd(AwPS9JlQ^6{?~~2KerQ1 zi);*vc?)`fztm92AY7qVG&`1LK_UXLptU|qI4F4vIvYlJDuBm;dkIZCUrY*oNpj{#Yg%J{^ zg>^H&&W=u}RQo;3Zz{jOKm9vMAf}3NhW)|sI)898z#658GORRB>5G2ykk%xw7}pcU zs)e;9Ij;YcEcIuO8c9+u7W#nMqV#z5VMeJm!S0mtKE_LY+EK`zkh2-7>1(@*UFIRE-XYI8 zDZ8u;NOmA!CEM;6a9b{19wsfV&En%l*r9n)$Xdt2IT5B)$BaRvzhc{k(3C`9W~_Ha zPmsR_+u|Te(%h_tM$^|tha%KZ?j=Y^;sa8fHewlhV+k%=EQ94UbA43@*^b0U;iz%G z?ZV#+3kzQQi7e#Wq6I%Vf6=-6dvbhy*+~B=jPTp|{lh@NsrITVEHv35yFITh*w?Uw zjI?QT=!^ud)5;yFa91?vLohEL*fIP7N(J#JTU2WB~?ZxvovkL+{j6%6IBt zul*IP$_W|oPJ9eL70NLRIeicxx1U^i47nal_cPO)9F#uXU#$+usJD_%{#lUx$iMZF9bl$4ZQ@^ zWPlvM;b@t>hs|?ACiN-d^?!jnT4hxY^a);`glE!%y7gbQD;ji>BRYK>SF80a=<9a- zbdL9m^G`Lq2aKxSqCYJAuuyhSuKN1;5e2ob>Olrfo2^nrIR=Y~kNfjaCRe*j3r|;$ z;4PQJu*0FpG|B&_95sHs4-$5A5SM)kSVLH$_(^AkFbLa;*CqNsj%Uu$uNp{y>vwaO zlGmkayaq(AY zQ=4u#R{bD;{Ma)2Fwj5vxUd>0dF2V`n=p9$;k~Yt6-p21J0?sEo}F^9WZ(IXIzr4Y zEW6-$^cx+4BX?8pGC<>pRhJfRizf4JDe}J8DbT~TgOE5$rc<5kD&=r-AhgH{PN;Ew z=v0Hyp%?^(9Tk9i+}qSyjK0`cPs3}(SoRdz$)h>1b1I1vE$4hYo=%HJnoYvdZlrG3 zcu3%>Ko01J(bgWMe#Z>cf<*KmnV6N&OPLyZbzD7f4G>!1omNsy_L1xb{ZSR=5mw zrNB`{%nkHXWTmneM@#0N3XdLWd#1=Dt;iMa7x(?+qMQYQ1>_m3NP*DASKr)eXou5v z4KT!x=~=`q;Qo?4j^c0MU;f@6s=H8VfB)%R03c-wNf0o5v|!a5QT1#=+r8Bk=Zs7V2KjCWPDk{*9ke+I7b<5X?sg8N61 zv~r-ySJt&ueJu;t4QhXYO?99%|8NDn=wi+7{=*!OKoqfp44@VvY15qnE%jjdmsy42UYIzu#eVv{BE!CF)CBPbC z*Eki7kzUVC(2)tdsCfvi=26O5BOF*iX*gmy+XHDJ@C%D6R?{MaXbDA9 zD}i_ZFj%diTT_U=zwe#>H+lQIh8P$8r4w0^EF5Ivz;J?k23JDKTwBMwnShc}(A9e# zu1wa+__dP|1Ao;BF_aM}EAzA%wRPWQOzBD+eTNRi`mc_&JNE5T>L|5S!tAjDprA$jIHo;9#Lxucu!GmlLvS7H#`Ukt%<47OzLj?mYOu1_-A?T!?4 zrS$o+v|edUpKUZOwn684U#zvQtX}Pzj_yxHhkO0l_;{;KK;TLgLpsK?dH=XCUH>@c zX%F+<0_m+k#BH#Dp(Fm2O)I4G(Ad}_c76#7mF7H6jrE%{WkVYC0sY}3rOvCgL79+Q ztq#r45jR*_mER(@V?b^T!)nkyVMM5i=vM1C) znx9h=Kh!}RT+iy40zf=_ABc_$*`$=gY@?4v)AL$o;(U2vI;A*$YU*@B3kx6)YQ|Zo zs)gz}3hAt^0oX^+N~Kh_bb3mgB+5&ZV?VM*=>3wIe=1o*2~Q0x#M$kQ*{{X#)HXkUi`XLAEzO zp_Vq%kyv(2J9DqN6rFab14pf|D?Sm@$HU+{WrQ6*p`QweAz)7!{XsLrj1q{ON?_;KGf=cbPsl8N%(#Eyi3DOur(&m$%9H$ zjvGP?Xng!`4J*{d23I(SIZyx}=b$xVh#%vjZ!ifsC|upqlCt=v zbKpPLg67Kd)b0OH7~#dn@Cu(n4eizyiMvUOaHMiv070}I&0(Qg)&Nr|q5XT9zZxu^ zRGuLZ6{e`#4YDyP0R``RJI>!^hm|x-S(KB-1b{+0ia<}3Pr+YqSGnj6i69RG-V&M6 z(QB?LHm0Ww>65%u9O#L6Mi0umr)33=~dIfL-lKg~BUVFEm!e&?nGGmDTWFvIL%PkJ#Gtj0LiXmcF?U!- zvgf4YLK`3i>wl)l_8ZCwfmwP2>dP(}3#@8!Sh*P7pS@ymv;&A@1m*0n)!*BFS1x*v zU$ziFoe;z~${v*1wIal=;kotXD^Ng99*vd8tsjS9;St}6Nt6@K9%1JCktPG0tvM=Z0gk_j z_bDX%3+PuG#Wu|03T{jEF+3uIgJbMa@A+Xf#vgd?-j9CTW%qEMz8meKbkmHXf5iKO zZ3ym@(|EefleIdcKHZ_K zG{23Vj$(W=;5%Zr-G*e$umRthaJung9R-JAvB!n2V8Px~uLhc#*XYJp!!oSk`D}Bq z$?3h4F!JxkZ)qqO$3_?w%NHNN7Wmj=!IOch)}3S@za!#iQHTS++2Emsse?J%7jj2~ z3HUZ~4~U7idhIxO$%CFj^O6B31$87I&QbPG4jU0?vnn*A$3ITpBhvaLAk* zfFv(PtC@N3ij65?zEoJ#_1M&eKEzw!1USz%l2*k00h5q?)IGI{M>iy@(AQD$#Qs4f zo#C&=9Fk6W!5G?Z?s2&${nW*uq*d&5VsJ-d$Nwg$^WyYL@+0TE4wnBqP7Db_%J?|D z`Zn4ooxN(Up>Yr~UCFGcl6CVP&ev+%&+Ywv3s3yo^2!Kw#0hMJjEz`vfLD`!iCg2v zZff^e({{uqGw4FbYSr!;GNbz1xMFQAk&_?>nh>tB3!l2jVFN^4F$9?H<-1b46A7g# z*U*BwL=_%l9Sn$2mRGJ+>1sTKL;mPu2!)yGqmfc4Q85GZPWYJ!u(6u-H;l-&W4Z2a z{4X8ZA>0GN@!?2jHZ+zhz-&26CWc?bDlL^m5QmmW1xI$cEC~*@TXsJiDbq;U@G!Vw z39)GoU;UUZ( z11#A>Fjh1uv(O))Q%+{h`j)@|Q&h`Ca+v{5KKz2svdEgxEqz&xkf};Dc8_jP5L*08 z^tSt}c4|_|aj0Di6lPxc=&^8okr0GK@v1QJl9|PYfLkqx>y^=~>1ve@dK{*I#7YYf z72ykMIWYB>$*Vs2LS+JnwsUImuzI-7hA=OqEjTKw&QlGVaH4|3C-Y#!UOHw&WiiqG zPN6WWsyE zG-)e+0&byQf*<&I{(ULTn;y2X12w2461|vng$a%-HnV)L+rseAmBM0bd0uKGdj5F@ zGarUqt?c|g|;^fACmKLBwXz*5*1v#lN~@-^A^l=95^ZQ#Ix>`;}vLDfIxI0W1G(h zP^xqm8nU#}3VU|c2X9gASW^eRjG^>g=E=3-iXr$_17^%KUN(QjEzZz_+14&dnHpA1 z$TW}8iOKD~dx}D83SoLFRG7#8=c8#4*FG(l&?f~|NPcaz<^bK2anN`e;W7V14S!Y` zjE_TEhiL3C50DQ_wj4fVo`f~RyZ;FaHv5QW-n`zhV|jQD4PBu?)=GN6 z(!p&le|#2w8-5?l)IWm~0g*{b|3LKVpqRY5FzkJUB5dSBmu;$a{K6KEA&(8?xMIQJ z^u>XUMA)MPHOt8qbZ^mXZ=ay-ohXUV(e~*`b>H~hOb4;bqr}X$pN~13cOiv^+(lB= z`D#mu(NeqF->we=iC?Ok-Xk<|L>>z(3n8MBl%L4)?T3stb1@txmVI=h;s4X4r_Bt zYCGoGlgO$Leu(=*qW;N+$qHMc(*ApI496vEak%y~pE0rHcPt9)mvKqb!c@r|y%-Aq zsPuoj<^RMGCA=Y-e1H-$x05oxjG?SY-NDje+!hIolTRZM@bkN z>bWTp@=3^nrQI0t%JArLGsHrC_&qQmV%1P3{ zl~>bgu)(%qVQBwU!Q5DO9VA_ymNCl$-N}1sxNzM z@B)p`v|#qGQIqhL;X{A-_2@Y_CYwn3$-{^Ga95mDa*OK$Sp>==)t4?Nq&#O^eIG*LtBH%{BdUndKB zPj(97WgmVmqvbb1fzW2M}at1 zIWG=ncNi$=k(dgI5a&)Kts+C8lTZ+OGVF!I{A}a+VF)4yF|v>Q%!IzkoIlgTV%eze zYM|21lJ+2dc5}MO5HA+suP|TiS;=%pzt)TRypFdm9CnFLU+wWR;68vEgN8?lEOiGrDojGMTezo4KX!k&`;0SqDt=s zR8Cu49-U{`)yW`+^`_hXVnVB`*LPni$$ze!2uOXKEIcH7swC0vzuafXL`j!QE5_67 zct=RS(``vZj}PA~a3rU`EvSDNJWGK%D^z~PUj{m!@rm9fW4sOn zmw%Qn=q$2*dzT8MdjapAiiKjjlxd);cwK@#H5t-D-Y-S2x+p&_dGos84~=qbnt+Cg zKd()6T0PUoNcpiqKYjcemX1Fnay29)*;f-oY|8?LYl&ySLbv(0jPAw7M0kf647d}SzDI(p{H%K`^3%o@=fHI-&TKNWyRlD`X4?T@N*^C8{JMVjRIB zTvZq0!_|VFiz%n`=k;l`2A++IGIWE1ISXTFs~+1S^jNgxHo0-0u@U%Gec4gkqu3d} zk9xtRu3;R+s7_89|MwT9++tPcn3-26l5wy}8cduK!{ajLY50dg0oE2{mF6B$#|b<0 znM5(H8bzIr8Tv)~CKmET2JKPy2YAf8m>M|2HKS=lf47N>)R67Rf#U3eY4a4rhI-#2 z5;0DCEtc9ByiKpQ5!EFZ{8}UghaZkR7G~nPgX$M-N?#9zE?Z+kdC6PK^4@$FX1hB6 zdGEoHpl$->#rJF~27Ju~~8jNRRA%LOO9t@g|A{Zqy;2z>NVhVqtHXJl+m^ zZ-{a8uE$QbN3(xDTP*e_G13sm?P8tqtugCc=1%v^PawGcX7cGN=d)DeM%qu1#TshD zU>H@$f5@>M1v+*2qk_?GS=C`Stc*Iz8YR1ho<^bycq20EdPWnJ6d}6LRT{{>w4Z~IW8n93B%-h>_WoYU&wVw{LtvEyDjv|stHg<+&{vD5a zphlGvBy~;i*G7YabNBcm6;;wv#c6%v7KfNKvL58gvx#loU18j?VzO&~b17ZdRSK^z z*7|7eM>B)OeZ_}$sX!%!s3VVZn|8fAU7x+FVPg! z!r{HellLSf!c?>=`aJ|H*mGh!>1-FsapanTXzQy4jtWp8+J^WP#Jl@80BPT$_Fwt* zbtIe-YHwhrnps-lNZvvnqB#{us87^R$l*47(cU-J+s!CuwT4k%oe=W+1)iHt1-R`8lH1;(yAzv8wEtd{tw z)bvqoB~OcLoP`9MZLU@ShlnJ?vaL!$UQ(Ai+Np%kAaWl)E1x-mfJoVXp(BOg_zwj} zfYLcj8$_26W()1+O+{we2Y;T?)Gy{6L!Ua#qB<}9btkveZgihw2-5z^>M9e5tE4RZ zll1G=mqjoO^~#QlMI5Hgk(voqN%uOPbBYUXtY_4i0P-Y2DidWgs=CtCYF%6LM{h;? zi=p59^Z(ijF{;zbRICRPk&@G&iFWu1UB9Xp7SS%1v@PtMcY#`n)lYjPB+UI5kP5w( zN&fMTB1xp+Dauj6lAS~I&@ofq+_@Bgxv{~NnMSC4KmDE=eIzWQ^GuG_Mw_{36cI|m z4|dCO4I3@DaRn`HKZ9Wlmn9 zrf=Yt)}#C&fwyA997<=mtasHrn8-l%T+Y*WmmGdr$mSD!AVLH=qq_7lM6V9r*#=RK z0g71vnnCub+TI=Q0ks8{RRzIni{lf-gl)j0Ftu-#w{DL}rdX3DQNi~Y0!S0tUONBGQfg9~{ zi_Id2xDSe*U(&SMFnJzaRK?Oh*R+~NYMSpQRzd!H(1k~~WFrX%5`j~+p zzVkNV{wOnU0}PrN#U|Azgv($bFOoFiYyNY)NUeJ8UjaWt{A755k+>@of9wnZ2?kh*y8L%N{~S)1Sz3CizBl)4RbQOR$5EoEOkfCZoZL zPQka=tlfYsgM+XJMz__z>mO-dfb{Vxo!6WSA5MzERn-QPn7R3;a4G2X=C`mCb5wt3 z)BFSzu%TCg0$k0XjXJusMDZ&MP=DazqP*neAwS;*mlYygh1V2{^-7XiEE(Q z;Z!zX$^_{*{1}t>Q?d50qLg709dd6}xt&=AOyf+4&7pPvgty{-;rHxts;&Bo;|cPx z0`_hJTKdx&c8Fv>0UAN@?(NpzoXEesyccO8`>khdQef}OI-K!>{<6Jj>UZv!Gj{|w zb5hSORdOt6#_jx6$IBj6zkU}sZjP`2=4IsMn4W+0bUS-u%Y;c9Al!*|;S@v-$utTle`KRH&; z;ogKaD67--HcGg{+-&+-2_9~2a@|jQ3}Kuw8dN^C$Cam-CeI2X?;Ws^Wai6*cjp`I zKIA9^hp6SW*nHyrCw3a71!9PF%3-F{mCq3F54AZSE?xVu;uclkU57 z>d3kPmj{Pl<%9-lV=-h8oz%4lJ%`|OQzA~~TKs_cnyiyTn_#pESEFgfXj!8p! zqmAx^+lYxMM%$>c-Z82)Z{k2DNI-4;QUY+q6`t>k=m*;^zEOZJkwyurSX@iar!1ve zc+?Yg}H$ZzkJ?w@P1PZD#dL=?DAS}sVx?XvbClySO>iPgyDydZlJ-*)^{D2A5e zu%1}+u+|p19lEY#4Vc{KE?3JEyx{*?SW{mbzhaHD5Fuy?vzh;dNrQg#O*hm92e=#y z$-jJFpPv$)K0{WYZoZ*SP7gsN*KPqfsaPl>@mp5$(jcgzZ}yV*3SbGqszUqbf9+(v zFP4P~^NW7QpDW%GA9e8mxbE`VP{_(+I~3+KarDzFFNoCsS8mt_aXGEN#8&rqU<+{f}GX@FolAJ zxk2Mcj!wn#zymemf*uqVD}Xi&`1`%J33b9K=xWv&*_U7guSAAUXHNx+{80@rAi@Bl zfDp8!o+yqP(4e62D4+L7)GJlE*?hKeghd)G=#cD`1qy_vUms<$W|?mC$sR)22F+=k z!S)-1rmuZ+el1saGs<8l&wR216P<|H9Hpi%@`)hTDD@!0xZer^AID+ojqd?O8|9$T zG_&j0pWhywi$#4KcvlYALWUYe8G`&N+t3_Xli`o^t}+gRcr~9$6HtQwGSVZDvEPLp zAoD*jhRE+WympPNl+HUrZU2{5c(u9hz&dK|gV&7%ndNjKNQcD_yJPK-gttj1Q~Bvt zVraaj90CQ^F(JR6$%>LZRNR8foN(=kJNnJ-m%`|&t58fuuj#Lyc)-fXv7RdL!sp|V zdg-7xsz6DNxR|$|37%=~L(?xZ zM}Oo>iilb8>?Ft33xWq1ahIbzvZNEzaLlR(%8q^!6soA$5|Zigo)qb=yT>V_Wxe{X0&2W-qC|zHl(@y$@kCY@!im%*`63;YSx&uj^u1JoHpr6#Jy$a{>;_OLtxNVM4~SKBJ%SaAEMBxB71s8UEOsuNo9sW-zHH#F^sb!lCRh{h z!m*%^VGJPW`-8!7vdy4{;_eLlbwMLB%7^k6Kg@!S{jhnk@oU*JUB<#2r=+DmW6zM_ zM%w#Y`j4JAC(=tut~o{#FK0D;hPx&L=pXnh)_w)-Z~~P+8VcTJE7A4Pg_$ z=v$MQI%h!5SqSC@(LdgzyZ2rl${sDlw6M=jT`8J%>UZox{!L0Bbz$lj+`I*AZfafE1zMUj7)=pXJHIoZO5v z&{3i+4MS&8xMvs;py}}W@8?F4D{WT-oX+ty!=b}4^~mH`aW&4ve()_!LQC8;nm4Pi zu+X{A?cx{d|K{E+_X9gYr>+~X65*gaWyNyr#x(^Q2 zdsGFx|GNqQnmVcd4+W#3TD<)+am<$igcr0Pj)UawK}8hx!50@Q(1O7Ix$B!NXX5Qg z&-;c@Pc8J5nRr{d1NOoKz<@H%uQL!5R5?b6bGMV^q_3WY&T}bK!69x9C8tW z6b;+5qv3r>G66Yn%C*cyli%4%k2ov_69A+h0RW{R94NE7uzWswg^**k*au8prs|L* zr|0`x4+^d)Q#b9zh+bt5m{ygG^nc~G%aQvl9)$u%bQlzceb{ZOiIgmFZ#B{)=GnX( z7$5W`*LsjX-=x;S!Ds*aUtAP{!n~l{m%j+(oX{0k0*N!5U3)DZwRQhRvLqVFi|Ky= zNB{#BCp1fmjBEOl$3ENvw(T3w3UN&OlT8ob&R-sE9f#DIwVSLPrA$sU`HM^iJ611) z*VsCOu9Zzyo7udd{X&Cqyn`IZOnvkHmW4fE7)8sx`%x0BHysz)JLB25a^ZH;&MSS{ z8)|!V-2ZK1TqxbH<(~!1+?lcrbUd7i7@b3j$XM3Rk>Jrl?fUH+)5WG_dqIK2zXcL# zV(Wx=m*+MwO0;QbpB{wB>xY>4KXGz~AA9%z37w*6LFP~WndSnhTB_|YZte$M)7-qY zn?^q2Bp0b+s{KQY`;+7!Cqv(L^VU41JNG{V$GIWbZc3AY-!Yq2wy?81=k;!%snqnN zX{R;>X>45h4^8hnG=;Y#WR*AGCI_5tl$()Ql~mt`$dcZH;%AVU)v?UU!>YW4X)a9F zB|}<-1^)w*EFb3P%7U5y!?vQgXLXJQ_Asfhc_vP8;h$b_4XOtFPaSmZ%Xjxr)Ovj7 zHQ&Da4R%%iO>!|9)RcsxrC~s;q2+O;IA{`lt5Zxj?1L2LM|G1OhgRflY+!*&7S2q~ z&GrW)l;b6QQZ^skA4+)*Fgw1uCp`_DwKM^20ses|uG%{1nx1*falMC)WsgCryasn? zC=EFhtHor=_zf2=Il4tTnU7}XPYW*NU!>085@EmpQzcjOawNICk<3<;w1u@>Vi3AQ=>JKO;DklT%(E4_llF z^ztQ%+6jgZJQ+$^1bl&az6XxIv{vyX(<@0tgMU*OHED10$5pDNdXlV6)qq> zJzWp@&#nUaUmCuZH}XLXPokB4%(`g!SFffW?K=0#`D51-t6jp9m(SIIVKX>d|Ern3 zslWMe#a0o{%zShQF{pCiRILi?%@}DqQ#RmnNXi?&+S$bLm<)4k8?D1GHDguwIvALl zWCYR`z69oO>dz&4ZJMD{{+u&D(0381teA1OpLf2xeY!essEgl{Gtvp?1am|IxwKw| zTYsx_H_bvkiw8~pOSreQHwz--04{l84^kel;l3$n8%n>N)N-aqc)k$+M!{Ef@JIUx z`;ISjQ#bFcXsVV>@hgDr%tW`%kykj+G6r;?yEl||ig!HoJ_I``G6XHZXuvek0oAr=~e2Kxc%F=TgqUVMQ&%qa*ZCw|8$?0Tzh zy{PK*OudQVp&vV~0vE6)|F8A_>-_2iR!*j!qmIcOdD?N`4Ue>NVmEKS%PpAJm#KuYsu&!_38*BCcaIt+-oDiKP)Dyp1)ET`{&HEt_A0Lc%45xD@%|5KU)dH%(6l?d zEU>r+*Wj+fWr5&s!2`iHxFp!(5S#$PC0HOpaF@ji8YH*}3r=u9Jn!?K>->PzU+PQu zbXE0CPj}T_RU_UBF$w*^JGoV>6_vK(7WLjyr`JZ;e|HuyAD#8$X4Xr)=*$$vbA`V+&!!=-4}A6WKC_T})wAwlq; z6B0RPuFiU9{=1KM2r}rmW5*4QjPw+8Ln)UEY|R${!?*Mdk@%7qMYO$dGz2qSQe9jZ z{=kKTh9X~(nV|(U3N*NqQT^!AMTT+OznL}3=)E>BZX^||tosFr(soIUBEBnQ1dBG> ztnLpLcwCp^(1cZz@k&Byn&n#!P|kcut<3-VZ$;Kpp{|iMbY8R}MKQu%!XS{ZhmCzh zr+*!4Uy0Oqnxn^YfK{sxYpE4ml_17Y!XK22PS4n(e%ea{T6!I zx@Hm<8pj`NjYCdtDYriXeje+bXQ=gh`ocKd8^R~)t=||?G7GvS!gK!EAVd4oFclVS zW?5;Syy??Jes}(`V*83Qm5QnM&>c&<{vrR;@_Qj2LLJ>y>ifSY-<8Y7rFmT zO6P3;4@N{L<^B_I=IN}TCQ(GC!z?aUpc%}|h^oSdkBepl8D!^J=C3e?Aa^`DiF00i zA_O^7zsip1lSH{0<>NBGh=g68On+ zu7qQ_-rcfuFRNq|IWpsZBY(#TmdC9c2?jkRvYF}~FnBZA><4G}1e_ledi1w-oO|?Y(fEd;cH}fq0!}*RZ#1gT*Et@5 zGoMA&EN@$x=^&5ec$A?H!lO2$>oiK{0-a`FOV|5fokZ{n7H^wXi4mi+0IKsLq#h{-rMaNyHqd&QaLyNmYzndzL??U2B`y7 zsBwzjJ_q_TFSOoHhVC3r*tl*Wy}8;6#R!q4{oYC2HR8ZFPfwv0!4X9RE~OT}l(><)aS@SCAixt(3i!?neayDv02N-hWIv4We%*mqp) zj7KtF;$zZqLK;;nBJ3L3jRk|mX)^GDt_OGkwjDmi8hT$m6xi&BQ@eEUaaqTrh9GYr zS-qk*h~M7%7$y_P!YdM+&QJI8j?21U(;M|=nX3k;N)k|{u*npFtS z!?q`KTS^XnNJX1(PRJd8{-D3S86+)ZtLFTA$r?k5vLvvHZZ!-g*pA6$FxePd)&W$M zRSkFPd`8r5(MxC4t4}S`0@Os2`k*z0Qf7P@J{`EWBXH60IA$5?lh(d}3kfuWo^YH3p$ooPXJchZeCzr2CJ<8FU^t_EOTP=q#fIm~R z)(N-s;jdbCHY~JE$wGro=!C?KYEqN9~HEd8yo3JkPJE~*{q!n?FSFv zLY;?NEnxZw>oIA>*={hN!(0lxmNciGbRZ2*ciJvw5K`Un`PzZKXIMQf#>j(00K3cE z=?lQze*F5EkflBI%m?f<^5XW~=u&(JeF zV=w9ZHcpFSxFkC)Nn&4_&93h)rcGhLN{~fCD(|KBGVSr}$p3-VGbiH`Qo0XYbWnm8 zFcV_IbLWYRYk!#SK2G1Pyu*!u*f-8D5HJFg^Bp2w$UjoearR`wR@y4B8gRB~9a(*j z9m218bM7Fh;Y`Z7gb6te&t6yUUNS$Wc)th)|667>=2w)q($qNuaW5n?H z@xk60H~B1^y;jrWc3@|=D75+(2z37t<;o^{jg-eB&Mahy|HrziiR*W-vRAD27Wb-N^RPK6pKLE;0i z!wZ@6Ls2{={IGI;j}=~dY~dGa7RqyQyr7C~#{ZHjbk>O2=z{o!)GWUT7I2JY+?>s( z=adQz%BY{c#Me6G(~x>UI&NUfJ(Ox{v5fhz1N*gcgfLpjDXET9j87C z8kGj3H${ypXQlF?;%vLBmTL-nHw;cUuSj(UBY9sYf_tZTVE4w`uw9DkPMFWfll)2w zYgQ;>83=S=_qQ^q#@vpTyg*=90zgZUWc}^^b(_+H{A8LkwkBT^d`b#3q#3~CqwcL5 z^L}=6Pcm(!Wh6rA!*5ijwu#T=`VYJ08d+a*#t?x8)SwDMFTIh=isFtZrUZK+kym)_ z0=s#qa!0fSigWMn1~i#Vs2hYL?;aTNBj(EeHLH&44k#053W%O)w&9l6@Jt$dONsK; z+l$Jq+EM6Q`b(^MDPg5nqwwuU@Mx~dJ|F9t1g^r##(_8_hMO8Fpb|)Zjd+$|Wb}tJCjKR@b$C`gUBM&aRsI z!?)Uij!Ohr{M=~K9PHPFlTNVRNb8cDHWx^~i(uY$p4#jyh6d4ZBj5N-|CBLT0nr?- zV_-BuHzU@(Da=#RWPdDMLR>I9e^t9Km?kac-o{FGFz@CL-e<~9SYz?=xs)^fRNP*8 zc*plD{7J$zvjh$Cd^CEYyx6DkfgEl@Xso;i8${e!t&il&B4mX$nxjlqu^AgZsL*eH zv0ab7u8XaaCFa`C-+jA`#{ze!LZkB~&wSM8I-?RgBMoTy(WF_r{QS{-@7@)|Dg(Lx zy76tqAkr8SJ4vA;q~od|+%RBII-{L-E03DLVEGbCJjm>SuH)kO+m79ad0Nd>nARvG zW(@+wB)oGwZ522@Zj0;#ehx{=f_?r-Z9cG+(BRsJpg$bu99O1^!@hO|x^CGBqJgrA zi$K!Cvj+L;IY>oBQN1YF%nUTNnJcCneJ~Yz^QhBS0-+9drg03=ub21y)4P;Dmt9DW zz+VW|gCyVDDU`J#s?0cDl8-f5p_hoHH9uivO&k;`cVS z1ivVdhN9n<2%D$?e!0V2deSSOwZNUzGj33K zqLTWBk^m8XO=1Qu&lUL%`_|q>80>v+%qagh3tuWlt(Q-LkU%c)tOCN~=5I?3BAUEb zSfQIndsmW=mWG>_*@pVf0GU)_t_@C5hoYJ4Aj`F2Wt&wTBVx5rhD&OJ!!giHt>4th z7Qw1IUF?++Fqqi2ASs8FQG#YRf+SCk{I7k{Zkm=_Q|gmU zcRo;Devc*c_d@ft?x-3Rn;MQ6m+|9GI`Xf>z!3r320`i3VO17AS0C&D+We|qf(YsL zDpylI%zd~~5H73=R4axNU5^^6yqU~mb}aky3F4>H)IFpYOiPGvtyVNM{4tBYBMw=2 zd@&57r2%kjfM_zvah<5$pkI&g6!caEi6IH<_DN(SZXcM8?iOoSOLSaRit?m0uhr%@ zUMX`?kxe>mn}fw9Ngqorw?>EZhVJb}NDLa*3T?hxJYc)?fC40q^#Kx%POUFQ~N78&a)P@FkHk=|L zpJ*^qNbY-HIpm{FdvAL#>`UPzLS?kyKej`(jyf86#DXNQNrfBZMuGuD z`Hc|33A9Vu_x0}EMRRhKd}SkrUC|jlGYWi(!v3_NF`cW|L%@vi4j@j3XuwxVeXb1s z0rj}lV*HXkdIp~tkC39#U)Q8-?*Od1JefrzYHwj=g!U(%31(N&(6Ul(KArnAvkmn8;jfT3v8 z_D39#x4jc|t!gjkU}@p)M9(%2P_Cx*$z>Od@cksthol7g>1`w-E4N4W8~pkwL6x2_ zEdmzsIkhJ(P3w$3KLE#a8VwZ^_`^$2_Mrf;v705AqR%n@ovH z#rpV1{0=0F4DSKOKLc-GJ-VU6?@kt%)qd?NDUn+iv;R%|qyh-dJ%uH7PG|`Lnp%8j z{!4Oc0D>FD%tXWY4=2Hf%-!@et-M*f9U_b8!onsJ`$55X0(PVAIu%VC>TFMy=XLE#05$er5w z{_v=I?z(5|+EUr`J?A4RkMY^MmH`MCl~3P9LJ&iARKsECI}=g3_bvrUOT2OSWil&@bpFPVF7 zBv?8duB3EEXe&4q0_1HHFWNho@Vi5}`?c06FoNzEo`%wC;OJP?3`Jyw)W7~g^T)rV zafj1rk{0RgxI8*$Gs34qgPu^gHDAo$<6=_11uD5uN>F=yH^3SX*n{Z2__1tg&+NkO zf6w<+@e%@jX?=Q{JL%<~bT(CV{|b9s zt&$Rp3MA+gJ^@XgXu>q9&^zg0SvLZP!%eWU%8{$1eSb>K*-!1g2=9>S=`Ln9ks53jpn{;3ER zJk7K1h7K3BxdW4A&ZpEiO5Y8vpz?Mk?5xoE&IDztruISL3_8speYzWdk&7Lg%^K09 z@lufNwl9n8nyZ#S9KA*&s!>X|4}NM#(!_?*sDct+gWX;tfAM%*0fo&;C1{=o`*AZn zHM_taWn%r*R;sV{e$&F$G&b%`KFno+j|G%=z4dB~%kg7o#@aDnAUg(KezCoK>p{60ox%uwWDKT3Tjlzk z*C;5L`mr>3*e zI7;<)frF3-+IUi2!xI8I&}upX*ary*%)?uw(B~N?OH{VL(|6zZiz1FQDERvHd|hkQ z;AX}w^y`Jlod~K$DspWq3mf{kj2m~mK%G{;F?UBlGqe~}mfwX8vtY64hC^g5uJp&@ zl%Z1o8Vxe_pUHD9B%{n@^91k*O}$Y~psgX96rk``oh)7I(5BUpJX79&kbU^shEp`U zWw9Teq-wMPY3fR$OFEShR5!co4mb!RY$!&*?j>{&9spOwiqea7O z!}hiHA!itEY)~m)JCoMa(f4!9j&q!*4W6!N=_A66F zfHCl!w7~+s5atEVGKSK06jo|U6sBO@(z)bLKicsDf%+}!1B1|WW-4^xw33-7aRh(# zxB|xtrBthJdmQV*;tQ6=f@FZ0--noODmLsqMN1!z92-v!xU8R(KViZF?#P_lCzOBC zpG&`TMZU=1A?bBx^HYOhS4-_GfuaRc*Y8VQgG;->M&SjuNN?VlvO=a8P4Uibf{o^= z;IwAYNt@3X9XxWi@hODoHDX8zNh8446D1}D4dq7$#43%N#^ml!%|%tdk~G@kX&~nJ zxkWfwvL|KsMiU`YZo>fG>W8|#65P+Ye9cK;b+}9GE&YXJB);fhab6&FMHw8HdVW;h zVm4B@_G6rn46bw8V~^KLDAVh!mYuJVF1hM%(LLJi3c$ZkeuN0g}J^2zp|H9%J`~GFk7vTn?*LiT`MQL|b zlLMLvESq~_9!V|Pk$bVlr-SNN%TI@0<3ut{W{8i>mgs4aIW)AGuQ8@^H(1)-z-QNH zDM=4HF=uiJ;_MP7R1hB>?eqD=#cwRnm9OqkvOln22vCsqVwmrj$Og|CjgY*6qlGnY z*_-Ke5ak?B=en3UkyM<-m{;%#vuMyWle-VrjI?+xP@{<|O6FtEI`BnNL- zp>>iwZ9M9^W&6b{XqUKp5`;7V+UK5ua#X64kpT7st5d4tuc5KE7I2c zM&fnG8UW0DgSEjsB&U`z-2EiAEc~{^G`qhFZwvY|F)T*}ycaa;S}?C&nh3KZVu}jq z5#|9WY$4N|T=}JvYnA+4^fgkZ+j4pmq6|oC*)N)YdQFxSG~EHx?%*Kl!8~uraYB-5 zx(57xhrbCkmsF-$*uztU+Fdu*{>U3G!B%s^+Ydpc>fm5i>8^Ng3Q7sjF9$l@>_@az zER!$v5rZ$#NFijYLynp5s0y`rfSaZxjQI1-#GTvB!{Ma#mA3gS& zSfzq98*E%+`Xm3l{XEHLcICaxq5qq|op0RF9y&XAxWuTg-#!E(SNlqE)BOrerT2zk z84s{0j6i^Q!PA(hveEXi0317XPDqCgvjVf^d8aCeNrU#pi7@>#VP2lm_z!*;enm%l zwCUHlQbQR*rHN8QzOdC$0^5gQ!ZaG0u z#Df{l!h#GZf0wND9@5%ml;$IVo*Apu2>>6xFIM)WLjnL z0sZdGTg)Rt_i;_bPX4p0?PJwXXRmdIK?C^&U$cWH=n-j@bNj0urm$d?n5e7A5(u&? znMpg31utDX!8hRZ}L|`fTY!zr) zLWs*T3`qW*ih-iBMib|o@%=4E`+Z;rcS}yphNCo)Y5pCQ=Eye^r#Ja(l zDg9~pfsM~%f#<9k<>T@fiq{)$&NVSz{tPe12q~H`#jO^cKCzU{*-5U|CuZH`L(T-5 z&j-`b#t)ETGGCh9w32aQ>(nItc9sZs;D`n_f$!E>1t`_P<(7c2U;NClvvK2limjj? z`UZRpk)W#Ufi-=7&QU=U4C6ncO_~^h5=FI3x^#*Mot6ghAlGfO4oHb~=!i;SE(Y%cyQIj&`_Mbfm#k0YNuBC)< z+B&|59ep3+mF(-E=(5&EOE3m^oS041?=q0SigCD=?!%sV{3Qm5MI zOD+Ygd%N@}wMsv`&!mk$=vAv1{srt%iY$F)`iu0#AK1q-PJPn+0vF!L(;2Rcg-l_5; z(*3AfP}vvshh{R<{%cbYRiFFRlfE}J@E0aZZm8a=dDP#>WPv1$aGh^LS|l{#k>C#V zUG~*T)6d4Ji10^^;G4klls}D;ObsZYbI&bQ6Jg{FRF}GzL%aN6T4wC>fS@y6{nRl0 zr>X5HT>A0I|tqzqPSWx8k|DrQCRIq0=4Qh0KG6b>fl z+h`C5osTyscy|_wc433>>5Jjbhdu$`?gn&tIH$enfj(c|Sq`w_8q)3Kj-6(=IF z!?!c+^w_i$in;qJjQyEo1_QUqG}s4t4D31afR&xR*m0J#e|Jb)JT)>o z)miURHSYy>cfWdCb=z{(VYn0w;m%skDV4FfkL%ZvkQ&liOT!Va>fl#oVbl?xWd}On zOQoaR`clq4qi^@+pWe{HIor#uGRY0R%6)Eeo}mdZ^Uer0gYa9spzi`>Nc&#Rho3v@ z`h5bVr_29+tYLGO3WL9R6kt5y?yVE7M}<`ggZi`sV@$%#C%r4C^h}y#v0Y^W!gkLu z{s=$*Z&-JiuDgPUsFxVHvnU5Qd6G0bf<+2BA=v{Rxl`{SET-=`hC@YiKT^yM!` z?~EX~A()rSm-r-8?6~P*Tw>DQ5=N;JMJq>ISzuA&*hzkpbRHLUJ-L`6v|}1I0^_+# z7UH=|%NhJ+`I_v>zIFuFH3{3`88osx@&>mpV^oZNTP_szW!;_IL+O*77Y)IQR{l?t zPQ_mzP{c~utiDGx_NCb~ z={OvU&$J32dzyGx3N~~6C>0G22yw!Q-gyG4=NWuPgSB(%^-LW<*y+9B8;WoGXGIy# z3KSR5)(7XM3t!U?vnR|wkc7Mo&QC@|_~YRE2_DY}E;pQ+#5y|&G4T9lhrPA;3KuVY z@ctaQ=1Twa1R2XSp1kMm9!ceHOH&l6K3=N(b0gA52pWl^TCMrpgW0eaiEeEG;b&oT z`IcOpaMt#?L9;5jejeWN;FbKm3?u0hRjq4KuL6wR{UHz$|50U5&(~w~bUm`u9beOf zmHx2 zyvtViOGDogli)8N6>NcPLlcLMlv_gv*1~5$`2Qn#wuh9_8;^3f=eHoLa_RfVRYzA! zWAi^Ry_Fx!-@q^y9RFqZo`kzQ@~qvV@n*NDh9&z@Z@cYPF83|E%6p6Ftjr6tKi zlJUB&gCG{Ok@yU&;zeu9dspk`x*H;EQm$2c3E@HZg1;FHs_YN375)LS2ApMf2mjbi zZcL|yw#)nHoL?HGiNIegD%$aCG3EV#;@$oqFiwZ#p%XatM{5$7^|bkoLz%ONVB%C^<5|30Yz^{V>;6t{<|)SCaN zjcWg|Uj_BSix56vF7T@>OnvYiyTB>}|5=gDKxQ#OvA$a!7w3JhAs;a=lQ*uaoM*s4 z?~5){v?dexI5y#(55Pdrx<>}k5p6HvoZpW0C?7r*+=+^O!xDDn=}=bE5%;=0TX8s{ zl0QCYMbQBA{&#?x7IGfJ36s$6E8XZ7wF?c0Vzytsv3o0>XC(LP^3Ka|aQ|;l03G(K z>ylYs-R=B3v}ANQy267RCU2`nIbo^QIVqMHKC3YbJ%KDtW> zXyvbD$Vu_Fc)r+LLzjPAp4cCCvjP7{xc{onvA4VS8*ScFQf_u5j;d zrmSQ_|I1EQF*=OtBzJ4q^7EguE3f=FD#1zT;rJQ~m9yyBh4>;r)hV<0c3;JHAU~_` zf0%dI1zOlYcmCPE8g*07`C3(n?!>HY13f2Y#?)zi@SFJB1VdA~>jXKE?_^_};VQkxGc)gBz* zd%D|?%W+Em83n+e)9whME?>6go@ec3i>-6HMND@E;4<7i^GKh*Zc-sLhHRmI5x7#%<62CKDlY`#nJIX@uR~`9B+r897tN)`!2M zQnGsE{JQw%ehe6rVGhKJG8F6Y7tnVzm!dQk6$k$j6_WhH3xjP?4yJ!rHXddFjP2?E z@HOBFi5wFG61dU*gbMQ74|8_$Fp?Nh>TD}XFvQKPlF|j4*7(zmu=f%tFW3;$SKQfK zQd@d&4_h~HdcUco4+bvg#DamKPfdvi+cbf;y7`h}Ra~^YMubNd=TU|q-e+>E2p_tG zah$@nxEp%Hz*uv0;_QtCjjreUkDcQl=ay4Nj3_fy`e6M)v69?})pfL|ESiqQdOwyw z%kDVuvZRtUESvr+W7Nr699l01&io7Rc6UQ@9dl}~Mmi9RV5TxpwTl$ZIR#gZzq*n( zL(A*?k<<=xDKBUw#Uk#sno-4yW8L_`JiV&Oe%}0pO@l!7iZSUy0U+c~Gaw=TiG@vzwZ9#>+BX=&j6gB1N* zAr*3&=P>>dx)m!DdJam5*me0|{7_PN2{GX80-!-L>kz8WeZLxs{$%2i2Wo!RqVlZ@ z*?wH4c>SUW9mBqo2X(fB+%To1g-eopB5 zQk_Gp{(JzVBkoVi0w&v2#!20T-iFI|a1g`oU?X* zA7Q>|QFSSQP4RkShZ<@=>BH2Fv)5!qjy>xGt3na*FzoBZb=IoLgRx(0|q4<_rpk zylkp2z!4J3;Lv?7y_(iW2`or=1|xpZ9xxG{)W27m^2|k#52K*n!UD&>jxg*xGq7Hx z5|oEqWmz_T=XgVS_%O`a(L>F~m15WPSaCUJ&2Fb)d|n<-FL46K_-9b*Gx`W!jk1iQ)nz$h zL3wTW!)`o_#7KrFwGvkcg_+@90_6@Cj}@HVhHc|;gtr6{7WW>fVTEc9WQ(!<_)xq2 zS|VoD-~dJn<)sy!+kPEjEvxdKrPqU=DDefaB-)u;{Q>(FFGEE*@95ji6UWb@K>1Ou z66LU?(~ABA9jri7jw|*uo_YO|j@aU=UM7rj?&o{|tFt&xPY=`DKxNwJ-xSXr}*z(>46L-1MQ9jF>Mg6FLHP#cbg<*G3EXw z-Xvx4=Il8GU80L|m9tU4u1`cSGkTDzoF>iDm4XhYpIdb3>hFaVEB{GlQ}F`|v>nZy z)Xy4{h9!J{k3T28O%gf3{PgDDT?gsgP)r-$57cOTxb5KEbaE?C?HCe&-+~xHo8M%o z%<%oW_J6q4^%D3WLUlPTjt;B;{zNSeb5=GIMZL~16686lWx>0qIQCp5{9l=Cz( zu{`2(N27r`hpd59a)ETGpBTDseWZkMJj3N8(|4F7`O+#q>Gwh}dq{Y$U95Kg#nhD+ z@)m_U*|gtG7EdDoO8*`jtMcvpFn1yTzXpfge9=Q>9R&vcs97kkns#OUpP{>S4w=wh z$tIqsp}WRxqke29tF<>l6y=j zvNK2Ol+gpww702N=*% z$x80^m7yvw;YX%TQjGQE2gTYYmR}rr#$jlM5nkqi?RH&nG=&K%;bVS%?JtpbAAjeQ z5ZhQ&mu}J$zR6cpW;fjq^}^B|uMur4Hg1lJ3oaL5^fIDnwg;e*d#EcB$y}VSD&t0` zEkysm;xXxqDg)Fx7x)OLQ8&?Hkm8&8*n4KB+s|gFjb?|7o0&89C$uAravTA2>BuZQ zZ^@K#lLK*at)^pt#|I9W^7D;Tn;r8#-~(Qu%|FZ5A9llxuNNav;*Wq|RoBQfbq)2$ z9GPZYvo)}w4w7tw#xp^=M{xG{oA6=V-e`(LOge)G3o--Q`m|)8;+E8#;Uj#-3yLd^(3L7WRf7a zQ&9Y#1Lg59dt{+78*paMyo}e56Ddh>gB0UP^DnY6*ewCK7kz)zP1pfnJ^8yZ07f4c z$jXXAQ(inq}zfBWndQYcLxMI+Sk8w1Zv5P8TtH7R@jy~M?b5x21IB-ZK^w33_J&svjzTM zP%mwy9=IqvTHhtW)ja`h|2V~|;fmu7XXSLewGKAU~ObD@^)2y6q#968xQ6?X8C7AnCZC+`STo(6FE z29oqum9>}z{7(_Z8Oq?s#}HDjKAUo?lw3OOOu*%pGrDt-(LsshujiW4GKQt0WC%~qn=z7#n zkGn~6kgh4kJObM1MU(KxWE&g#UlW1Cz2C9RIf}e`pI;9?0$bv6cg(zle_Ku6pf$eb zkk9z?jRjYy?$ACpv(6-0ri!go-djzR{I4~Q`ICoopCb^V8o*4BE5tR@pd}2O0L#tvye$^%EgSi_8Fa?bJkF9wjT7as zw+5ve3=g(_-CXqkPG@I@>%z|a9rUcf-=h71Z|&emjv6TaB`DxTP6N5_(|usi(>>7&fwn~y+F>HCqS*1-izkvuk21uEa3Y?y!`et@1Z?f%;_3hBld*RZV=f>;DTsd13C*N;Arza*ldjx)e*NfyMhLi-5{0uFE*VTjv>PK?H<#i+` zMDTf{gKZFOgBW=U=6RPKyupff8-{I%(D>h0X9Pj;deRH+F$|ipf2YT%rlY(UcWi=I z3yzcch-k|8jPW(nJJljz!`jOyU-VCx2k86qcX}?X0ZG2P^S@iCris|^=UI@9>$`rOYGjS{hdagp)ZA#a&nrge6R(N*kK8^vkzX{uNO`(ggFXzr9{k}?vvA?AMjyka4 z=@Qzvxdl(e_!=^T;{UD$m1_DOR~WwghlZ!FnlDHq=@YUdV&v!uztbAGZb^4?GkeO0 zuZb-8nS}Q*7`Q_pJ~BfVQhnm|U~E*3bNzYn*LVt}XU7%e8ZX;QO7OK^6Br>iu0__8 zIa|A|@__(y9{)Mh?irL%HEQul%c0aoZ&eXtDKF~PIJ|-Iu3^dZeMR^nr%>Jtu{X0oJ)`w)417(ePIa)kh zvf;odC(u0gB8A$B5n4}K)>CQ&zWS`<6(_BeZ15tr|2K&Qw^3ML(@WeYsUt1Jx!Zb#R<7t9mVt0iQ@!@WaF1t4nY@+ z$d02-OHb6el(Bc0XrIl_V=bE&$m|opcWUO9AHVITUgD>ytDf$)xJdUOoYzyu4==R! zdee1PF5Xm?q@nwPW{dZE^a+U$eF)N)A1--0<`qoiICN*;@CLw7# zaw@XEC-UNkxmc8zx42InhxK8yIlG;UH^#yG{)*aaw`Sw?{kLYEeNTPxwTyiHwql3| z9$V%Qnf37w&+RDVQhB$d4{yRgcO~r+o&V_mjg$Nad;p0hj&CKPcrr;6+}c*E4*rsq z>sXE<5V&#>!LLcqh~IuJ!t(oQYq#Jl$c}GVsS&$h3@^#GTRG3;1L5zcimof26}ay`XR!< zo-_(rP`g;Xk-R)Ys_=n0mWHRiaGzPyJHcG&g4VAMf~0U zbztyv9(|WQYvML|3;8F}>o7;>ysr+kN4V%Ufq;BF6;2(_Fph3`>(0UiaeJ%8~2VG6XA|iw}LZ zu{6-Xh}}H);}ho5oaeBL=Lg-5*JbPfB3h}__`XeA=4ttVVn=0v`I{K+p%}qe8+;#{ zjzk>p{n7HkAm+p80@N-f4QzF<^EJQWr8vnC@2xu>uYRwAnQWQleP^e?)`v-!2LLN@ z-WOBh{B1}L~eAHqA6wg$JKgJTn_K|_4yG2#8kl|&}tTaOzOOr3yXBWN?nNY z-NgLIzV7^7`C6u%TACUzPt#7zI!8Rz#3dU*qnJt0rXKQShKz=OTuuE&q$Q{zSI%I$ zpbASPSg#cNWZYFidv6g&a}P4}7YEl~KrEML8JCQQcFMQinO6V&di!P+?5+tM*_vyn z8h4F&E-wauHfhn(P=YqTyk9>;6;MU1GQ`q-19m>dUVl!BPH#pOgasOu1}_E#t~5 z1?RGurQQzOfj}lBYiLA5dv5P6307omd2Nwb6odDbQ0{35apo*Fy3lmYh2gwM%4q)3 zEsJ-@>(n1ilU)N>TK6nxde%XM^2E9~k@Uij+W+p9+cAZ2e(*KEwD)B!u6kyCsvY#q zxUB~t-MHe|oA+MLo5W|_@;E`LG^R-YL1hfW?2Y@DEV9GNo=GWdq(X0ej-uYaYDQ)c z1elM}^1u&+r{I{kMt1Uh;tDkjNLN!AV2_%86(3;oR6~BCXcX1zP$P%VQ2o7I`3XK* z+i$gm&rU_OvO@R32xgnnSJ|k z<|0olBobKya2vx~JF?FYY}bL$%$Nf1N%JE=3CbfNk^pxg7m(5_DI1`2fgfWgN^(M~aJmfbuj?Ys38t7zAv8;QQJFGL@D?RD7OtuSs9S0aC`KLOv zwRhH2TH%YQxL1;RdD?=4r(@f0s#KvWWhaT=o`Ilc}+Z; zt@*Ey;zU&NrZ-p6M5}arJA0#VEQj@z-ulm7xe!b3fRi)o!HGi8sAFqB72IOP4UNX+ ztOjpXZPHjxpo?PEb8JSE0t#rTRj<%&u`UCA0aJx+K(avuD2@rF&wPGL4+!{A3q$AB2_`Yk~yB=*- z9B_mvja(!Rgu5?JC~PzwznJHZuU=Z8!K`%}M1py{Jq3QoFW$Z!$a?wb-MNAp0KkW+ z;0&F=JE@U5H+}GI3*mEoFf^i$I_!O6=e=*AJ#&Ll%>?7J#};xCe>7UeC(z8Gk4W$v z{gae-pdnGBapvtu>Z64r4SRVIjeCTD5Rpuh{d>lIY%4zl)8*ttj%o>nI{+Zc#Rvr2 zE0Y`DuI(PZB;Hc~o8+lDIZX`)ob_}pW+XVhl@4?NPiI&C7uEBhBoqL|= znKLN_KoQku`AlcfSK`pG??8XAI(gI;+wzJj*9aCqS!O2dVsr`d6F5GUxTK&!!3|wr zWRL(n6$>P$FRGmC^k!u>Z}noy0mQ2SAbysXWM*YwsBYUw3HZvQOuSNlldWLx??|au zAwY{Lw0Sw#_06nF3GZ7_&eG1H+I6T>-_$sgAj!q|9SZ$>8t~C0bB{;$U_<`rzXxuJf!PyaK37?@ZifKrj*SDUn;jTCyu63R{sW~9I;!T;B2 z!Ev8=M-&odvp?w?yON&txm|vqx>4NgW(EOZFWQ;gi z@MB}%6cbr?(4qy;y-jnO`a}dAGDB+>+kpQ}8YauDG7Cq>}3Bx-QcHtSfXG)j|}-%9Meq-)H5Lm?15nK!UN)c-iRX7FrA zb*SazbRtyZ)9eZHj@J@04ZE(SZrUixX<-36dt>xjKsN+3z6rY<1pry?Cpr-%#(Fo5 z90qmu^5*CKAjP?77MN9(x}H(MrI~UYyeWRHxaq?bFqFja~B}m&Fw_~`yeQ(9T87%NCb?8 zMt5Flk9-kigpcbypKOc3uBz`HGWiEQ794ujxx}6s#m@7s*|U}xb1u$H?_Z8KO8iq& z#XmbPcGEMb@-!f~r1Q%e!Ko&s@9mwp*Edxe(ME3EP+GYQ&6wfG0z#~!_5pYd-ly`~ z`A0(N*v^DN;tDM>;?pQ+E`7*(<&wllM@yXH4^}ph!6mG00yg1(TgvxW8;S=nZ*$JZ zMGJ}n;Indv+iyI(x3onbW%Q}IhU9QN@8r`D#Z4XZul1sLoUHD<9LOQ3xpECQqu)(H z>Pg(|_5!0q(Z23xH~F61KA{aZmst9& zivRFvb9MGl8ELUyzKP2*Bz5$#CG3X!9Dxw;0bn{9uxP@`n{;NB^Ds8$3BTe{PnY;Fns~AnK z2{V*d;ezU>-{@)q*)9Gl_w4Z^ZWSZTzSqs?Qy@{X%b(Viyb}@02LP@<0166A{EG4ukwEZ<#>(7G2?AUt)VWIUViNW6Qxe2uGsUR!kP9$1Y~a`0mF_#TH2 zTL=MUc3X1kbpXXxLU1|j`MAeK;8aCvEec&T|ez zq&`p*MS?ZiCMN65t z-cK!a3WK;wX5$fZgPAvkz=r5ql zSWZAC0U+<4%>aU;JRoOY&s87jAOIv2W>-5<@WVT(#$x;H!Ns9!IFGHr@6m$WBaCAJ zz<;)kftCcNrq^YrNs}twAR~V2l&3_H;X(0AconAh(ef<@+#-+EZyY>-)bmR!2;-rS zeo6g%jXMaP+*O&Hay36FSmW7puZQYxyd^~0sa0kt=;*_doo9XF_u^F1U8|V(8Wl%m3n5`gH(|)X=y;GXX!P`m1c&2;}LMC zlqEuX6Pb9xyobeF3*|}En-;ZI3XQwEc#OZf8>+HxL!Zn0^l+F%k?v!_5wuoUsAcMb zpv=x~iXf2IcT%8{7;Ugkxofi4uXTo6RyKqN2pTv-cJ-_G`O#&Zf9W zrTZ}d$(eQneEIBSG5pJtU#0mZN~q~rDmyNtG+Vd> zg!nzcOs**9zxI}`$M(H>UnJyWkDKLz(i%aTYOmzU^>qc6{pZxY&l~RmQG)AbpH%Pef~=K7$`#JZl2a_q8-qnZL!p6WSGflU z>yLg0QNDZx`N5fSSJ2@^A+N!%34W+ZymTz0qS|%q@6vay9nZ?W{lv4*i8kGEzZe3x zKTWR!T_#WdhGNQ(xvmrNH=VLWR~hY6l?mQq5lt~;BX>i~bIIRShlr->5m@a!0_XI= zMQLL#ztsiasktL*V^|f&A+;Xk1>x{AF|3*}<~6@1wXYb&veL1WXp_&EMsbn9W-$vVOk9ZFX{wOa8crc!xx^j*Twn_g;G|IlS1AcCW{v9S5U!lwLGFgmU@r z$g0a-1X^kVD(%d~zNF|9J#&VkMvgK=qSsQvqKx0gFtSfEnTzA8JBQd8Yb{r|uY?}s zq29QnYJV++-`F8jw_0au$5)8y@3}%_MEkZUj+>u6c4jGE!tMlDdE$=PvD-U)g8a*k zv^vt2PNd8=;n4GH)nBVGACd!Ycc5E;=SL=_{W#FCYaOcUJuve|mwE$q!%GXFJpP?U zCyFmeiZnJp-d(S^A#X`iZYd?aH+%F^`P3ED-F{B98sa84f zG+`6eqap+tjNIWnznTZ1`PZ*4=I~uD9Rf4i$XvJ0i^Ly3zTca9y6w8?E0q<&lZnoquzYsr zUp}((YPxJC{MCK0_*>LG_}#}VK2xPmE_tqnFlae9B*{5wD*A`T&NSZXNf()Ht$}2; z+kPVxCLf>UyOgJb>}!GC%~V7Rr!CPoS%Wd6 z=s`TK?{V9iBgc^!If?5Vw1_}nvGO}fwtm4lJ7=&SQ(g3>^f8P>e66+RpXIQ$!s?rH z6#ORd9Z|Xc>v3jjiXIj3Mc&NK5()?nJf7n6@#deNo7(Zyx~@hPtsy}(v|KUhHLOo^ zcK`J^-F+xm+2-$~W+6@Dr;Fz2?xqJ(qPcTsj{sy;}wc#!eVIOTO_3(8f3)k1ju z>uefq2Nnho>$rQPEE=zr>sO^5tGk%oM%mr*u@s&DV`6I6vo!7($le4|M`cy|= zI@pMlb|=b^;__@S@8L&Avz3FJ)Q9GPhXoaaZ3Veyl=vei7*u6Th!Q2IN~PYr$jO$@ zRKniMqtN+sF?QTtc#NoX8^9Rt#g5cUCu!(B`(gG(wIC4Bh3JS5W}}&ZpJ|lGP~+7s z7mUkk`3H${J<&eA@L46L?uxrnUR54CDg@pz{qXaJndk9%<`yu(I9TndZnErZ>cM$p z!4VD-{(lRd=AB>B%q(&XKPNFmeW>YsOf1%&+tyE?RlWw!mMsQN6g4e>TJY<89JW#) z^El`Y>O*PL^^hp`%r2x2$AT>9yOO`E z%)_X#_rRTK!IlA?#rHWwd)<1yGKe@1N#Z?jQKfN-CAASDew}9e!VF>?l?`2ELkMzU z#IPpj{2AJBmr6$FS5z;#m%HWkE8%MX(z~*^=L!G~O!bP|;bZl|U~RwTGDU6ByG=AR z3HQa4CYNz&lW zewnd!BJ0&P`0G`09M5DIXtKug7?-H$dpzg4YD(n$H5{&BG`#PwE$QX@)H$X}>dQi% zH6dqN|I0AWXCusC9y&;-3^M-woUV6kfi)#WE$W>N&C>0)1(X%fhA8>?U|}9YjAwD< zjj)vm{dtb1M>nqKW?;&a_fIdF3ZQ-K<4fJ3q$4an%w8km;T>m}NU(@zmIRe`yYxKC zj__2rPN4?U&747r2jn zFz@k!?OlcONe8YaGQueZMP9#a8z*P5@IUPmsa+a6i!I{=8!f-M@-u;C^$5dGHpf5I zr6oJ4jP?Al7t90VmPyz$gg-m4EldRVixY=_XHOx`e%_pwqpT6bi z-IpY^VB)JuU-I`K^XBgng}ep3K82c;L{pO)4A_KmJYcM99=vDpm|a7pwvefUY-8pc zRqaOjVAawvN+CTGmsMrLc(F%@qml6JI1!-JbcH=}uh22=I!3m3^@=|%P}Djc=#b?e zHgqQL5xmGj&BqP1=o{53tf+Fz3#R*ht$%J**3+oMa~*MaR(s__T{9y%1v&ry%qLRC zmis!c*iy0WP179Kr(FNpM_xq8)y$MGXD-5lglPi86^lR-El}zAjvi1xPb<&3G`3bKPGbiw#k`1>@h<2xkz9 z92}T+lp@Gp4^7M?{=BBF9Yp-Gm(kJhr22Z11-@14Km3cEysi_!ZWqX@SAh$Cth%Ba zlkr~wwuB4W`ucRHaOI~(-O+z-`H~!I#+bJayA@``!4^F;CT$Z|Oz|9wAp2GdL#rzv z#;f9<{OdyrFW>LQZ`C@sK-z#4%;y`DF@P$fXVCE?EH#a5Np^4a4zC73gPUH{lO%j0 zIg!DyIUHmUS^aMWvFT}pT86FNj`S@%YDNON`T>U)B^Wl3Uv>9ES6d7hR*XG7+)(*H z)k{w{CYIswQA48mm`z%w#dg)I67I_7J0#kacjm@=l<0j#sSjaV{h_P~8sh%x*}au; z&U-4J*2{~l*kDy-h;kgf*S1CeK<8spy^Av|LYrnK61$8l>yo(Hk^IqUx-5fC{Y{Rw ze<<>mM^u=;V6o?&)|ztTAF!M6+eYOp=E$&mNe>$g#H{bm=9^Fz$b~h40cQHI$GlyU zRt-8Kk;F%*c6HwoJ$XVqigv^(;G9KtOM$+#u5)Mu(@pp4ahj!j-ut0t_Nt56`#&piG%DV{{_3{Ta?zxAshISYTa&Jx zJbu1@EJ6qFJbx`vnt97!S`5bGTxT6AUR+DGXvDerakR zZ3?ZVDhVKcz!Z^XSm1i#AW~4(ld^jubQ0`jelDU4FM-Z8UM<_;#7VZN?N0D%Diwvy zg~s2%w;Ay8G3*Ch!FS+s-DER;E%c?wiFP~7G0hWZ&^-eR=_v3&vG-Ow>5Z@#sM{yL zs?_1Os<(N=4b`-;>5%v0_{zo0W=gbGToeF8JyR2==zwfX#CB90C7Vc_(UBAfp&YC&gR&A@&;?h3koh8O!{TMV3$_AFy{f{x$ zLCFUXrSwx@Vg7K_J$aBf6*ryu_p{XQ`xh=rb_uFzN7I|^uWMS)rIwk5k*}33y)7R| z<1dOlcX1qo(Vk0b`4seVj;%4jy!w=9y3CG`eE`e~@6vU|A+9eE`QtSHFe5FF4JW{w zXhea|j5gf~lceq`$75)YZ!E8fEV##_WJcew8J<#F>$c~ArY1XJ>j4A+&_4lBB@DxU zO<`v{Kq>cu?^P+BmBVDB2Ydmg%pz=M`+4}>$kP3YuK0ARc<=Z1Omtr!mIS~un4+<@bj%B% z?J_Au@1ZJuz^VJM?5X$R3OfU2y?l(Y6{&*8hsW{TGSSduuJ8NH6CS2^U z1>2UNQx>o(|Cp}d6V_i-8Vu;66Jq0J#jR!VdW(UrADj#33;`OoRGi6ut42+y{gDmS zp6~9-{r%t|qE$7VCI+nwxSw;oMzhl{m3L3Q2!!$(r4yLb?r^@iybO~#zTtl3+ZoP_ z7)N9$Chnqs@CZm5xnk^ggD@Nip!}9@i!ahvZsG!V?jgTC5dd?H65B$7%}+3=8)@NIQP6fHu(s4kEhXiDnugL^{2gx- z{FASAy+;N{G>F0!RpFG}k2*HVA)wP1a|8ooqewCODAJwJM;nV4N#wr!YO)f;Mcxsl zi@F#}a5(wk&UQz8GbeTV?YC6ioIq6Vv*4#iHzJ)0hV7&QTS^f^?FT0>V2=X;02!iA zyYuu1*O>H)Cr4`fzV;l3H$HoiQ(OP_<1&jX`3Uh34~X}ft|zTHlG0>3C747$tqtMp zQ|2#!>2gpRRD87N^||x#;0*D@(|5~6=PKUO~SvQhvEb8_On0UFHTS)$ypWzMm z{+P7O*2Ud1ixldlN+#IIxn6j~zn&F}d}UKtGxe7>vt|6PDk9k8LPqcs;T!E!t-Q4=b z70SuLGelqy0Mv5NzIPhi1#f4N|&H|{nGA19r zo=66ZZifzfi06KnhI3C%$OHJySmcp)K4z&n6&{K8n{|#7>w*WF-6vCY`B7 zEa~*9bVe5RIRDPBA2Dv?Lf+?n7+whUueRF+FGWK9o+Q4bJUAs|lJ(2B;w}+GDbz_M zx_*hDV&ii}r$AiSKs$RS+i3jXcIW*wE!MMI>*t?o_cy6P=g=bjVe5>oHsqlDjKg6} zBPhW~xm*dgQZ;D53h^`1+gu50D=t1%KYoIWX4aAzUt~`(ojv`k1FzWj37ekU;q2_5 z!XD~K8U-ydYc3l;-4M`Wbc5g7!YvQ)jJ&sQst)E88M`LAN*f86QeG zoik$MJt(96XAovlZS`+Hma zi8Sv1g0-EK8AwC*O}PsV{oDe0$vetBwc{iWf1mp?6%VKFGC&)^c(#-=na$ z`}5%Q?#36s1+Q^&Q?$A zMg$v8h)W{aU9p*&3x+QP(8^5p1d*^oZG?IaD-Q0v!jx!8oRuBd*J}#h=-JhF1}v@$fAN21cDgWj)Q^+KjXz`_#MH=`HS@ndJuI$+1+Vs+gXs+ zLQhSTH2u5dw{jSCW6NaQsadEN%LwM(%_Mqw6+)RoG8PuHVi36=|Q}E^W(J)Ei zE=QK+Vsr5Uadp-Qwj{Nq70(#-4NCFAB4>SR%V9CmTLx569Gl1tQxD5wJn5xU^tJ9u zbmM@J0EAOZ3c@fDooTVXfg9KE{jA)30Z-s5yn>hV0B!_z;l?WnLRCa9opC-%Eh07$ zk|E5?%X=>$FRVfjg(`}$kU5vCC#Wk~mq4&{pPaAC-~j6yfJ7@ay`n7&s*32eW>JG^ zASZjAoP$+Y)&>@_p>D>eW`^WjRjd>yWwn)RWB^pq5%VN?OpWFrBRqkhG)&_+fTB7; z&V9%%Bw+gT9{|1RL5+WOp&9FmWEMNi1HV|KGOYpNPX5RnjX8l0WC)lB z9WXWv?b4!r5{BJ~+ZyM#@fLu!YR73Hh@tktLIquDI0O>n3Q&h5aEx#TPQeXmK_GE~ zNR(WFChbNdlVxmd&u>2p4Jo`k+VQ-2{N8i^4G?>fg>;DV?hcgadnx}~-d}QsM~R2X z07Oj;gj4}$BAk_J0ef1=A|iScfZINRD;;LIfFOtU6JrV&O{#BOySe01%7op1dp%|73@=( z{#3jI(doboMhnQ4UGs_?oM8iXtR>ZPNE8!X33qJ_RsZbr=tpdIeI9`| z8l;$aT7%p*+X*}80ed+IWy_OF3I-Hl6UJ_E@&#Yi0yp`*Hbo=GotJHbI{S6w@@M|; zu-%m5J2&7x>s6IS6JOP&fNeZ(Y={E%Po%U=f9V#rPJP>4lt7 z4X)!Nsqvxq&Cqm8dmrP_)aWm)Rn@g+k3LE~(8m%_*9oV#6C?^#J2@s|H1k4+2jgMb zLD1o|Jv4pAterzRed3Cg z5Zr=1!)JWd{jR6`0t0e>XG|2c? zWp=IPL@-}Xi_oc1f{heZKX7c9_e;LNQxJavH~(IaKLCHM4^eajsqO#( N002ovPDHLkV1mX?&b|Nu literal 0 HcmV?d00001 diff --git a/Tado/Images.xcassets/AppIcon.appiconset/icon_32x32@2x.png b/Tado/Images.xcassets/AppIcon.appiconset/icon_32x32@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a51cc515918a04bcb3ec890cf7eb6c484eae1fb1 GIT binary patch literal 3290 zcmV<03?=i4P)RCwBajxi3xFbqYXlOlE|4#54- z(K~PeHW(^JQIy!&O(i;!A&Qmf|Gt}=#jutZQGd2S13m1+J=kS(i z+KZ+ppF$aSkysX0)UPHy=&f)>3-9?4u$eanRa0&>%IlCCyv+OwKsXuPAPmD$)J`kJ zOzgriTtOU>Sg2!gV1$CWw8X~W4x#kWT1pe8>39CK>l~_81P-NA7p99n_a=I<`Ru8) z7LfMZFw6xyW3_W$sgz|}T#x`m30}bw@l+f(qfPk8vya_4hj~fxs5E8@&e-ea%Ahow zdJ9?$<&|P#2$yk#KHq3#n-~q+j+O-m^*a6jnTMQ|7BLUN*T2ZDq|!v*L#1ri*Do-z#u zN60lOxB)n3{dn_Pdms)J!P5Gt^>}99XO0dq`Gy>l_LTZL6Mf+Il||ihy(tg+;0(sBHxzF~G(#@sAH6BV{x-?y%*XGt)wET2iL{Mq{`q zi(zzFos1cLxKzdVOa3DOOmrPW3F1$!#xm2up8-Tj?@>&g0^oD5K}fSoberF426q8Q zVl=P;5@0ct1%euTSjhwKBMQ1ef6hyxG@Q

i+n5Md7A-{5XAdcVB^JHlK=FNRO-k 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 literal 0 HcmV?d00001 diff --git a/Tado/Images.xcassets/AppIcon.appiconset/icon_512x512@2x.png b/Tado/Images.xcassets/AppIcon.appiconset/icon_512x512@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9b56ee0a10ca798b9cae161d21a6fc0c12d95a9f GIT binary patch literal 88425 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 literal 0 HcmV?d00001 diff --git a/Tado/Tado-Info.plist b/Tado/Tado-Info.plist new file mode 100644 index 0000000..1120ea1 --- /dev/null +++ b/Tado/Tado-Info.plist @@ -0,0 +1,36 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + com.rdougan.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + LSMinimumSystemVersion + ${MACOSX_DEPLOYMENT_TARGET} + NSHumanReadableCopyright + Copyright © 2014 Robert Dougan. All rights reserved. + NSMainNibFile + MainMenu + NSPrincipalClass + NSApplication + LSUIElement + 1 + + diff --git a/Tado/Tado-Prefix.pch b/Tado/Tado-Prefix.pch new file mode 100644 index 0000000..35d7640 --- /dev/null +++ b/Tado/Tado-Prefix.pch @@ -0,0 +1,9 @@ +// +// Prefix header +// +// The contents of this file are implicitly included at the beginning of every source file. +// + +#ifdef __OBJC__ + #import +#endif diff --git a/Tado/en.lproj/Credits.rtf b/Tado/en.lproj/Credits.rtf new file mode 100644 index 0000000..46576ef --- /dev/null +++ b/Tado/en.lproj/Credits.rtf @@ -0,0 +1,29 @@ +{\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;} +{\colortbl;\red255\green255\blue255;} +\paperw9840\paperh8400 +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural + +\f0\b\fs24 \cf0 Engineering: +\b0 \ + Some people\ +\ + +\b Human Interface Design: +\b0 \ + Some other people\ +\ + +\b Testing: +\b0 \ + Hopefully not nobody\ +\ + +\b Documentation: +\b0 \ + Whoever\ +\ + +\b With special thanks to: +\b0 \ + Mom\ +} diff --git a/Tado/en.lproj/InfoPlist.strings b/Tado/en.lproj/InfoPlist.strings new file mode 100644 index 0000000..477b28f --- /dev/null +++ b/Tado/en.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Tado/main.m b/Tado/main.m new file mode 100644 index 0000000..d1cbeca --- /dev/null +++ b/Tado/main.m @@ -0,0 +1,14 @@ +// +// main.m +// Tado +// +// Created by Robert Dougan on 17/07/14. +// Copyright (c) 2014 Robert Dougan. All rights reserved. +// + +#import + +int main(int argc, const char * argv[]) +{ + return NSApplicationMain(argc, argv); +} diff --git a/TadoTests/TadoTests-Info.plist b/TadoTests/TadoTests-Info.plist new file mode 100644 index 0000000..e06a426 --- /dev/null +++ b/TadoTests/TadoTests-Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + com.rdougan.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + + diff --git a/TadoTests/TadoTests.m b/TadoTests/TadoTests.m new file mode 100644 index 0000000..8e5e9d8 --- /dev/null +++ b/TadoTests/TadoTests.m @@ -0,0 +1,34 @@ +// +// TadoTests.m +// TadoTests +// +// Created by Robert Dougan on 17/07/14. +// Copyright (c) 2014 Robert Dougan. All rights reserved. +// + +#import + +@interface TadoTests : XCTestCase + +@end + +@implementation TadoTests + +- (void)setUp +{ + [super setUp]; + // Put setup code here. This method is called before the invocation of each test method in the class. +} + +- (void)tearDown +{ + // Put teardown code here. This method is called after the invocation of each test method in the class. + [super tearDown]; +} + +- (void)testExample +{ + XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__); +} + +@end diff --git a/TadoTests/en.lproj/InfoPlist.strings b/TadoTests/en.lproj/InfoPlist.strings new file mode 100644 index 0000000..477b28f --- /dev/null +++ b/TadoTests/en.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ +