From 47b2b6eac6ccf7f41fe505b493ac0f1a7d0a8738 Mon Sep 17 00:00:00 2001 From: rogerman Date: Wed, 29 Jan 2014 08:36:47 +0000 Subject: [PATCH] Cocoa Port: - Add controls for frame advance, frame jump, and display mode toggle. - Add new execution control panel. (Emulation > Show Execution Control) - Reorganize several menu items in the Emulation and View menus. --- .../project.pbxproj | 38 +- .../project.pbxproj | 18 + .../project.pbxproj | 20 +- desmume/src/cocoa/DefaultKeyMappings.plist | 9 + desmume/src/cocoa/DefaultUserPrefs.plist | 6 + desmume/src/cocoa/cocoa_core.h | 8 + desmume/src/cocoa/cocoa_core.mm | 186 +- desmume/src/cocoa/cocoa_globals.h | 13 +- desmume/src/cocoa/cocoa_input.h | 1 + desmume/src/cocoa/cocoa_input.mm | 83 + .../images/Icon_DisplayToggle_420x420.png | Bin 0 -> 30664 bytes .../images/Icon_FrameAdvance_420x420.png | Bin 0 -> 32403 bytes .../cocoa/images/Icon_FrameJump_420x420.png | Bin 0 -> 62542 bytes .../English.lproj/InfoPlist.strings | Bin 252 -> 260 bytes .../English.lproj/MainMenu.strings | Bin 313856 -> 310146 bytes .../translations/English.lproj/MainMenu.xib | 4021 ++++++++++++----- .../userinterface/DisplayWindowController.h | 4 + .../userinterface/DisplayWindowController.mm | 1 + .../userinterface/EmuControllerDelegate.h | 20 + .../userinterface/EmuControllerDelegate.mm | 196 +- .../src/cocoa/userinterface/InputManager.mm | 24 +- 21 files changed, 3408 insertions(+), 1240 deletions(-) create mode 100644 desmume/src/cocoa/images/Icon_DisplayToggle_420x420.png create mode 100644 desmume/src/cocoa/images/Icon_FrameAdvance_420x420.png create mode 100644 desmume/src/cocoa/images/Icon_FrameJump_420x420.png diff --git a/desmume/src/cocoa/DeSmuME (XCode 3).xcodeproj/project.pbxproj b/desmume/src/cocoa/DeSmuME (XCode 3).xcodeproj/project.pbxproj index 29c48b488..6c2e994fc 100644 --- a/desmume/src/cocoa/DeSmuME (XCode 3).xcodeproj/project.pbxproj +++ b/desmume/src/cocoa/DeSmuME (XCode 3).xcodeproj/project.pbxproj @@ -1101,6 +1101,21 @@ ABBCE29715ACB1FF00A2C965 /* arm_jit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBCE29515ACB1FF00A2C965 /* arm_jit.cpp */; }; ABBCE29815ACB1FF00A2C965 /* arm_jit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBCE29515ACB1FF00A2C965 /* arm_jit.cpp */; }; ABBF04A614B515F300E505A0 /* AppIcon_ROMCheats.icns in Resources */ = {isa = PBXBuildFile; fileRef = ABBF04A414B515F300E505A0 /* AppIcon_ROMCheats.icns */; }; + ABBFDFA71898EE3200A3FFA5 /* Icon_DisplayToggle_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABBFDFA61898EE3200A3FFA5 /* Icon_DisplayToggle_420x420.png */; }; + ABBFDFA81898EE3200A3FFA5 /* Icon_DisplayToggle_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABBFDFA61898EE3200A3FFA5 /* Icon_DisplayToggle_420x420.png */; }; + ABBFDFA91898EE3200A3FFA5 /* Icon_DisplayToggle_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABBFDFA61898EE3200A3FFA5 /* Icon_DisplayToggle_420x420.png */; }; + ABBFDFAA1898EE3200A3FFA5 /* Icon_DisplayToggle_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABBFDFA61898EE3200A3FFA5 /* Icon_DisplayToggle_420x420.png */; }; + ABBFDFAB1898EE3200A3FFA5 /* Icon_DisplayToggle_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABBFDFA61898EE3200A3FFA5 /* Icon_DisplayToggle_420x420.png */; }; + ABBFDFAE1898EE4B00A3FFA5 /* Icon_FrameAdvance_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABBFDFAC1898EE4B00A3FFA5 /* Icon_FrameAdvance_420x420.png */; }; + ABBFDFAF1898EE4B00A3FFA5 /* Icon_FrameJump_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABBFDFAD1898EE4B00A3FFA5 /* Icon_FrameJump_420x420.png */; }; + ABBFDFB01898EE4B00A3FFA5 /* Icon_FrameAdvance_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABBFDFAC1898EE4B00A3FFA5 /* Icon_FrameAdvance_420x420.png */; }; + ABBFDFB11898EE4B00A3FFA5 /* Icon_FrameJump_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABBFDFAD1898EE4B00A3FFA5 /* Icon_FrameJump_420x420.png */; }; + ABBFDFB21898EE4B00A3FFA5 /* Icon_FrameAdvance_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABBFDFAC1898EE4B00A3FFA5 /* Icon_FrameAdvance_420x420.png */; }; + ABBFDFB31898EE4B00A3FFA5 /* Icon_FrameJump_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABBFDFAD1898EE4B00A3FFA5 /* Icon_FrameJump_420x420.png */; }; + ABBFDFB41898EE4B00A3FFA5 /* Icon_FrameAdvance_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABBFDFAC1898EE4B00A3FFA5 /* Icon_FrameAdvance_420x420.png */; }; + ABBFDFB51898EE4B00A3FFA5 /* Icon_FrameJump_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABBFDFAD1898EE4B00A3FFA5 /* Icon_FrameJump_420x420.png */; }; + ABBFDFB61898EE4B00A3FFA5 /* Icon_FrameAdvance_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABBFDFAC1898EE4B00A3FFA5 /* Icon_FrameAdvance_420x420.png */; }; + ABBFDFB71898EE4B00A3FFA5 /* Icon_FrameJump_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABBFDFAD1898EE4B00A3FFA5 /* Icon_FrameJump_420x420.png */; }; ABC3AF3314B7F06900D5B13D /* Icon_VolumeFull_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = ABC3AF2B14B7F06900D5B13D /* Icon_VolumeFull_16x16.png */; }; ABC3AF3414B7F06900D5B13D /* Icon_VolumeMute_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = ABC3AF2C14B7F06900D5B13D /* Icon_VolumeMute_16x16.png */; }; ABC3AF3514B7F06900D5B13D /* Icon_VolumeOneThird_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = ABC3AF2D14B7F06900D5B13D /* Icon_VolumeOneThird_16x16.png */; }; @@ -1219,7 +1234,7 @@ 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; }; 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - AB00E87A14205EAE00DE561F /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = translations/English.lproj/InfoPlist.strings; sourceTree = ""; }; + AB00E87A14205EAE00DE561F /* English */ = {isa = PBXFileReference; fileEncoding = 2483028224; lastKnownFileType = text.plist.strings; lineEnding = 0; name = English; path = translations/English.lproj/InfoPlist.strings; sourceTree = ""; }; AB00E87D14205EBC00DE561F /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = translations/English.lproj/MainMenu.xib; sourceTree = ""; }; AB00E89114205ECC00DE561F /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; lineEnding = 0; name = English; path = translations/English.lproj/Localizable.strings; sourceTree = ""; }; AB02475B13886BF300E9F9AB /* KeyNames.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = KeyNames.plist; sourceTree = ""; }; @@ -1390,6 +1405,9 @@ ABBCE29D15ACB26100A2C965 /* instruction_attributes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = instruction_attributes.h; path = ../instruction_attributes.h; sourceTree = SOURCE_ROOT; }; ABBCE29E15ACB26100A2C965 /* instructions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = instructions.h; path = ../instructions.h; sourceTree = SOURCE_ROOT; }; ABBF04A414B515F300E505A0 /* AppIcon_ROMCheats.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = AppIcon_ROMCheats.icns; sourceTree = ""; }; + ABBFDFA61898EE3200A3FFA5 /* Icon_DisplayToggle_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_DisplayToggle_420x420.png; path = images/Icon_DisplayToggle_420x420.png; sourceTree = ""; }; + ABBFDFAC1898EE4B00A3FFA5 /* Icon_FrameAdvance_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_FrameAdvance_420x420.png; path = images/Icon_FrameAdvance_420x420.png; sourceTree = ""; }; + ABBFDFAD1898EE4B00A3FFA5 /* Icon_FrameJump_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_FrameJump_420x420.png; path = images/Icon_FrameJump_420x420.png; sourceTree = ""; }; ABC3AF2B14B7F06900D5B13D /* Icon_VolumeFull_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_VolumeFull_16x16.png; path = images/Icon_VolumeFull_16x16.png; sourceTree = ""; }; ABC3AF2C14B7F06900D5B13D /* Icon_VolumeMute_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_VolumeMute_16x16.png; path = images/Icon_VolumeMute_16x16.png; sourceTree = ""; }; ABC3AF2D14B7F06900D5B13D /* Icon_VolumeOneThird_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_VolumeOneThird_16x16.png; path = images/Icon_VolumeOneThird_16x16.png; sourceTree = ""; }; @@ -1993,6 +2011,7 @@ AB0F296C14BE705D009ABC6F /* Icon_CodeBreaker_128x128.png */, ABB97874144E89CC00793FA3 /* Icon_CodeBreaker_32x32.png */, ABB97875144E89CC00793FA3 /* Icon_DeSmuME_32x32.png */, + ABBFDFA61898EE3200A3FFA5 /* Icon_DisplayToggle_420x420.png */, AB0F299414BE7213009ABC6F /* Icon_DoubleSpeed_420x420.png */, AB0F299514BE7213009ABC6F /* Icon_DSButtonA_420x420.png */, AB0F299614BE7213009ABC6F /* Icon_DSButtonB_420x420.png */, @@ -2004,6 +2023,8 @@ AB0F299C14BE7213009ABC6F /* Icon_DSButtonY_420x420.png */, AB0F299D14BE7213009ABC6F /* Icon_Emulation_420x420.png */, AB0F28FE14BE6E68009ABC6F /* Icon_Execute_420x420.png */, + ABBFDFAC1898EE4B00A3FFA5 /* Icon_FrameAdvance_420x420.png */, + ABBFDFAD1898EE4B00A3FFA5 /* Icon_FrameJump_420x420.png */, ABD59813187D417900069403 /* Icon_GuitarGrip_Button_Blue_512x512.png */, ABD59814187D417900069403 /* Icon_GuitarGrip_Button_Green_512x512.png */, ABD59815187D417900069403 /* Icon_GuitarGrip_Button_Red_512x512.png */, @@ -2653,6 +2674,9 @@ ABD5982A187D417900069403 /* Icon_GuitarGrip_Button_Yellow_512x512.png in Resources */, ABD5983B187D466700069403 /* Icon_Piano_256x256.png in Resources */, ABD5984B187D4A6C00069403 /* Icon_PaddleKnob_256x256.png in Resources */, + ABBFDFAB1898EE3200A3FFA5 /* Icon_DisplayToggle_420x420.png in Resources */, + ABBFDFB61898EE4B00A3FFA5 /* Icon_FrameAdvance_420x420.png in Resources */, + ABBFDFB71898EE4B00A3FFA5 /* Icon_FrameJump_420x420.png in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2743,6 +2767,9 @@ ABD5981A187D417900069403 /* Icon_GuitarGrip_Button_Yellow_512x512.png in Resources */, ABD59837187D466700069403 /* Icon_Piano_256x256.png in Resources */, ABD59847187D4A6C00069403 /* Icon_PaddleKnob_256x256.png in Resources */, + ABBFDFA81898EE3200A3FFA5 /* Icon_DisplayToggle_420x420.png in Resources */, + ABBFDFB01898EE4B00A3FFA5 /* Icon_FrameAdvance_420x420.png in Resources */, + ABBFDFB11898EE4B00A3FFA5 /* Icon_FrameJump_420x420.png in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2833,6 +2860,9 @@ ABD5981E187D417900069403 /* Icon_GuitarGrip_Button_Yellow_512x512.png in Resources */, ABD59838187D466700069403 /* Icon_Piano_256x256.png in Resources */, ABD59848187D4A6C00069403 /* Icon_PaddleKnob_256x256.png in Resources */, + ABBFDFA71898EE3200A3FFA5 /* Icon_DisplayToggle_420x420.png in Resources */, + ABBFDFAE1898EE4B00A3FFA5 /* Icon_FrameAdvance_420x420.png in Resources */, + ABBFDFAF1898EE4B00A3FFA5 /* Icon_FrameJump_420x420.png in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2923,6 +2953,9 @@ ABD59826187D417900069403 /* Icon_GuitarGrip_Button_Yellow_512x512.png in Resources */, ABD5983A187D466700069403 /* Icon_Piano_256x256.png in Resources */, ABD5984A187D4A6C00069403 /* Icon_PaddleKnob_256x256.png in Resources */, + ABBFDFAA1898EE3200A3FFA5 /* Icon_DisplayToggle_420x420.png in Resources */, + ABBFDFB41898EE4B00A3FFA5 /* Icon_FrameAdvance_420x420.png in Resources */, + ABBFDFB51898EE4B00A3FFA5 /* Icon_FrameJump_420x420.png in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3013,6 +3046,9 @@ ABD59822187D417900069403 /* Icon_GuitarGrip_Button_Yellow_512x512.png in Resources */, ABD59839187D466700069403 /* Icon_Piano_256x256.png in Resources */, ABD59849187D4A6C00069403 /* Icon_PaddleKnob_256x256.png in Resources */, + ABBFDFA91898EE3200A3FFA5 /* Icon_DisplayToggle_420x420.png in Resources */, + ABBFDFB21898EE4B00A3FFA5 /* Icon_FrameAdvance_420x420.png in Resources */, + ABBFDFB31898EE4B00A3FFA5 /* Icon_FrameJump_420x420.png in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/desmume/src/cocoa/DeSmuME (XCode 4).xcodeproj/project.pbxproj b/desmume/src/cocoa/DeSmuME (XCode 4).xcodeproj/project.pbxproj index 096731268..f48a1056b 100644 --- a/desmume/src/cocoa/DeSmuME (XCode 4).xcodeproj/project.pbxproj +++ b/desmume/src/cocoa/DeSmuME (XCode 4).xcodeproj/project.pbxproj @@ -408,6 +408,12 @@ AB8967DE16D2ED2700F826F1 /* DisplayWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = AB8967DB16D2ED2700F826F1 /* DisplayWindow.xib */; }; AB901BDE1420706100348EEC /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = AB901BDD1420706100348EEC /* Localizable.strings */; }; AB91D46B13BD013800462471 /* fs-linux.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEB21345AC8400AF11D1 /* fs-linux.cpp */; }; + AB9A1F911898F0E7000DF924 /* Icon_DisplayToggle_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB9A1F901898F0E7000DF924 /* Icon_DisplayToggle_420x420.png */; }; + AB9A1F921898F0E7000DF924 /* Icon_DisplayToggle_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB9A1F901898F0E7000DF924 /* Icon_DisplayToggle_420x420.png */; }; + AB9A1F951898F0F7000DF924 /* Icon_FrameAdvance_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB9A1F931898F0F7000DF924 /* Icon_FrameAdvance_420x420.png */; }; + AB9A1F961898F0F7000DF924 /* Icon_FrameAdvance_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB9A1F931898F0F7000DF924 /* Icon_FrameAdvance_420x420.png */; }; + AB9A1F971898F0F7000DF924 /* Icon_FrameJump_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB9A1F941898F0F7000DF924 /* Icon_FrameJump_420x420.png */; }; + AB9A1F981898F0F7000DF924 /* Icon_FrameJump_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB9A1F941898F0F7000DF924 /* Icon_FrameJump_420x420.png */; }; ABA6574B14511EC90077E5E9 /* cocoa_cheat.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABA6574A14511EC90077E5E9 /* cocoa_cheat.mm */; }; ABACB8DC1710B621003B845D /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABACB8DB1710B621003B845D /* AudioToolbox.framework */; }; ABACB8DD1710B656003B845D /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABACB8DB1710B621003B845D /* AudioToolbox.framework */; }; @@ -888,6 +894,9 @@ AB901BE31420707D00348EEC /* Norwegian */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; lineEnding = 0; name = Norwegian; path = translations/Norwegian.lproj/Localizable.strings; sourceTree = ""; }; AB901BE41420708200348EEC /* Romanian */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; lineEnding = 0; name = Romanian; path = translations/Romanian.lproj/Localizable.strings; sourceTree = ""; }; AB9971CE134EDA0800531BA7 /* cocoa_globals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_globals.h; sourceTree = ""; }; + AB9A1F901898F0E7000DF924 /* Icon_DisplayToggle_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_DisplayToggle_420x420.png; path = images/Icon_DisplayToggle_420x420.png; sourceTree = ""; }; + AB9A1F931898F0F7000DF924 /* Icon_FrameAdvance_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_FrameAdvance_420x420.png; path = images/Icon_FrameAdvance_420x420.png; sourceTree = ""; }; + AB9A1F941898F0F7000DF924 /* Icon_FrameJump_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_FrameJump_420x420.png; path = images/Icon_FrameJump_420x420.png; sourceTree = ""; }; ABA6574914511EC90077E5E9 /* cocoa_cheat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_cheat.h; sourceTree = ""; }; ABA6574A14511EC90077E5E9 /* cocoa_cheat.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_cheat.mm; sourceTree = ""; }; ABACB8DB1710B621003B845D /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; @@ -1539,6 +1548,7 @@ AB0F296C14BE705D009ABC6F /* Icon_CodeBreaker_128x128.png */, ABB97874144E89CC00793FA3 /* Icon_CodeBreaker_32x32.png */, ABB97875144E89CC00793FA3 /* Icon_DeSmuME_32x32.png */, + AB9A1F901898F0E7000DF924 /* Icon_DisplayToggle_420x420.png */, AB0F299414BE7213009ABC6F /* Icon_DoubleSpeed_420x420.png */, AB0F299514BE7213009ABC6F /* Icon_DSButtonA_420x420.png */, AB0F299614BE7213009ABC6F /* Icon_DSButtonB_420x420.png */, @@ -1550,6 +1560,8 @@ AB0F299C14BE7213009ABC6F /* Icon_DSButtonY_420x420.png */, AB0F299D14BE7213009ABC6F /* Icon_Emulation_420x420.png */, AB0F28FE14BE6E68009ABC6F /* Icon_Execute_420x420.png */, + AB9A1F931898F0F7000DF924 /* Icon_FrameAdvance_420x420.png */, + AB9A1F941898F0F7000DF924 /* Icon_FrameJump_420x420.png */, ABBCA20D187D4BED00383DBE /* Icon_GuitarGrip_Button_Blue_512x512.png */, ABBCA20E187D4BED00383DBE /* Icon_GuitarGrip_Button_Green_512x512.png */, ABBCA20F187D4BED00383DBE /* Icon_GuitarGrip_Button_Red_512x512.png */, @@ -2020,6 +2032,7 @@ ABC3AF3114B7F06900D5B13D /* Icon_VolumeOneThird_16x16.png in Resources */, ABC3AF3214B7F06900D5B13D /* Icon_VolumeTwoThird_16x16.png in Resources */, AB0F290214BE6E68009ABC6F /* Icon_Execute_420x420.png in Resources */, + AB9A1F981898F0F7000DF924 /* Icon_FrameJump_420x420.png in Resources */, AB0F290314BE6E68009ABC6F /* Icon_Pause_420x420.png in Resources */, AB0F290414BE6E68009ABC6F /* Icon_Speed1x_420x420.png in Resources */, AB0F290514BE6E68009ABC6F /* Icon_Speed2x_420x420.png in Resources */, @@ -2051,11 +2064,13 @@ AB0F29A814BE7213009ABC6F /* Icon_DSButtonB_420x420.png in Resources */, AB0F29A914BE7213009ABC6F /* Icon_DSButtonL_420x420.png in Resources */, AB0F29AA14BE7213009ABC6F /* Icon_DSButtonR_420x420.png in Resources */, + AB9A1F921898F0E7000DF924 /* Icon_DisplayToggle_420x420.png in Resources */, AB0F29AB14BE7213009ABC6F /* Icon_DSButtonSelect_420x420.png in Resources */, AB0F29AC14BE7213009ABC6F /* Icon_DSButtonStart_420x420.png in Resources */, AB0F29AD14BE7213009ABC6F /* Icon_DSButtonX_420x420.png in Resources */, AB0F29AE14BE7213009ABC6F /* Icon_DSButtonY_420x420.png in Resources */, AB0F29AF14BE7213009ABC6F /* Icon_Emulation_420x420.png in Resources */, + AB9A1F961898F0F7000DF924 /* Icon_FrameAdvance_420x420.png in Resources */, AB0F29B014BE7213009ABC6F /* Icon_Input_420x420.png in Resources */, AB0F29B114BE7213009ABC6F /* Icon_Microphone_420x420.png in Resources */, AB0F29B214BE7213009ABC6F /* Icon_OpenROM_420x420.png in Resources */, @@ -2110,6 +2125,7 @@ AB796CB915CDCBA200C59155 /* Icon_VolumeOneThird_16x16.png in Resources */, AB796CBA15CDCBA200C59155 /* Icon_VolumeTwoThird_16x16.png in Resources */, AB796CBB15CDCBA200C59155 /* Icon_Execute_420x420.png in Resources */, + AB9A1F971898F0F7000DF924 /* Icon_FrameJump_420x420.png in Resources */, AB796CBC15CDCBA200C59155 /* Icon_Pause_420x420.png in Resources */, AB796CBD15CDCBA200C59155 /* Icon_Speed1x_420x420.png in Resources */, AB796CBE15CDCBA200C59155 /* Icon_Speed2x_420x420.png in Resources */, @@ -2141,11 +2157,13 @@ AB796CD815CDCBA200C59155 /* Icon_DSButtonB_420x420.png in Resources */, AB796CD915CDCBA200C59155 /* Icon_DSButtonL_420x420.png in Resources */, AB796CDA15CDCBA200C59155 /* Icon_DSButtonR_420x420.png in Resources */, + AB9A1F911898F0E7000DF924 /* Icon_DisplayToggle_420x420.png in Resources */, AB796CDB15CDCBA200C59155 /* Icon_DSButtonSelect_420x420.png in Resources */, AB796CDC15CDCBA200C59155 /* Icon_DSButtonStart_420x420.png in Resources */, AB796CDD15CDCBA200C59155 /* Icon_DSButtonX_420x420.png in Resources */, AB796CDE15CDCBA200C59155 /* Icon_DSButtonY_420x420.png in Resources */, AB796CDF15CDCBA200C59155 /* Icon_Emulation_420x420.png in Resources */, + AB9A1F951898F0F7000DF924 /* Icon_FrameAdvance_420x420.png in Resources */, AB796CE015CDCBA200C59155 /* Icon_Input_420x420.png in Resources */, AB796CE115CDCBA200C59155 /* Icon_Microphone_420x420.png in Resources */, AB796CE215CDCBA200C59155 /* Icon_OpenROM_420x420.png in Resources */, diff --git a/desmume/src/cocoa/DeSmuME (Xcode 5).xcodeproj/project.pbxproj b/desmume/src/cocoa/DeSmuME (Xcode 5).xcodeproj/project.pbxproj index 2d4b66c80..1e1c0210e 100644 --- a/desmume/src/cocoa/DeSmuME (Xcode 5).xcodeproj/project.pbxproj +++ b/desmume/src/cocoa/DeSmuME (Xcode 5).xcodeproj/project.pbxproj @@ -672,6 +672,12 @@ ABD1FF9F1345ACFA00AF11D1 /* metaspu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF771345ACFA00AF11D1 /* metaspu.cpp */; }; ABD42047172319D1006A9B46 /* FileMigrationDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD42046172319D1006A9B46 /* FileMigrationDelegate.mm */; }; ABD42048172319D1006A9B46 /* FileMigrationDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD42046172319D1006A9B46 /* FileMigrationDelegate.mm */; }; + ABDDF7C51898F024007583C1 /* Icon_DisplayToggle_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABDDF7C41898F024007583C1 /* Icon_DisplayToggle_420x420.png */; }; + ABDDF7C61898F024007583C1 /* Icon_DisplayToggle_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABDDF7C41898F024007583C1 /* Icon_DisplayToggle_420x420.png */; }; + ABDDF7C91898F032007583C1 /* Icon_FrameAdvance_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABDDF7C71898F032007583C1 /* Icon_FrameAdvance_420x420.png */; }; + ABDDF7CA1898F032007583C1 /* Icon_FrameAdvance_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABDDF7C71898F032007583C1 /* Icon_FrameAdvance_420x420.png */; }; + ABDDF7CB1898F032007583C1 /* Icon_FrameJump_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABDDF7C81898F032007583C1 /* Icon_FrameJump_420x420.png */; }; + ABDDF7CC1898F032007583C1 /* Icon_FrameJump_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABDDF7C81898F032007583C1 /* Icon_FrameJump_420x420.png */; }; ABE5DE95143F781900835AD8 /* videofilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB817A35143EE2DB00A7DFE9 /* videofilter.cpp */; }; ABE5DFE5143FB1DA00835AD8 /* cocoa_videofilter.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABE5DFE4143FB1DA00835AD8 /* cocoa_videofilter.mm */; }; ABE6702B1415DE6C00E8E4C9 /* tinystr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABE670251415DE6C00E8E4C9 /* tinystr.cpp */; }; @@ -703,7 +709,7 @@ 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 8D1107320486CEB800E47090 /* DeSmuME (Debug).app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "DeSmuME (Debug).app"; sourceTree = BUILT_PRODUCTS_DIR; }; AB0038A61872A96700B0B055 /* Image_PaddleController.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Image_PaddleController.png; path = images/Image_PaddleController.png; sourceTree = ""; }; - AB00E87A14205EAE00DE561F /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = translations/English.lproj/InfoPlist.strings; sourceTree = ""; }; + AB00E87A14205EAE00DE561F /* English */ = {isa = PBXFileReference; fileEncoding = 2483028224; lastKnownFileType = text.plist.strings; name = English; path = translations/English.lproj/InfoPlist.strings; sourceTree = ""; }; AB00E87D14205EBC00DE561F /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = translations/English.lproj/MainMenu.xib; sourceTree = ""; }; AB00E89114205ECC00DE561F /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; lineEnding = 0; name = English; path = translations/English.lproj/Localizable.strings; sourceTree = ""; }; AB01005C170D07AF00D70FBE /* InputProfileController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InputProfileController.h; sourceTree = ""; }; @@ -1141,6 +1147,9 @@ ABD1FF9B1345ACFA00AF11D1 /* Timestretcher.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Timestretcher.cpp; sourceTree = ""; }; ABD42045172319D1006A9B46 /* FileMigrationDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FileMigrationDelegate.h; sourceTree = ""; }; ABD42046172319D1006A9B46 /* FileMigrationDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FileMigrationDelegate.mm; sourceTree = ""; }; + ABDDF7C41898F024007583C1 /* Icon_DisplayToggle_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_DisplayToggle_420x420.png; path = ../../../../../../../Volumes/rogerman/desmume/trunk/desmume/src/cocoa/images/Icon_DisplayToggle_420x420.png; sourceTree = ""; }; + ABDDF7C71898F032007583C1 /* Icon_FrameAdvance_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_FrameAdvance_420x420.png; path = ../../../../../../../Volumes/rogerman/desmume/trunk/desmume/src/cocoa/images/Icon_FrameAdvance_420x420.png; sourceTree = ""; }; + ABDDF7C81898F032007583C1 /* Icon_FrameJump_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_FrameJump_420x420.png; path = ../../../../../../../Volumes/rogerman/desmume/trunk/desmume/src/cocoa/images/Icon_FrameJump_420x420.png; sourceTree = ""; }; ABE5DFE3143FB1DA00835AD8 /* cocoa_videofilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_videofilter.h; sourceTree = ""; }; ABE5DFE4143FB1DA00835AD8 /* cocoa_videofilter.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_videofilter.mm; sourceTree = ""; }; ABE670251415DE6C00E8E4C9 /* tinystr.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tinystr.cpp; sourceTree = ""; }; @@ -1539,6 +1548,7 @@ AB0F296C14BE705D009ABC6F /* Icon_CodeBreaker_128x128.png */, ABB97874144E89CC00793FA3 /* Icon_CodeBreaker_32x32.png */, ABB97875144E89CC00793FA3 /* Icon_DeSmuME_32x32.png */, + ABDDF7C41898F024007583C1 /* Icon_DisplayToggle_420x420.png */, AB0F299414BE7213009ABC6F /* Icon_DoubleSpeed_420x420.png */, AB0F299514BE7213009ABC6F /* Icon_DSButtonA_420x420.png */, AB0F299614BE7213009ABC6F /* Icon_DSButtonB_420x420.png */, @@ -1550,6 +1560,8 @@ AB0F299C14BE7213009ABC6F /* Icon_DSButtonY_420x420.png */, AB0F299D14BE7213009ABC6F /* Icon_Emulation_420x420.png */, AB0F28FE14BE6E68009ABC6F /* Icon_Execute_420x420.png */, + ABDDF7C71898F032007583C1 /* Icon_FrameAdvance_420x420.png */, + ABDDF7C81898F032007583C1 /* Icon_FrameJump_420x420.png */, AB681013187D4AEF0049F2C2 /* Icon_GuitarGrip_Button_Blue_512x512.png */, AB681014187D4AEF0049F2C2 /* Icon_GuitarGrip_Button_Green_512x512.png */, AB681015187D4AEF0049F2C2 /* Icon_GuitarGrip_Button_Red_512x512.png */, @@ -2020,6 +2032,7 @@ ABC3AF3014B7F06900D5B13D /* Icon_VolumeMute_16x16.png in Resources */, ABC3AF3114B7F06900D5B13D /* Icon_VolumeOneThird_16x16.png in Resources */, ABC3AF3214B7F06900D5B13D /* Icon_VolumeTwoThird_16x16.png in Resources */, + ABDDF7CC1898F032007583C1 /* Icon_FrameJump_420x420.png in Resources */, AB0F290214BE6E68009ABC6F /* Icon_Execute_420x420.png in Resources */, AB0F290314BE6E68009ABC6F /* Icon_Pause_420x420.png in Resources */, AB0F290414BE6E68009ABC6F /* Icon_Speed1x_420x420.png in Resources */, @@ -2051,11 +2064,13 @@ AB0F298C14BE71E0009ABC6F /* Icon_ArrowDown_420x420.png in Resources */, AB0F298D14BE71E0009ABC6F /* Icon_ArrowLeft_420x420.png in Resources */, AB0F298E14BE71E0009ABC6F /* Icon_ArrowRight_420x420.png in Resources */, + ABDDF7C61898F024007583C1 /* Icon_DisplayToggle_420x420.png in Resources */, AB0F298F14BE71E0009ABC6F /* Icon_ArrowUp_420x420.png in Resources */, AB0F29A614BE7213009ABC6F /* Icon_DoubleSpeed_420x420.png in Resources */, AB0F29A714BE7213009ABC6F /* Icon_DSButtonA_420x420.png in Resources */, AB0F29A814BE7213009ABC6F /* Icon_DSButtonB_420x420.png in Resources */, AB681028187D4AEF0049F2C2 /* Icon_Piano_256x256.png in Resources */, + ABDDF7CA1898F032007583C1 /* Icon_FrameAdvance_420x420.png in Resources */, AB0F29A914BE7213009ABC6F /* Icon_DSButtonL_420x420.png in Resources */, AB0F29AA14BE7213009ABC6F /* Icon_DSButtonR_420x420.png in Resources */, AB0F29AB14BE7213009ABC6F /* Icon_DSButtonSelect_420x420.png in Resources */, @@ -2110,6 +2125,7 @@ AB796CB815CDCBA200C59155 /* Icon_VolumeMute_16x16.png in Resources */, AB796CB915CDCBA200C59155 /* Icon_VolumeOneThird_16x16.png in Resources */, AB796CBA15CDCBA200C59155 /* Icon_VolumeTwoThird_16x16.png in Resources */, + ABDDF7CB1898F032007583C1 /* Icon_FrameJump_420x420.png in Resources */, AB796CBB15CDCBA200C59155 /* Icon_Execute_420x420.png in Resources */, AB796CBC15CDCBA200C59155 /* Icon_Pause_420x420.png in Resources */, AB796CBD15CDCBA200C59155 /* Icon_Speed1x_420x420.png in Resources */, @@ -2141,11 +2157,13 @@ AB796CD215CDCBA200C59155 /* Icon_ArrowDown_420x420.png in Resources */, AB796CD315CDCBA200C59155 /* Icon_ArrowLeft_420x420.png in Resources */, AB796CD415CDCBA200C59155 /* Icon_ArrowRight_420x420.png in Resources */, + ABDDF7C51898F024007583C1 /* Icon_DisplayToggle_420x420.png in Resources */, AB796CD515CDCBA200C59155 /* Icon_ArrowUp_420x420.png in Resources */, AB796CD615CDCBA200C59155 /* Icon_DoubleSpeed_420x420.png in Resources */, AB796CD715CDCBA200C59155 /* Icon_DSButtonA_420x420.png in Resources */, AB796CD815CDCBA200C59155 /* Icon_DSButtonB_420x420.png in Resources */, AB681027187D4AEF0049F2C2 /* Icon_Piano_256x256.png in Resources */, + ABDDF7C91898F032007583C1 /* Icon_FrameAdvance_420x420.png in Resources */, AB796CD915CDCBA200C59155 /* Icon_DSButtonL_420x420.png in Resources */, AB796CDA15CDCBA200C59155 /* Icon_DSButtonR_420x420.png in Resources */, AB796CDB15CDCBA200C59155 /* Icon_DSButtonSelect_420x420.png in Resources */, diff --git a/desmume/src/cocoa/DefaultKeyMappings.plist b/desmume/src/cocoa/DefaultKeyMappings.plist index 3c93abd51..5f5056ce2 100644 --- a/desmume/src/cocoa/DefaultKeyMappings.plist +++ b/desmume/src/cocoa/DefaultKeyMappings.plist @@ -39,6 +39,8 @@ Piano: High C Paddle Execute/Pause + Frame Advance + Frame Jump Reset Mute/Unmute Load State Slot @@ -46,6 +48,7 @@ Copy Screen Rotate Display Left Rotate Display Right + Toggle All Displays Set Speed Enable/Disable Speed Limiter Enable/Disable Auto Frame Skip @@ -622,6 +625,10 @@ Forward Delete + Frame Advance + + Frame Jump + Reset @@ -679,6 +686,8 @@ 90 + Toggle All Displays + Set Speed diff --git a/desmume/src/cocoa/DefaultUserPrefs.plist b/desmume/src/cocoa/DefaultUserPrefs.plist index 8df98e9c5..ded56e410 100644 --- a/desmume/src/cocoa/DefaultUserPrefs.plist +++ b/desmume/src/cocoa/DefaultUserPrefs.plist @@ -164,6 +164,10 @@ Forward Delete + Frame Advance + + Frame Jump + Guitar Grip: Blue @@ -611,6 +615,8 @@ Return + Toggle All Displays + Touch diff --git a/desmume/src/cocoa/cocoa_core.h b/desmume/src/cocoa/cocoa_core.h index 8d3151e1b..9d4a85546 100644 --- a/desmume/src/cocoa/cocoa_core.h +++ b/desmume/src/cocoa/cocoa_core.h @@ -35,6 +35,7 @@ typedef struct int state; bool isFrameSkipEnabled; size_t frameCount; + NSUInteger frameJumpTarget; int framesToSkip; uint64_t timeBudgetMachAbsTime; bool exitThread; @@ -72,6 +73,8 @@ typedef struct NSInteger cpuEmulationEngine; NSInteger slot1DeviceType; NSString *slot1StatusText; + NSString *frameStatus; + NSString *executionSpeedStatus; NSURL *slot1R4URL; @@ -110,6 +113,8 @@ typedef struct @property (assign) NSInteger maxJITBlockSize; @property (assign) NSInteger slot1DeviceType; @property (assign) NSString *slot1StatusText; +@property (assign) NSString *frameStatus; +@property (assign) NSString *executionSpeedStatus; @property (copy) NSURL *arm9ImageURL; @property (copy) NSURL *arm7ImageURL; @@ -133,6 +138,9 @@ typedef struct - (void) restoreCoreState; - (void) reset; +- (NSUInteger) frameNumber; +- (void) frameJumpTo:(NSUInteger)targetFrameNum; +- (void) frameJump:(NSUInteger)relativeFrameNum; - (void) addOutput:(CocoaDSOutput *)theOutput; - (void) removeOutput:(CocoaDSOutput *)theOutput; diff --git a/desmume/src/cocoa/cocoa_core.mm b/desmume/src/cocoa/cocoa_core.mm index 3626cacaa..9c77fba63 100644 --- a/desmume/src/cocoa/cocoa_core.mm +++ b/desmume/src/cocoa/cocoa_core.mm @@ -31,6 +31,7 @@ #include "../NDSSystem.h" #include "../slot1.h" #include "../slot2.h" +#include "../movie.h" #undef BOOL @@ -65,6 +66,8 @@ volatile bool execute = true; @dynamic maxJITBlockSize; @synthesize slot1DeviceType; @synthesize slot1StatusText; +@synthesize frameStatus; +@synthesize executionSpeedStatus; @dynamic arm9ImageURL; @dynamic arm7ImageURL; @@ -122,6 +125,7 @@ static BOOL isCoreStarted = NO; threadParam.isFrameSkipEnabled = true; threadParam.frameCount = 0; threadParam.framesToSkip = 0; + threadParam.frameJumpTarget = 0; uint64_t timeBudgetNanoseconds = (uint64_t)(DS_SECONDS_PER_FRAME * 1000000000.0 / speedScalar); AbsoluteTime timeBudgetAbsTime = NanosecondsToAbsolute(*(Nanoseconds *)&timeBudgetNanoseconds); @@ -136,6 +140,9 @@ static BOOL isCoreStarted = NO; [cdsGPU setMutexProducer:self.mutexCoreExecute]; + frameStatus = @"---"; + executionSpeedStatus = @"1.00x"; + return self; } @@ -497,16 +504,33 @@ static BOOL isCoreStarted = NO; { pthread_mutex_lock(&threadParam.mutexThreadExecute); - if (threadParam.state == CORESTATE_PAUSE) + if (threadParam.state == CORESTATE_EXECUTE || threadParam.state == CORESTATE_PAUSE) { - prevCoreState = CORESTATE_PAUSE; - } - else - { - prevCoreState = CORESTATE_EXECUTE; + prevCoreState = threadParam.state; } threadParam.state = coreState; + threadParam.framesToSkip = 0; + + switch (coreState) + { + case CORESTATE_PAUSE: + case CORESTATE_FRAMEADVANCE: + [self setFrameStatus:[NSString stringWithFormat:@"%lld", (unsigned long)[self frameNumber]]]; + break; + + case CORESTATE_EXECUTE: + [self setFrameStatus:@"Executing..."]; + break; + + case CORESTATE_FRAMEJUMP: + [self setFrameStatus:[NSString stringWithFormat:@"Jumping to frame %lld.", (unsigned long)threadParam.frameJumpTarget]]; + break; + + default: + break; + } + pthread_cond_signal(&threadParam.condThreadExecute); pthread_mutex_unlock(&threadParam.mutexThreadExecute); } @@ -622,12 +646,16 @@ static BOOL isCoreStarted = NO; pthread_mutex_lock(&threadParam.mutexThreadExecute); threadParam.timeBudgetMachAbsTime = GetFrameAbsoluteTime(1.0/theSpeed); pthread_mutex_unlock(&threadParam.mutexThreadExecute); + + [self setExecutionSpeedStatus:[NSString stringWithFormat:@"%1.2fx", theSpeed]]; } else { pthread_mutex_lock(&threadParam.mutexThreadExecute); threadParam.timeBudgetMachAbsTime = 0; pthread_mutex_unlock(&threadParam.mutexThreadExecute); + + [self setExecutionSpeedStatus:@"Unlimited"]; } } @@ -721,6 +749,36 @@ static BOOL isCoreStarted = NO; self.masterExecute = YES; } +- (NSUInteger) frameNumber +{ + pthread_mutex_lock(&threadParam.mutexCoreExecute); + const NSUInteger currFrameNum = currFrameCounter; + pthread_mutex_unlock(&threadParam.mutexCoreExecute); + + return currFrameNum; +} + +- (void) frameJumpTo:(NSUInteger)targetFrameNum +{ + pthread_mutex_lock(&threadParam.mutexThreadExecute); + + threadParam.frameJumpTarget = targetFrameNum; + if (targetFrameNum <= (NSUInteger)currFrameCounter) + { + pthread_mutex_unlock(&threadParam.mutexThreadExecute); + return; + } + + pthread_mutex_unlock(&threadParam.mutexThreadExecute); + + [self setCoreState:CORESTATE_FRAMEJUMP]; +} + +- (void) frameJump:(NSUInteger)relativeFrameNum +{ + [self frameJumpTo:[self frameNumber] + relativeFrameNum]; +} + - (void) addOutput:(CocoaDSOutput *)theOutput { pthread_mutex_lock(&threadParam.mutexOutputList); @@ -818,6 +876,7 @@ static void* RunCoreThread(void *arg) CoreThreadParam *param = (CoreThreadParam *)arg; CocoaDSCore *cdsCore = (CocoaDSCore *)param->cdsCore; NSMutableArray *cdsOutputList = [cdsCore cdsOutputList]; + NSUInteger frameNum = 0; uint64_t startTime = 0; uint64_t timeBudget = 0; // Need local variable to ensure that param->timeBudgetMachAbsTime is thread-safe. @@ -827,7 +886,7 @@ static void* RunCoreThread(void *arg) pthread_mutex_lock(¶m->mutexThreadExecute); timeBudget = param->timeBudgetMachAbsTime; - while (!(param->state == CORESTATE_EXECUTE && execute && !param->exitThread)) + while (!(param->state != CORESTATE_PAUSE && execute && !param->exitThread)) { pthread_cond_wait(¶m->condThreadExecute, ¶m->mutexThreadExecute); startTime = mach_absolute_time(); @@ -840,9 +899,14 @@ static void* RunCoreThread(void *arg) break; } - // Get the user's input, execute a single emulation frame, and generate - // the frame output. - [(CocoaDSController *)param->cdsController flush]; + if (param->state != CORESTATE_FRAMEJUMP) + { + [(CocoaDSController *)param->cdsController flush]; + } + else + { + [(CocoaDSController *)param->cdsController flushEmpty]; + } NDS_beginProcessingInput(); // Shouldn't need to do any special processing steps in between. @@ -852,6 +916,7 @@ static void* RunCoreThread(void *arg) // Execute the frame and increment the frame counter. pthread_mutex_lock(¶m->mutexCoreExecute); NDS_exec(); + frameNum = currFrameCounter; pthread_mutex_unlock(¶m->mutexCoreExecute); // Check if an internal execution error occurred that halted the emulation. @@ -869,36 +934,107 @@ static void* RunCoreThread(void *arg) } pthread_mutex_lock(¶m->mutexOutputList); - for(CocoaDSOutput *cdsOutput in cdsOutputList) + + switch (param->state) { - if (param->framesToSkip > 0 && [cdsOutput isKindOfClass:[CocoaDSDisplay class]]) + case CORESTATE_EXECUTE: { - continue; + for(CocoaDSOutput *cdsOutput in cdsOutputList) + { + if (param->framesToSkip > 0 && [cdsOutput isKindOfClass:[CocoaDSDisplay class]]) + { + continue; + } + + [cdsOutput doCoreEmuFrame]; + } + break; } - - [cdsOutput doCoreEmuFrame]; + + case CORESTATE_FRAMEADVANCE: + for(CocoaDSOutput *cdsOutput in cdsOutputList) + { + [cdsOutput doCoreEmuFrame]; + } + break; + + case CORESTATE_FRAMEJUMP: + { + for(CocoaDSOutput *cdsOutput in cdsOutputList) + { + if ([cdsOutput isKindOfClass:[CocoaDSDisplay class]] && (param->framesToSkip == 0 || frameNum >= param->frameJumpTarget)) + { + [cdsOutput doCoreEmuFrame]; + } + } + break; + } + + default: + break; } + pthread_mutex_unlock(¶m->mutexOutputList); - // Determine the number of frames to skip based on how much time "debt" - // we owe on timeBudget. - if (param->isFrameSkipEnabled) + switch (param->state) { - if (param->framesToSkip > 0) + case CORESTATE_EXECUTE: { - NDS_SkipNextFrame(); - param->framesToSkip--; + // Determine the number of frames to skip based on how much time "debt" + // we owe on timeBudget. + if (param->isFrameSkipEnabled) + { + if (param->framesToSkip > 0) + { + NDS_SkipNextFrame(); + param->framesToSkip--; + } + else + { + param->framesToSkip = CalculateFrameSkip(timeBudget, startTime); + } + } + break; } - else + + case CORESTATE_FRAMEJUMP: { - param->framesToSkip = CalculateFrameSkip(timeBudget, startTime); + if (param->framesToSkip > 0) + { + NDS_SkipNextFrame(); + param->framesToSkip--; + } + else + { + param->framesToSkip = (int)((DS_FRAMES_PER_SECOND * 1.0) + 0.85); + } + break; } + + default: + break; } pthread_mutex_unlock(¶m->mutexThreadExecute); - // If there is any time left in the loop, go ahead and pad it. - mach_wait_until(startTime + timeBudget); + // If we doing a frame advance, switch back to pause state immediately + // after we're done with the frame. + if (param->state == CORESTATE_FRAMEADVANCE) + { + [cdsCore setCoreState:CORESTATE_PAUSE]; + } + else if (param->state == CORESTATE_FRAMEJUMP) + { + if (frameNum >= param->frameJumpTarget) + { + [cdsCore restoreCoreState]; + } + } + else + { + // If there is any time left in the loop, go ahead and pad it. + mach_wait_until(startTime + timeBudget); + } } while (!param->exitThread); diff --git a/desmume/src/cocoa/cocoa_globals.h b/desmume/src/cocoa/cocoa_globals.h index 6f3c16a47..a7d84afde 100644 --- a/desmume/src/cocoa/cocoa_globals.h +++ b/desmume/src/cocoa/cocoa_globals.h @@ -487,8 +487,10 @@ enum */ enum { - CORESTATE_EXECUTE = 0, - CORESTATE_PAUSE + CORESTATE_PAUSE = 0, + CORESTATE_EXECUTE, + CORESTATE_FRAMEADVANCE, + CORESTATE_FRAMEJUMP }; /* @@ -514,6 +516,13 @@ enum MICMODE_SINE_WAVE }; +enum +{ + FRAMEJUMP_TYPE_FORWARD = 0, + FRAMEJUMP_TYPE_TOFRAME = 1, + FRAMEJUMP_TYPE_NEXTMARKER = 2 +}; + enum { PADDLE_CONTROL_RELATIVE = 0, diff --git a/desmume/src/cocoa/cocoa_input.h b/desmume/src/cocoa/cocoa_input.h index f216b1dcc..8e5f8906d 100644 --- a/desmume/src/cocoa/cocoa_input.h +++ b/desmume/src/cocoa/cocoa_input.h @@ -83,5 +83,6 @@ enum - (void) setMicrophoneState:(BOOL)theState inputMode:(const NSInteger)inputMode; - (void) setSineWaveGeneratorFrequency:(const double)freq; - (void) flush; +- (void) flushEmpty; @end diff --git a/desmume/src/cocoa/cocoa_input.mm b/desmume/src/cocoa/cocoa_input.mm index 70c1139d7..5022bc85a 100644 --- a/desmume/src/cocoa/cocoa_input.mm +++ b/desmume/src/cocoa/cocoa_input.mm @@ -235,4 +235,87 @@ } } +- (void) flushEmpty +{ + // Setup the DS pad. + NDS_setPad(false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false); + + // Setup the DS touch pad. + NDS_releaseTouch(); + + // Setup the inputs from SLOT-2 devices. + const NDS_SLOT2_TYPE slot2DeviceType = slot2_GetSelectedType(); + switch (slot2DeviceType) + { + case NDS_SLOT2_GUITARGRIP: + guitarGrip_setKey(false, + false, + false, + false); + break; + + case NDS_SLOT2_EASYPIANO: + piano_setKey(false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false); + break; + + case NDS_SLOT2_PADDLE: + // Do nothing. + break; + + default: + break; + } + + // Setup the DS mic. + AudioGenerator *selectedGenerator = &nullSampleGenerator; + + NDS_setMic(false); + + static const bool useBufferedSource = false; + Mic_SetUseBufferedSource(useBufferedSource); + if (useBufferedSource) + { + static u8 generatedSampleBuffer[(size_t)(MIC_MAX_BUFFER_SAMPLES + 0.5)] = {0}; + static const size_t requestedSamples = MIC_MAX_BUFFER_SAMPLES; + + const size_t availableSamples = micInputBuffer.getAvailableElements(); + if (availableSamples < requestedSamples) + { + micInputBuffer.drop(requestedSamples - availableSamples); + } + + selectedGenerator->generateSampleBlock(requestedSamples, generatedSampleBuffer); + micInputBuffer.write(generatedSampleBuffer, requestedSamples); + } + else + { + Mic_SetSelectedDirectSampleGenerator(selectedGenerator); + } +} + @end diff --git a/desmume/src/cocoa/images/Icon_DisplayToggle_420x420.png b/desmume/src/cocoa/images/Icon_DisplayToggle_420x420.png new file mode 100644 index 0000000000000000000000000000000000000000..8ea8225aa38fcf09cf530a7ea342d05cb91988bb GIT binary patch literal 30664 zcmd2?^;euduwLA)6qf?U-QC^Y-QC^Yo#O7cxGnBhTo<=Ofx;riN{e2;d;f|1Lr!v% z_atwgnIw~$CvmFEGHA$z$N&HUO-@!)9RPr;_%9*Cf7Apks&Rc}NUpMa9smFe_J0Wq zkXL{Y03fT_Nl2)w+PZkUc-XqQlF3O(kh!|MSlc;T0RX;Rg&H=R8fUmdk9+sx3bCOX z3NGq6h-B*G38A0UsOia(Fy&*(OE+=UhOwliV2Qq$#KI&ehbH2vF`~vJZy@|6FH4Rn zkBy&x{t-~_u-5l@GWXW8E__;lSJ<|IFocMjCCj146^dFbPKtF9F*!Ez<0rFd7&4_R z028szlHB9(0Lpg-1rac$lt08u9P^HGE}m-$6&eXOB(1>|T|AAC)t6(=JpH!FuB9j|}jt(;^?YtZw!)Ijq~%|$slwSrt?AgcM5a!qqpOQI#*Eu;D=}M(i zvl%fN(s_0K7cBVl_;4_ANEya%6ea`v_h4l9Ua^vR;Tuw<`OZm-%u6TA`wPhm#h9FV zw=VtXBehR%$&z`AckGoEapK?T#;KOyEf4n@pJ9aexd6@f!cYNeOf^OpFn<(iFm*kL z4j%!4+g_L9Ra!)tP}_(f3qJ4HBCj$fRDe)xxo>U&fUzVcv*vW0$Rr{FAXySd-z-LS zKa9^f1W!B+w=<0LV#*yUPB}Irjwz088A|MKN>?8)P8&VfOhRwUvMNf#IizMAo$iXx zJfhWwF64^wWQJHYOxqWR1S|F(5!;M>D;CN;UiWJ&ie&HiH$TgP>1fHQ1b9d33r&SZXN|AM*qK}CzkiI|MFp(V)2N5Hos@WF4&QLG|ZNg$ZiWaVLlGl}R~G;4uXz&#*})}7XjW=gHGMo^=)7Kg@BEz)XMoffcA6{10; zVN)wm69crVanTg12-bUzgV!5X995C1P%CLMIqI7rL$M%e^JOG=K&y-P3ga51ZkgK* z^rr94c_ryh5CYbg@=0*WbLh0G-(^^fAROhm{VniRMmnXf&b|wd-}`(`cSuK6#i`iM zW@YFA%*xKvt&^=&tCNBBb2naA7gqI4_3Ax`p^Ht*(-_jo*rd$E6`pErYV1}cSK}%P z@jo;&105=fN_!=J2A!*~a*76wLyHt$s`vc*PoIc`SY9<>ot~;6WKebC+fXUtw^8Tu z1;@GETm(s2Cbw_YB#cHyB`VD_&9Z+)rgbj~mV>2}q%jihCJc`#kDMl)Cd#SdsmZAo zl+Kl|^3;{OtLUl(6a^F~=Vs^1=GJn#@`c#e*-!IN^VjqDJ5BX{^%+4mpe`%9)}Q)S zdRL%6=O}$Xy-HmzeWNz%hQbD_wcdu_YOLyR<#gq`qBWb*<{QuysJ4@!`FI0r5gNeZ4trj#4KSn7?ma}CQ2t-B-u4qmvD(Ko6BcuN5W%Y@<}pFaxdS8O@*(C zNuG;d7|3idxW&`M*&{N+Y^^s7)-BYPb5tPaW2SH9c6J=tf4RJiIV?OxISRnbVfk+4 z>Q_2HavxQVTg&{3kv~gRF;Q2+4>I1+Shk1>O9%k&kfT7^1b|>jk^wLG(^w zmAXrv?8e}JYJVk%FyrCr@Zk<92MCH5@^MrUWM}=-NJW=LZ@e$FR3>{1 zdh;5)4IR3#{QElstRK&aig@OC@B963aNpO!MSMcL{dfK@kK>OI`?$No?liCSGrgNW zG*=CMDt#vRqL*Tu61y>A5rem#jq9Bd`yro_yQLkONBF3Sg}1ba6buQtl-!h=XtZcZ z5w9>G-=T>6>)A`S#De7lbrIfM+1pGb9xhApUod2Seko_EH2XF?eb6be^7VWOLeR85 zF)~3qFy+g^W_+*xd^zm1<3n;?zK@~uGmtEV_TBbh%Y(*Z^>aEwdipyoOwQel1qaji zhrLN=A*-$g0Qge@0HF~8z`ys8{0so_Vg&%sO#uM@8~^~%<(tX4GyvduCnqVU>AQ8& z-W0m4Kbf z!I95Xa)}J_911Z*R>)fpt9SM4Vz%)4ua}P21RwihT3Rla9(dR9`ts@FF<`0lS;xpI zGdB~fn3rZ=VixtYl-lP92?a#T_%hmf(T`L{3mx~7QKbG?{J)z2Yy7{O|7|S$fB5Xs|C%?PW1#T@VB#KTGv91B3!@sZtRu*3nB&-;&E}t`X!x zcm;@*&}SWCzqTe3sp9=f*3vEk%+PV7{vBlg^Vdjp@lQW~+^vRS%fc?#g{K+b^q#(; zNvS=HO?f~0VJpHe+aOnnyo`zjdY%4GFnKwo8%j$$H44Wpl~j8M)Y|;mnDDraYkJs( zu{#iY0GfH8+1Q2Jp~$!A(4P0U#OhBNSf_UC)R89CrWIP@cf*|9Dl%!O=Z9h{u6_-Os@xSJh9}V_nJqh(r~? z1tm+NE~@rngP&rC$Hx{b)8JqQ1O~1mvkI*jaF$4-#QB49)A~Z*jfDgMvcCM15xMnI zdvoPQr8tE0<-q2^)+!XUfnta+E8-W$cC{yi3iX%=PJR|u1>Xb;7k?ooorsBvxw*Mv zdpY45L_)!o8{N{MM=BO7_<+@p#3&LA@b55z1^tW2#}(iwjfkI*kI&-|SKh$;y+Q1> z04##p*>&8-Pm)C1*ivdb;j)sBP}JC1Ty21Z&*Hqm^XiYzT|NdO9e6sgJG$|mT~o)9 zcUhLFNHwkz`PcML1Q-%|A~NZ_mo^EvMXKIhe|_x_cz=8See~u1?`sUkmjPa4^g%CP z;^1w*$0(008NgLr=4vQ$17-ZyzPP@yH)k7y)~mc$$Z^4QrpML#5%1y6joOzlUksRg z_k=%%NgAywh_#y)@rY#%qQ^vt5TlRw`dka|?e4z5RKHITJ|To$V!WLUR#x9FXpQ1k zJsHoU2+{flox z>RNW0(Ek8o(jKxkw)S$|_ju*XyMr`@p~P}hNFk&6GxPN?8XS?cxY+%=0;2jrhfYHo+t=ZF zm7RJw5}?T1eP`a4564hAl<}bt;1ICln{<~xW9D#V?W3MN#Tl#(MCKSSemTYpdB1*D z33*w6zyI=XhxlVS;NA5@v0zz^b@7+2WL|#nLdjNKdtvEI>Ug4PC%7LZ((lXOx-6oZCF^E}@3DSBmkZKIZP#bQOCne-|N zo>5CsvodDQ0{L5TxO363+c9czi-C(hFs0HMR`evBZP2Ahxk~@QCP`}4zS~%0gJN|Y zNs+-rd*$eiuT7UdSJdnQ8Ja(=nWC$E+(Y6m5O7)@pvX0-X)LNWNqiD2rH`2dMTq)4 zG#Q>Nf**lP0w3+PBsO0po&&bJO}uX?e8Niii5O+$E(~Y}>&j0!U-kD7{_pH!=-`L< zH>8V@x9fd@)8OrZcb5J~gwuji&Vu`Zb}1xEd%RAgAQ%A-?9&~p6eX*i4I z?@kfaabT^^leGun=f6X;p0he_e7Jp|X=_6qH`iiJkI1A&$5)6AlViPP$Kk-S$s6(4T4Ltmu>gOk|z_ zpr}&1rC7|%9=l$VGIiTmJ@n9FP3ss<=0rI|xZ_7pXKPizc*;zg| zDr*;D$1kS%-E-*u4~w8MiE9j&2v!;fh5L2?BTk|{?NkzP4pIdVYB_jtZZ--N9)JM2 zE`6HM{n12xs8Ohe&BNHpxbl)s(+v|EK*P%$mz9RpmwzG=Hg?V4&LM0SSn$fk8pg%H*7Cv94iCbOe0@1+e)Jr36R-j2V#`N=I)faw~}QYR&llA({IMSzqai37T(Ci9jw`K z5|pTWU|6wa;pIV`m2SeowC*0)Cau#5)nP%~@Qs%ZMJISZ6yzA&Gr6Z!rjQByGv0F? z-6zKO0cmwI^Rr+M7FFy-RamY94D@o^WSfJ21mW6)AE<(`Ni_M_7&FW!5%%p*u%f(l z!B6Qvy!@vH9$#iJNC02NUBT+&L`7H*ykL=lkKvn8#0^UK6;P%so1I;(BjAO6p@Pqk zU`w@?q7_*1LVcij_=XF|aEw|KVO^0V@3`~{oBzSBo}^E-g0x4ItP=W*oxUu+`0C_K zCtYhRO|RXTc3^Z2jT4HD#zQ9kPZkc{8ko}2R218YbD0^XB-$kj@g{NMpdG!6dW3(E zr)PykH2R*krzKCt!p3&4-tAS?-nbTq1$RA7hnmPc1+UjEHYOl`%zu07iK{D--51=rpf$I2#EEZraThWjGyLiu72P%&%_Oji1=HQ=J5BJ#zr zHNmw&j> z#x7#GU+#QOh8FHnRE&l`O_Ur7q7;cwjlH?s&QE+j^>={uW8XOjVZ5XLv8tNtHKP!- zw2(~5Wi4x~!dM%Fj0J+UcSD^UB*>qc^u8hV>Uk4x2b}-pO`_^_J7cyY>~zt~6}IS^ zV(gu?^-Vw8shNv;z{r8kS+69?q7@~wqa&p)aGY2qj5i?*8&@`8;^Q${^x*I;l{)>{zbUg5`q-=ul%*?7y6tImesYg(UU5d$I(^? zrbYUiNoMsxcMN6>qd81YcooKd2b}QYH(406h=|I_EypnLZ~}dcSEaC6QU4&!Zw$p> zALQ%aw!cB`hsifKlFjhRQNMR~82apgO{}*dFmm~9gkI!3T_ow@-$?`S$Vv0ip!GHZ zyVJpWVc(f&6u-v04e!P9YiR4#jEKnN^&k=@z?!IEuK}S4KGA^;- zoQiM7O#5GzpJ}$38(*1|0NGq)NH>G_L(c<09*t`+VzYurv>l$v>p{5x6$q`w7>m=q zM`^DC;*xE;8c)5$x_{wrafNaX9td1(PTZ>QLp9W8VMngh*wX_gt}ZX&M&NV4I@Q)^ z%wTDSU=+I#MqlJI1PpeY=qbncTZ_q)sWna516|hoTE)HB&EzvvOsAqYfwj}X9wV=b zzB1ARc7|&0XQ<<{luQ1{t#ciJJ9($B!^URm#-KfohT;TNP;ydNhm6}4bSsMY=?FB3 zqn_wmQhXbe>YqPexN8|5uep%NUqM1w(EX1Jy)4?LSOqWFAU*TJ5iUs!eF+UduN*X^1nSGr<6a?==b7lsSj7; z44H0cRTu$O_SyCICD+2-C#BXr&Gf$n>--d-BOPR4_+I~`s_m=;lGiF`@$IH&C0JcG z;eB3<{8LvIe)q4FJFh6+`mKTQne&M7T&hj;N$Vc_bH(Wl7EGoYF_D$i?tb;BK-M(p zbRyZmbAwdO10L5Ff4%gWF~fOdYwEej0&Z&6H;G|JeR*sKis~ zbTgIb3c?+$x9a}`Wi=P64>7RZa$9-W>~T#8B-(n6nEn?@FCX@(QtnyTh+p*qeg=|2dnL*4480i~2) zmDL+WkJUMMC$3qj;*1TfN_+R+D!(i>ld$)D34+pIL!ABC;Bh30T_R*Nsm~aj; zT|}56XC#cab{Z{+;@^^Pl*!b1jz9)ZsaY3gtG%|p(D}#quh^02slPQldUfS{l=J#` zc2+?sm0KVNwEW}H#g0T!s3}q1bwf~T!<+JU$u6R4b1;eEHt*n?SDV#l@%Xb(_$_~c z4iT;`hv;z6sf`ZozTx^(WBG zSFq6LFM%m(%T{;(gGA$3ix#M_-3PH`sWm!qHOERx1)3GCUC9t>D`aa|>qXSk9Xb#c zq215I4K3VpFNQmX0Qzk52q$?b(Q=%DzP9uBw$z4%y5ozeP;Xb5bsYxlD6LimY;0Nn9a&heW_K&N!*V{4>8SWa(aAMaQ#@(EHREcxqFA4q$-8U_sRf|wc_1k1B< zmUkyxH*MPOx;F(222t#`_c-(iVz{8zlr1})J`l)i)G6w$d1hAdgq(@i#V+ZUiKPu zh|@2;yFOjT&oiPz+tw;HWFtLMGEQId>Ris8!rHiH?PqLzqYd950=SMZ^45XnKc*oY zSyO_?xL(55NYYc8M#q$y@@P|5Jk(@Kr~nEj`^VeQYO?k-Fl_ zV@a}I?)t6tUd|mdFqyW2XJzAE60SvnmTw0Hy;n2Wua0I8RNHzC-_Ee(sltrV?!NNy zn8K{nb|tyx#n^c~9bBh1R;lW}P5W*{F}=vr;?cn14u|X1``nXd2V>k1+_PTqKFbTE z-s-BVeK#KnY0Gc)#a7pfPK6;tMYQl-FI+vr@|t3&Kjo(%dzQuMaG3l zze_c6mK)w`H4IWt3UAOB>5NBSHJoWgx0S_RwvBItwrD08I>9ZfNWK1cqSI>dzQtf;Q0wQ5nBanza#ZZB}Oc48q+cl*Met#7sv0dJkI9Ycx- z>mu=Yy{t&BsT~Cke zG+x#>C5X?`47o2;r0(TKwTC8qxd*l91Mw>*OWm_uW{7CvXhXw%|!QcOA8>ci- zyE!TS$qpy??4>SXW(;jm@`qePJnP(i{Lwnf&gvidwyNMju!<{6osr4jh9wCRnxo?< z{tu8&Q>?GtR=8Gl&ADDwXByuF@}~X?2(a4eEi>^LK8ZofhI$56vez~1o*8wla_l!M zM}Y7(@HOO8Yv5;%q<+5K`ps1FaXRR;xo${&0&UZ3eM^jIX|Wmur!F`3FK&~2@tJ7u zRqoLimP@psNJwbmTqAipnehB;n$K>IUDt$HK-y%E{BN zxRR^3sgFFn?5Z8Ajk%kj>nARQ7etrMK(2C)w@B|Vi$2i<2uZ1b1iEK>WZQFvsbTC- zx9-vRN*meY;tE-2tUGIk#hI( zZamTSNZ9T{0$IaDNa>VBzFL>zS*k5c{EnkYU$utUSL`B&laMD3u|h`~KTSKLac!{I zRX+<|U;5tAzM;8Y7(`UUZCXiGwdNkag}A>ruhfD-Qq`rod85JMaZc;RQWlBg)zL&zN{^|96ma+Cq2!97rJju|951 zSYf-%zG)UxQ>TE_prd+D6=fd3=g@tYg=w!Bo|L|5jMkHx-$)Y4mcm%@EN>GfV<1$i z-^9g$&>sBNL7TL*1Ki!7+UqBcq>j?O+BiH**70^@aNIT{rAag67rd+4X*hwVz#(;# zOIzW~NDFNz^7kT0=3!_BI?eDwuvRAxwD-7a|I52}2UTAiN868km;Iedp$vO#7h(S; z$P2D*AfO2cZq0q)NTaYM-v&(kdCPre6W+6Nvz*PLi=-to&8xI!hr@o@){pcTvo+9S zH5$AoFKoml?FcHd&sk?sP$i0MYn-s+S>qWx)uRA1ulBwj$;P89NJrgOeZlip?F<+b7p`33KwLy$ ziAC3!7LuXEla0M>4_(CebpjEz{9q( zBg2waY4>crbQ0p4KL8K(9xG>!UIpwRXJtnIKi@dGJQ2r zRz~S^?uON|R_Rr(?zm`4hBy+aLfv~Lb31f$<-L0`@ocv;jw7xQT>W;a&>=I2nsK?Yp*B zJh$0_H0qaKtN!Wg9>@A3!XYY7{WcbxPQRksJHJk8v%1t@Y!8z=&DiQ?tm)(6`yVuX zSr2wr6Y^^u`PFf^XDeaP=aSF;>T}mB$W*71y)X`}7;8-~bcWSf4RKzJ3tthwux1?= zr0jFks_Lt(60|-&VRjgA$82R* zqOGs8xA*>tFyzi}bM7WHkXq>|X>JYWZrofxv=8&xWCP{iaVe~Uy=Atu1hlpjGPl_E zD_LzV(lm2l=YYihuQDJ36abK&}V0?J)a*y53huXM&avR ztn?<)NK@Cu{H+tha%2#-k6wB!_L^>&pB_bR-vMX?^W&1e*4cw1 z10Qx_evh*5?C$RN`^@)y%-keDyv)(yBQRVdATUvth$nke6O7u%hCM8iAi%lUPD z;=kr7(4vFZEwH=?fTwOQS9SVq66o|*OU76!c}`ZIMmsD=G_TD$_=wAnYV zN1N_*#Yu4%dKqOrw161Ptv`y;+N*1iWgQJ(9cVRN+X44@240p$$xyDOxVn6?qCI=; z^d{H)gV`(te-D4(9Lc=@7>#-UnAfuz{#E}YOeiW$XXMoFGZkV-XvSz)T@z{rDqZp0 zWqRG!@3+_I{hqqZpJh%l;3}*d$##&u^X)W zgYwZ6vqH+ZUSPNW@$0($HmC#GL;CZg)E~^*9a;A6tc zb{V(A+9YOlIOOH;&F}Q$m!G@OkJllA9}(8W{`WMGtNz%XQwaDw)HmFWMyl!K_Vr3A#zrBA+j|^u7>pY%I4!p|`wI)^|Dp6} zIB|9ZkH-fYMNcj^jc%gTxCre<$aLPPf{b$4<_DbgrM<0eAFbahF9W^TK#9|ShBZT` zL{kF|(-=Y}-q%e}y5PKoOi1~eBdL-h%^k#4o7WWKP z$ByUm*TspB!K!mfjx#NRZYzT&&)1J_#8RVE0z@>-0$Kv?c^XgDxRZb=FtVM$_tl{w z6H6+8?lJ!<-DBddYodQ z2d2+&=CbeOff2XV>TgV+usg{$P+Fyq1ZISE7<0t5oKWe-z(AUbgQ)X;<$@hQ8juF=Z;%l4A-FT4oFp@+%=xrJ92+D zyoN+Y*9vv^tu^N)4}Q2u(17-n6#ALM=SgrHHQky@#F3xER@<|h&8YaU`@cm0D13aY zp6}jAdEXkmaS8c%CG%xGl%?;W5C$F#wf6Y7ALdHZl_u2ZpOPgme6=-_mW~b` z-)DHTp;UwFf>qZ>ZM&NXpmJeqYZyQLC=1MQNDO9z{Q1bGcWLUmc0RHLYmq|{lX$J1Frh`V?QSFZ)JH*3h(o3wI-WRc7eM$HJ7 zXJsV9C@`H%>tWKM06ATAjOZ_a24fLFUeOVxlc<0b~X?R38 zNr`vC)TvVr{UR{j54bjh{#MfBN2m0dQzh0ETQ^`DuNIaLWrI%&^SdVA^b=%-&f19M zt^~z8l{1u*YTxcpi^1UVuJ!%yh>y7v1bFFg_miOP3mSKEmo~$@u_Y;?ToPKHRL4qj zZKuwP+e*juTFygIO4evRi)N^Lm*iR6tV-KUL~Yp{0IM899IHE;{$C z%L-kCqjGGkn-jcmze1rW;sfrq8I|X_ETjQFDii)@y{`+s#@Xuc7_{>4=8ptZo=L8F z<&!Zdi96}ltOQv$ltk`A^haMlz+MkM3Dzh#Cf?;iru83ce>49{rN4hO zkm=V0<2H!Y>JK5iz-|}y5_hP+whel8?F{SLu~7MK?pYM>r!AiqJsNtCx+uv@Ylt^A zNV-VPVyUY=vGuspo>w@LmjvcRkdsHP%Y=CM9(%|A5#n?6nvuq(Y>&6&+Lz>nq= z4>eO`AAA}xwZPL|w+cOjeAr6U6t;}3VyGs*97+Z*8JM4DyJqC(tcmwav2|@TktOAO z;DbYI@}SYWbB}h1t=;vMqi?_U9mKJP9^&siGy8lj+5h4Q`v45sPO8KMO4J*vFK_rS z&8kwCdrNP4)B4fmF|!0~uebMimOZ35JPEqvx6a+g)N4h{0@t(iyipR$!Q$owMqN)Y zxJ&Nf4!cYk`n4YCUMR@3YHwYUU+HRK{Sn{6&5y(t3)n?p?fQ$^hJxPJT5b@F%+8`$ zBvzQGQC(c_wz8H2J1{nuZcG7{kd~)&oL|ej8w_*6AWDmB&vrnD&sz1Xq)qP$I=TF? zW@w|9*K}9=aOgylc?0$G3RLOL#Hf?L;7*Y_FPs9xXhNqm?DK|??GSamjFSV(l}R#B z`)loAXIelmg%z=b;SaRG)I7L>s0HcLf71h7kpc<{8Wr$zO>;Xf@1_jx@jH;G&!ZXI zE&PlC&p0eC!$BC?M3SYmN1$M9%#AK8S`asd)zWH{I15Lq|ukN29SvM~G;J z?$YZ+w%xwG2(fomIFV&ho@|eZT9;kOvh%ZJR6d1S++*t68uVDS%=@w5{={%f%~(0m z>Y{2lcgc7bbr7eze_q*BMcq{v?$L9OQc%N&!gX<%x+h|;N1n0{O}Fz98LUX3O488s zO#O_UV}!HZqA#B+C0J5R4{%qN$?GPbX4|S~9%Q&S`{yfO5H+TRt%$VRJRS)-dA7X? z#5K+KAGaUh)sxYU%SKu}^U^SM3k;$;6Vxz`i}GwZq&%0zP%Tt;O!3Tg9f zpzM#ypT+U8`^HqSHDH+kNCbftoo$-`A9AEcKZ7~ zj*o1CVK|^1Nt%N<0XwvU&lmMZSnyb=>@%OwGO?CTi%MGENqD>ceQ@i*;aJSSbYR>T zRd}3Fy1_WRuDh2RU4CtAb7Y`m4t>OuA5XWHp;MIPdqi1Yjv1yK)w5vRT=%q7=JPOY z#GQKJUto^QZ~fW+TZCMx@i@djC_>IZ>9wKXSi=7z(W9%A(S1+%3C7Sl!KlXS0}?jS z%N-Cf<=I9goZ5T9%+Hd|XP02v!1IPF;AY4c{M}8(o~O`F9nx+LVa-t~Rzl}z6Gd>h5p>=n~MOHqU;EsEP$cb23wsVSRS4nck_8LW-U) zu7%f%xf?-NZ6m-W>2`HEi?k@@zGI&luhVm<;5vdR^XRK{6$qpdF>bK)JD(s%#vteCCn^i z%8yUZXeF>;|8k1LR3-gVQ-8z!6v_Vm8^Li5ubr=^*P=SQhGB($i)H~Lr|r$(47oYV z#_ubX#6)CN3ZhluAg8bloZj!VnO_O?3FRv6DzBCU@fyg(d^9voJR9Wvn6Sd`GOei8 z^)xh4Y+@rkkPy3t{fu9U$mUfd49q8$2m;#~rvs`V@vHpE4FK$t0K!99J$mcat4U1L z`ARv8!p`(hx#}lXsq+ka65jyVlAkV!F`*ACb#wd<*W1N&O!@TOPj00O8I_c>N@3|z zU_$?OEiPGhcVS2fu5$fGeA4Oclz$!dIt}0 z7jj3)uBdE>SNF%+zJKSMZhrqpDwnRozm+UVH}UdXi1|71HV*yH!7OCepraOYUh*?7UdXy@}q zGjVUFsbj~TRcy(pw9TU%-l~YT+{d;pNfj+FMqNH_G(Jb+!D1?1?QT=>zqQOlst%IW zpZaK4;xh;NI}w{W)i^^;wz&s3cs0mZw9SNfj@ij{8-Xm+H0vkJg$C>T9QivVb*e9Y zs%iExYOuJ=9bQYzp8vZ4-I?rle*dv>6UwRC?P-sRT`<2yCH(U1(be}6ZpZb@Fg3fC zpGEF>K|Seei=mHQASMQDa?+!d+lT{Tr-Kh}OUM|fk|J{otAPyELB5yXGG`{I*o6y^ zlF{P}x}rz3ycdUro4k&`-~1?kFMhwj|NYnWh*vsgt-gDw4=Bo^vvcy+vHa6kOGsbG zKp<%t?{OA_x#wt>kv#_ml^_PX_c6H-*=`Gd_}rk~k)ZTKGq}zuV?)uXnVx3aT2S>( zIMNBVQWBv8EBqg(nh%)kF|7)O0hU*3 zRiM36c(x>k1%%xErw6AYFE%1VK~H~1eV-EChzC*01ubF3<6SDY-ZPcg8?9sJ{7ToP z-PX0Y6P(?DkB>BgzH0syc;htrZJb?R?3kTks$v^$(YeVh!+*MbDU*d4GRoRV6#aw7 z$LH4L`9Y*xxf;cWTL_JhC#c~SO*^abvAI%ByK{*7B+dz=#SC=uE?a~yg@H5Z*SMZ zZbK|0NtpQI(EGt&@r_+77VhJRKvGSS0xM1?dduH#SVX#d4@@v}jW0nS7`1Oc$=~N5 zOSA=Q;3ZtqsfUivB75BgV~%bX24DYdi#(s?yS%-85U`1~w6N$D>q0G2>ZXcZXPFpe zK|>v8d|1k>&gXikT%osbjOt`dAMEAe3g8F9co(5AWb2! zU>%bn5^+Q%;f_j6u*EvG9b6@84mYuZihYB!+5)jjKin6fXZ&iDRP+Zad$QULAN_i- z|5+ccm~=k6Ndpk{C!G)kYbl)~)JmFB1eQIw(we&KnFP6CfP&b+ z&(F`~k-uwzDPp4p2s-hHQwOG}s{Qr5@QJ{hF})m`hZCj>haDe|&h=$`L@lTlz2z?b zTImx0CSDyq$%jYM9DUJNnsCXY-vQ8ZPXl2;^+n|^sA6NS@jzraR2`U12?lM6tq#mI zcO=n0dV~)XVV;?gIt!snb}{YgK}MJoN*v<``cEuo86oINllHu3P*lBuq-tG(9gebr zYd5f>pvlX{U7m_0bSPqF#sR9HEOvjJh&Y+y2c%tYnAjxpHtb-!!4J8{O7FQNb3!xpQ)qY42 zMW*=VL|&|(uHz@|Ps9pr-KrKJCr)lp{gYFp(a@s3t|3t$Ox$Zbj~oFyz~(NoB%$q} zcMw<0#`ES1Z4XzUp=y{?SBFyM^tJ&RL@w2L$OHK*v;K_OQhd1Y+Y+^*&cu`cwtxFgvezGp@nFQ_$R4TB+`Gju58+vAy{2#elvGvw+a9qK zrhK!M0FzVO;ZdC7!-3t+*de1@=ubZ9%%3Z57|dxPi=seh7`m*n>;3s*OO!Hmyv=hR z{0M65LsCz|ff;i*K=(lR7Tl*zRE-zUgV(kvOZ6tS>o#w~j#N9vX|*zr5-^Yk$2UbU zQjtA`6VaZp38HscwI9dNv*twwosv@wF{8mABpl12AJ^sqC6 zw1P%$@~r6&PuRWT+h>OJW>A^&C+P~S}~%aaP>nhRkRv=GG>R(hx&>y z{P+1~e?rx)j(!RcDKXe1Rh$)l(a7<1k244#ztokct&A8$Iv}~|a~xO1l4W7d&w4DU z(&amKU%AjbE9seo-8v2jK@*97Pntc5>{+c7#WVR z_G?uR$@M~QVKW70ft1VuU*RFp3}T0=6q#BlYQ;y4;BAjd-Tv`_hvf4I6Q+vu4#@TmP6Cq-t58dIlnP>t#L#n5V}PJ8bj19Lk{XZX1Wa^7 z8fEA;IpZ`c3s}K&_W^`!OR;_gz2I8y-S9Z2r!(?svfz{R5mr~Vm*IZj(}%1$$?Os) zqP~VkukpGz1PGnHKp|=;2{~Z>!WpW09MF0Q`S9HgeIL_>wqv0fM+Rcrqzh~S{%#;l zS?wEf4O!>6zlL?gF+j)lXfcJA+s1?$Sj+;-#bn_6B7BE9cc>E!@{LE?FychF;$(ns z9$HLpG-yqjsCxpx_(Q7@${c=3lBpGsE_R>q8B>+RECG3|;DfyUG6)ci*%ChmD{0sX zmq$sGU6Rp+lWCL>Y=x0cDdF9v*K?5xbY4=|pGeH)D9Q9YkGp$nBtfFNR*A5;11hbR zW`2Q3YYKA3(PKE%Dk!BFo{tX;W)xiQO7ZG~PX#M#C;q3ouMCQ#3)SlH8?Ep z1kd8`5;V9=@F0QU?jD>)ULd$TAy{w;t^ooB*MvK{Rrl}x`PElN)mBkcGjsa%bU)pv zpKgVx7E~i#^^Q7=&en$U?dx*WKj_>Y!wo&_M_i0;y8`Cg&ktg{L`da^ki*h24#vTK z|8~y=4*&G_7ZY}BKDoa?OPuMfHK*~v|B)wyjr`j=`|3oVy?C^XM_hoFjUON0aYwJY z)}G5Rkyc8krEhqn1_s;A|@+I^CwIpGn|w92!0oMB4Nxlu_^Mo6`-$!I*{v}=pN2iKsn zK*>a5+c4v6Er?x$8$lILMj%6!@0;d!xA3$*7JId+k4mTK_|8P~5liO_?9FCxyGi9} z#NV5Nf(;u(s~fUuLNmXND843c%IRdYBi<&RovrC*o}z~I`o9_`g!_ltvC?bLOwF5d zk{G|J4Pv&Zo|4VHF?Q$roD-t)rwU(vMZsuvu?W2+BNms2=9F5BiH$|@SIlc3tehfm zqo?~^H`9}zRkBz!mJ0Jw!o_OjnV1*s-eDXlZJJ%%EQPd&Dyyv}6?wYB5m5ZZ;#p@L z`FAyfW`&f%Hv=8LKEC*njT&2Xstr)IIBHm}r=q>q2xCFJn4F;qKVhKUVRswu%t7l# zUh-1|{@S(y;1RBvpOf<8bjn{B8ii=geXv^#^`YP%6u1jTTD3>ml#m?TdDRDSqoa7n5;$Au!y;tT#XIlreoIci2}A^ zobUdUhiFL5!7QR1cNnB-PWnocKa}8qF<9jOdX-mHkx``@k!K|DEedN8dfO|y4;<-= z;>K%MOqwOmk=k{iu}Wh_6?s#*;-|=Y{UQ$~@bs&p;1(jIcf%+#=|oeXWhv}aFC=CQ zA(vJ+gcCQ-`VgHJ(!S91Ivr-G&oT1yHH8{i8mj{4$hc|9Man6Z0I@1Q6ItXu#P)=aE zJzGh}9!)X(DD% zC;g_=#}e@OK|A+lUu@dsh99faTOE1C9BfM`?-&b=9DuXEO1LRp7`eNl<8-S@;9 znkuDl0LLH_HAmMA!hxZiJRr|VkZ5{O+d0o=U{#epXxDGDI_PN3amuKcGiYLwt?dY+ z6x$6L==3I0iNg-d_ggL^(FT*FiJNEe0 zj2eLYxiN}*O#z}uo^dA8#5|dte~JHR)zH~n8rZck4Jsw!m0Gz^i`d2OiZZIvUisAQ zA&omU3X^6^^WB#x)wHC+CE}_YT(@sZ&JIAC+K0p~V0t6s(6n3%2S+JDTg)kGQ8@YR z=}B${YUra^(iFGF*gq~+yAWIivcc@TsQ{g}bzDk?)!L)mGk#M|Hj+Ye5s6;$`d%sB z*^wn){3=$PULCCa@G9}fuzH9U`<;%2Z1;h2bJ5TG;)*~UM$%hT#EjI&+aKq7?8Ujz zV@d(jSVP-Q#-()BJXZdnMb+sLDE7E)Q3WLj!_v4M_r$>lQfysH4kx)Bqgs+KAx8-% z>ZdmMxBPVKIApzs-o#BQgB^U`+tooHFjltZpWcnDn8D7(ki)%V8O?-rD;#sX1@aoV z=oJr~%%aG_wjYhL-&P53^J4tN9|0LsY38wJ(daqA#Z?WXb^%`MM>r_A%6@5$CU%@o zzciZ=)(piRM_@_Y+AIKR+AqNjpg~>14w{8ltj~>UrOfsTFABf*x3_Xbt*!C7 z4U!~R99%OEE9cbLrns?&MgUlH;dz;|r5IFsd|S%bR!#(&i3 zoMkv`AR6v}oC)P6S*RKA0|1ef?k7c>Vb_(7nTP|wGWdS_NR>K%yzhryOWlt{5&8|9XLb(%`xRjPS%T={@1?Uh)zjSbxdk{_H zjRsu788I!+l;)tCOA~8H9aU8EXCY*Cf-$UzKrpYifGaZ3B2Sro8bIYdXCdRxt}4Mi zAd&q<)pr(JbNMjVy|7R(^WOmJt~XTvxWXSBxGonA3Dd`XZ2noqtFn*`C6ypm ze#c+)OfL%2&3j~y_8aAa#dFjY&He%ou(9dgx)C=MvJ4PAQZ|5U?N6pR%-x-se<tC(%maY4_+h)J|pMrXP^+qF*;ZOKEA$kbl(pD}}>@ectra`VCE2<{Ory zxze=kab1ygb`Ntq{OA>>zCz1jAHjk_7r-&X&MdRzuVf&a!IMB)dHS z<*!O_MXUbP+(uN&pbnW2MzbsB06)iIhqBccoi1Aw5li%nR1>L%?upUc*Re+*B0!Ol zBMf>&_@kl1v`Kl|7%o1SmZq=S47uD%(OejI`ccm^PJe|+#^?#08E{XgHKi9)@II{T zK)c|S)M8npsG^%oMY!Q%xIWWfnOS21*FoQm6kuibnD$$ittjPGrQU=g%2+qqsR25< z4}+$L=7FW#&KZ$>GkxqgD*~E7DTU}IOw4WD79CNIi`l0f2g&n;7gEGcRfGPLGJ6e= z`DP!x*o%oXX(5qn_u9lEjkD1c^VZ5o$x^;t7>$X{_C4IB$8YHL$&vpflfRDHla+6- z0QS-Vq4FrNn>@UuQf*1b*BHxeuLrF>T1B)fKud4c_xO}(PO8-RD9kMgOP-W7DCJJJ z;$i%etv{PPtf70JNCh?GG#yCob(i&LKIo_-dfo1<)Ca|g5Ul7?L4xOMPDTzd# z#M6t8sy8}rVpW)`i^Rr3O(6~+`L}80?`cciUF$7wR1D;o$GC7MgTs?xMd6J(XtdHJ zW1U-;H=DvVvBRc`fGZ15N&aHlY9N?L+jfY&9g!L#TL2)XPiRtL@}0H))lTn3uxma6 zA92$`AyHJC#=H4z7YzA5u;2@QeoiBdlEB!KhPT>&bW$P4e{zxl+rESO-OT)>(EA^- zZ`}bIfe*P108+9o(bs;850jQr4$wlPa1n@JvH6OkVj7irlbDY|{|Giu-4NB|&_h~d z{T{fIl5V)JKwbQ@zr0TOCLV;IM#m1{PaTM5DA6G_ zgR1r0`+}d#`V-nvP~VTrX%xd!u_y9(V z4L+`@^uen>C}Q64{{o(8PdgMTGDeFmvl`HXH)KYEzTJ z?+oP?dBltFlZ#HA@#XhMmWt#x)fgu60jP(>0J2oiJPfdGvX7Gmq8(Et)e!u$q4gRA z`7a((3FN?8(TwS7*e~J4T;IG?g>wj2@SXl8(7S?i*8~%})eSm?7*|(e)14#$fQ6W5 z6LFMC&!Hn3AiiuBizFFy<>pY zrB}9!e{F0-amAlbLTj;QoVLU7K~uK0ZrO~0d8>Jui?)fP$<$IR;tlJMEV}W6@7`<_ zfMdtac3#Hb13;3TB66P0A~~lt(Ip1#Ei5}9`%YNyWG5Z|_=RUmrkx*J>OpWI381K<-gp{AsG;AsJx5@mkFrMJk>95NWA0>UH*o0fce_9!55hrK(cd^$(b?Q z8%xow*kY(+t}kUZxSHZ&I^RgxFW!4c5Om8x`xHI%B+c3csDZ0}hEPks4Vd3#dO(`2 zqzL4Rn-UsXUzP}j4FI0%#bSvG-Eo8MpgQi%p*z1LBBLR`ric^2ZQ(W%|3PeXRzWRwRofQOJq zL1-a}{>jT~H*$|lj&)n&rj5)mtirl3c=Fee(UOC54uD8ZooO+&v3bxLI`$lW!QmQ! zX-A7?Wvf(vDigGQNo)9qR#u4%8NCYFLoOd~(48EmcC&8UV4X6EaEGRT31~t(H?*J%|J5S`Xb}?5BSifp;hYT`U6% zuj`N^%}KKvQAm9HQ=g`@vXVl5Y+Z4MxD5juwuAxcUH+=4=m7Jx3VOX0jvUR2HRX#+ zDSqYf9**V$7>RCah4>rF!fbEj-Da~!(@AL+CZ#A~Jyw)$`Vyv^6Ya^WX6Ns>8Jv4B z-U0X23nh>rZEqEZmTtV1M(A_?k_4==LYe+@hd@L%;$nhEG^@KT z8~?tlKoWbBvr_K1efNEzhD7#3(KHsUliNX%13z{+OUn?xav32w+r9OGKb10`mz5;r0tzkwB)n570=n#U?M0I~H2-8I&9 zoO>LqY3Ru`ft~~Ra|JHa6cviwzb`p&jnEFVNFJ^MQD630I9y^egmaZ?W(qFz$oR3Z z`E)Ka+ZRliaqk-CzSW0%%fJ->%c)A^#m@K_jU;}467oP}vtXfBFp0Kf)R@DSnQRMB z^9+N1Bhk!f*RKJ>`7x1(>EO9SE`J2!46ZyKlwiqFxM{}M(;KX z^o0<*9+2@WHtNsKA-npF6br=jBCV6cG|Ye-up>pn;PKH16{eqd964X&LfbArSBR5_ zz``U6Q%!keJ(1)Ii;SwN@#+!TM>b=E5*>|aGmZ@Uc#M1U_H5a`Fxwt)p2!LZk^Mr8GI6M;+evotI zC^{=rRI}>9Du|+l9I1{ zx=PVg2M84ErcFUjLtiZpz9lKj(t)chOEj)&rzC?R17Q{IdP zu%M%iNoabkVVbwp9gI*Nu2;_R1I8};<KrI@P?o1Y4wdrLtP?OKjyRc#mu&HS{L%27tr)ttsMp)^x- z#yCs&d6cTN2OlHR5oXb7zdn4UES5=`+%wnRm#}Y=iKU-s>SKQyj={@FC*$rgV;xy7 z^}2#1^_vprR3-uk1VBw)7DQqJWLhCQYzy6}aZ-5wRd9_C1*Af78LG!ACR9ZdHcFz1 z6ZwDzR|9AZV+Tt|Y75WJht>;3@>zm|!o4_2E&?cg+6x+Nky|PC3p>6h?m&y|Dm$|7c@Ap&u$7dkZh&WTFHuC+MZ4FIE z6y?AS9@6m|>M=9kC|H9!C6;D6|fzdz_@)gty8taAP5-3h`ImQ$820j>A z5*H{;E@uW8@1*wH&zOfv?FJ{mJd42aL$D;UN-2sB;tb93eksn1Lm+HF1>Blly?X_P z*va&Pu*hnj`=k}MZ>0T={gwEV&{$}mAPz=q9 zSjwEj@A1cr4K)+0I%+}q@qICy9zSY3U6-9C2)UBYODNvsxe%zLabe61VF41f8AbDS zoC}fceJG4AHt?u2D(}CHj!*ou)L_t2fKKL%={z*Hd_fOLMVaKsE7O;fL#$&a_72C) zZMV^Tsnl30jOj+R@P|O}tQ@6?MEDFm+%o^$VNJN3X3Om+eP z4o&{$2Ove}#FQ~9h4_$zSYbi-Z}q=DPf#nre4DFU{@>(*2WoOrLCV#uTQGV_y!Jc| z1e>#cAJ(7MFWT3Zc?I!NkZ_DHGVO+VYT?ef-()y?p)-hW;{`qM6ntoXp1u!|c)kdb z_)v;Sco!kBf31C{J=h%LzJ*TShc0Z-8SZKGl{vT=5kxM12VC}Ns9X*2d1GK;;9s3W z0>aQpzDAtU5I&czI9=da4#JA|KXb(o(Hd~$>&5V#^U4YU9IXxW9=bp)aco`P=RulJ zqDxyyo2a5xum2qG?CkvC%8#P}iPt5gfiDfalx3az_Ux5vgKDq~uQH<}U%^m#MXQd0 z=ZgS^A!0z42+$^Q>j%)Wj%>tD)*r9Znv%OBFwYAqx71g0AoG?)C&X0xmP&0&V965r#a-M6kx}?*){S z-(BbD)mfd}uf9Y_?%RqGV9TS) zvE`znq7tlW{lCAM^S2KU$4l$6ai(zcw7htE-o6l6TH(kuvj4Nc{uI$M&mI~ zc%D$gNuS{>o#0TaMVmHf!-CZZ4CO^grFEAWn&S12JkVllQ3*Kq#u>;9LvwZIMmX~g zJW8G07KY1e_>Yz@5IG0uQSWQHyKhAa>D%+9hNAOHv3R};Tr;29fFyebTgB~Q;F!&S zz;f(3l{g-akX)glh|F4{gU-Q(HerKl2Em(Qz7#LdRe-y>qqZLkzsgMKpjA#!i5W!* zkGDf+mNKtuc+bx;82H%p^P5U2+3eW9olfX0BF~hCf2_=`8wxCuLY~B!!#+Es2)c&x z@TM2tlxiZrx#mAhuZpn;P-%Z}NbJWmV{|f5GD@G;y)P7`2ZT)t-A0V#;Q}Ua9pjgo z&wseoQ@D88zzN46Gpo#71_T>JWK7ekvZdUAtOzG0I0xt_(W{^zpxN}&#-^Uej~ZwC zt)FCd+*w48kteZo(K|u!!v@xhw+BXKim$olG}PW{;2NS^Hh#2!Z}Nl^EEC&MrFdnP zVWKE+f{OnU2mNPS%3s~b^KyNqMO1^%aEIp_bWiC3$*Jc$=)~UM(Q$IjZPqM|e~k@R>tzl^^Ek5lolJiLVfFrT0U4 za~EY~+T1mwPud<6)#q$h0tghQs9h!%KZwmPX$A<;D;Y8>Qikhw{4(5{S7N@F?k%vO z6d%%Tw-Pq-ixafwAb{tzWcLj({f34OloxM@X;FyLpy7$LxSnlw(F2)VF04`FL~w5# zRWwoLVA{Uls0f1TJouPMvw-j+5JS@&rNocG&j{wHMVHv@`w==<2m=94?tIW&@gN^m zr@b*-y;Ji%|8h7P#hUxg9c=3@J>53v#rrfQaeDYWUPy;|^M5~~vlhK{Vu&cK@zC&d~wf_%9?c23&ZT=63; z(UHBq2ox9GOIdh;Z{nAMX6B;4@GJle%58V5f^)7O|KToT<<{@(%l#CGHPSaO(x87| zYfl|NrcklCODFD-?E`K^r-K~&-AbL3#Ds-aT3|=-7`VN+>16?Z>abM+bGA5CR+lW? zKJ6hw65r$_nY^Dnuw*nb%&ZZ|L~ut|T>V$Y&V&_=L+ zN(^n;a=2Nk%hI`Ht7xA20A;{;GGU{zY4a7?8fqE8Tv(9=8g%c`u=bClI;+_XcCpxI znQRF$;i-K~9!DXv@mt2N$DiVj_t_urK7G&+dj8ilc47mF2p01Aj&>;l_)ZDRmF}I! zbu9)L_aSPg!@ab_;3VJcarC=J6?^6;`q6QqZNpQ}1NN*D-+z5JNSfCl<1|#l3~}6h z-o(T@^mmHT8~6mslYeed;g|Z$i)a<_i`;n3Gb9F~ig7cBcl#m>8aSoxQ;trwZq!lj zUTmXIlD0RQS;GICzak-P8oWjX8d;i5->py-Pz8_wy0=b#{+aMM@;xZziZY>&c$yx+ zS9A&L{(z)vGt`Ib!*9#lYuHAeSh&l2D~Us~$bDk>Qlo$$ZBk# z)HMFXk+%gi1>SR1RbDVFn^>SoLKlmryi84hVhm(a6NPw=!2nh-QFvCbpUfI8(eDv%^!BZa*I#;LOPvcd29*Un68n{6Zd?OP|<_cPe5DNtMi=^F218&5rh5s^rPIdXWfI` zg{Z)`S9&@*F-6Y9#p*^P?_ME}G{1-P@|Gjk#{(W(NRzg9MiO32P~cK`-BN>A2Z&WE z_&#}0dHY#3o#~Gbo);0p3!V!NS9so`@>cyKQTo%5T@;)T8UE4_rhbAwE&QwZTpaHQ ze%6tge;Y_Le=xW%{Yc<-Y-vNnPujzi$N;X4NbLa_soQ@ZZ$DT=BMSVPsOLfRyM2>4 zYM2ZNlYQ8p98=kR`szfmH!chfU~~3h(qIq#=KlB_C%FF9HY+De zXW{#WznpkPTH_xQuP(PSGnCGID#iC{#T(cqjG@k~RvAi|#DfYLzMkSNs~|J-k$o+r1|$dI?{&crP- zkYi!8-NgVMZFJJgy29Cn#kxl`-WL4E`+G+4yqVAwHKc!5q_ek9NrSj^J#%~S+UkLe z2E|p~?AnB(cM?Uu?DW9rhb#UiLPtfT$laV&aD-H3Bi^)DR%;v@kUR?PVKgW+lbEYd zz2`oIwS){4S8p*)3Q3r>YvvXGmB|r#A0cOsF^``85L$LCRk2R57S!jCbtDYEc*Hc5 zvXqP>t2Qop_`}eyT6O=Dvugu8^zfYfkBXs_l7wlE4D-&jtQgz{<@?x87t?HoXPS;fPqCp(`28D3 zy(Z#iL~XdGI#S5hy^+FYodX(;Kh0ntgH!W<-!Ehldx|f8pjbC)Aq-jMEm{!n-Tw5O zU?_+Sn!C9f5(Y*)aBaPu_R|cfreI)R-E{qpdu!^N(SwU?3J^1M^)G33Vm@V!T^fn} z@)Xcj3r5VA>{*~(LXrwSVja9FJw*=eaI({T*41=1f{avB0`q$>r>>t4EDokHN}7ke zSjRgU*=8QUA#>VFcP=F z9T5L#4v$F%*+%L*vtdZf_y!D21UlL1Moap=0JSfvwyyqq_kB9KiJ&ap${?_;FOR9q zBe++Fnub!dlZLPyw09~LTs zkG|(0VU|y&qzfL#SSZ8Ybqea#U8;~?uS0F{`F{D*vexMZ(qZWxaK z$~J3)1Vz^cS6&&KrUPp@%x4?m3tN4+jcqYGP4_xsStMlLV-n!U+-0_%=W*{Ew% zhSeHxOV<7LU5?z`<5S4cvHk%M`NMzn>)%^_l&cnxol3ORfAF7K*6f&`US3(yi84+* zUfziuh~5TTIP6$;+*W*kuQ>L)x$%r>oX`=woO?3>S17-+N5eX^)HQ%>%nVh-)PAPDs%cgaxa}1K20l_Zm;DS4B=lUJfvPEw=Xp{u!8y> zQHxJMn#bLL&R&&<1&G+(iNBy}ulK+CxVVxTTO+FA;7`>JqWqDqpX2(430!2Hu@?|X zAkqwm98;gBjZEXhmq44t(#2jT*rX(^HB(+hJ}V*9TJdf-sydQ5`!Y+yW>7z>1P7oO zJfMlL$ylcy^AipSjpsqJ&UojU8LwX`)uxfjw=XrSlK=FACbKj7WYML5qZ*^*t_w9; z&dEdxIlS0oUCidI+I@*AM9C`9lb}f{wPvW2pNkmwhv!#Yb=!0Y;5BX->8AZ5S#-Hc z|Kp%Tw~{`a`t#^AQ_Q97GAhC7xYkg9b)sl8T_Jz$(u*y_{*sJy-zFzeGOi=Q4R2zm zJEK6#vJpyl`|Fn)dxSG*5%mFA8~TMlr6t*$#B2Zg^d9s!E-m7mlSYDvOjGA2{{t`39)BXta%cXXH)9rDqbH}XXS{w)!H?T zRv!Domi~@Hid7&-@LLTJ{1R0lK#Ys1L`$iU67yWfPc3UNJ@d8-0lie!;7O2BdbF9A z;X5Hv5TTmzSD{t*S4Dx`3ndY9tr1tya*lA01X56f-v^hv?lwFpA&FcFFZvrK_abN| zT(A%6N&<-~wHj%Uu|(JB$^8jhjZayUJNsT@dxe0WU)R)_ zUmsPp3dFL`c<;^I-(U7GMyhVz5 zY}Lb*oB$>yrF)u(C^!Jz0szgV>!kV@RUlA#MJtb(V(Y~cA7Q=nVHIJbg9=LXo2XHR zWc=auNJ1>T1LoPvD2XzLe|*8iP!iMLBD>%Idb(e|Gnfb!Xs4$MiD={(eZhR6l#U%= zf7{z}J#4eDr+QoWZT_bvx-V|n4K8r%LP7J%PMTjk#n(?wiRcMB5I6*SiA#XWJ8RAy z%%dL~E{RKoytl~)9~@QtSNAu{ix%`T^VVXr^y@G>9~KywQ-EmV^A;HrrEz{Eo=o=L z2;bDcZ9~UJyKDVX#9asBA5u~j%q5fTw`bcMugnZqz9($$$h76~y;;ucn;WSRIjHI- z3j5jtwSMJHCB{R6iERxh5<0c;%=h3nlgIhZVpb%}LiG(IwHk==F3MCYZ}Z|5hLV%& zjR)D3ki*s8${Ok?G^?}2Lzj7qbV5vWtgF2s?$-|{I=eQ&wt(ZO(1YIbIi@82`J z^W4ZOR(-~{A^oo>E0E`lCE0)AMY%aA{@(x&KYO9x41VsMC)}$C$;y=_mA?iWHe3&Q(ch>cdByW7HPxe`Sr_)-lFCPrb+mJ7 zyC+$Q)jp9MD{oHJDUgKI7-&VBc^tl9-ex0Ev9Bliyo_8IhBW-S0iwBUivD|2Evgot zGTt||8BaW4Dy3DelN-Q;t+<}>%7J$X36@4v9hTz7@Vu7`?E8 zLGml}(KPgAFA5|=wz}QOZtQ$*fj4};%3CF5&6?q1i~OW2wDtf4bLdTkCThW5TS3jr zND>8D-{|dfzig)}3US%@p;S&U1M0C?oZoC{xpRqGo!yLsOD-gV(g9 zFgRAKM;d)20zX}H#dByj4Jf5UWo~l6IVRVYLEj3HpdN91@}n4e`*-bm>kJ@vJw9_> z-Cc{lG(|XpjXHig9ecmk(W<-0;(Yb@$)A^PVdiL;>`=7oHe<-3?Fkq)=x}bv($uS`wQwRkBuFFygzVkzP51R+W!>@n(2P~&PdB9_rvk+hsv$1 zc_14cfj`U?90}mrwZGGtiaSF2z|@Y{fe%-QN(A?_ukXsA*FJdNRlWZ()V6V-<#AdZ zxmx;{!;af|=A~0kRUI4A13>IyaQdBX{J6T@{vW0`J^}BSFIj<_^IQPC?JY&Z##4+M zKymX62zc7}6v>l8UkOg~q5^bNZ>QTK`}*M00C=F<04$&e;Y=|CjGwr5I9N@{^*94j z@FcRr+OUxRL!preX}DmhyQ37QTUr~$>QAtPfP8y^zeGWg1XV&$kPkqGEmtd`QY+V5 zs!J3ww|YkrhCG7@p*^h5#tzP(IskZm=eFzyOu_9ijM0(eUUK zct_gbfAM<(S;$pbU*(IXLJ-5pLLdn%@(F*}N9+iApZLkP|A=B0vGy@#`4e|T*&rFl zs6b`*+STTfkwgZG!j4Z6aI8J@61ZzGn!ZcRB1sD8 z2VB~(!2MJsz0@Wn`zmVBb#67hjX0wxB{vHT*RzK_RYZo}Kes+nk!{FapXH|wN}@py zb)*rf>L&i?4!`wxTuLA*rgpR;Z2U)Y{Xbc#u#Y7x{~CtcVabB9Y6#)~eK#~TR2>rm zt+d%WjD2N=TI0{dRzk@>%XWD|6%PKMm07X}IZN4LFqG;5L7=>n?LF^z+{Xo`>Xk-t zaSf2~YY=BX;t2gF&^z}f+0bkz?jY0^P$}Nb^ei8KGedX1ep?KN_ETo*g9rZ}6g*%EqquH0p7zEthg9z zizSatBxhnndyPqLIiPv;rvr^1AIJ;gp_DjOGZ>q5TyK7PVe$s5F*o}e**L!a2c{n| zBos&t-vER#W+!p9#(3r<(J+F1a9K?k-M@SHg?QrdaTA{VpX6Ub?AA%&WN_yylMHrzHZpmmApp^ha woc;~Y`k$YT^}lc!*Z+5r*n`y7GaiVbl004k450U``05ExP7cwIBj+c@;F93ilXf7?SreZ)0L^^&J2J4W|Ec(bQZZ2%cznamya#fCUGww{`)h-Q&N=eoG=Y zV1mQo=BcL6fyI`UNudF$_4!Px(S4Mu#=_IALZU-v;v|yQ{9pr|53eX|yS=!0+$pm; zuDxx3JZhiNB?QD3vL_}YD#FB!;GX%5r0rwJsyiM5d|)UHe3$`BAAv1jtK5;XhJTL* zW>DM1eualQbJK2vwVj#d_EAB4&CJu;_we0I0$``s3KD<7CJYgvSBzn6m$3f-wbBiTD+~M_<|Jk%Vf1BPv z^-OS_o+)4)=YpH?wr>I_3kC)R%Myb$B0;_fkTyUp^I^4xx9%dn^T)zM`3OeoZ*7?flbKp6K|+$3p&vG#v7z*F)uH6Un1M8ksrM$IMT zyGxA^!krEtr9w2uY?ka$!@@)9mqNk9#F6?rX;MVQ;$M>ORz&O^=5vU0>ZR_Yl=YItb% zi1id&ekDM1pi`EcI={M6k?OyxdAw`y}=rydyyimcFmGRAVlCj!iD(WF;rj zJM`Sh>K<1^8czA7`XroDF(uN!WF}bLQOUiA)fd{HW#sdezxzNwX3*JJ^phhiM{eykp7ijLYGX&-B! zY@cnPK3Qp=MmR2a2=)TQp8Fp59{WBLUbY9+qv*$4Etvz%kv0TvH`9FqYfQ`A*Be(D z2kxQ_AI5QmU71;#37HFK-HJ(y4Rh~(&3&AG+UZYug~nA}x?I*=R>`o* z{#=B{1I);>>DyA@)cG_>pg+Xbe5aLqAgi21pwXF&p=SF1yK&-h(6Gtx`Js$oz^>sC(BDEI)pl3$iDs~FARUWokufEkgwLQAA*u~MKguWUCPQlXje zC}|E%E;uSm%hRjy0RGes%rUI&(PI82Sb70rQ*_BGoP59Eex;)&tEH-yZP9+`n&5m-y`DqUKMvst#WiKfl+rEd5wG z4{1niNOZ1n4!?mTuZi*>CrL+4|J*{PA7ou~BDO~AR+SO>CFe`zx|65&1~{{{Q`LJC z@WbFo7q=M)5hoq75U~kK15p(5RD?(5MWj$<2B{^H9PugF3HOVc;kP)$X*2r`&4Jk! zo{hSdD;I82?q52QORNqx&8_!{mu#1WzpoPQejR^x9`rNZGOeD=8Qk{IPoUqZnX_M3 z=w+ENnYRd#{0`5dK$KWMH9tO2TBfSgSzld;y-3!0KQ=$fw{#P7JZpdaC+$z<@4@5Q zqa^2R=iD2|N9{+rn_P?%45eVi;K8VaD62t+L3u{~Lb}3Sm5FrawEOYn@k=&7wnM$~ zW||6$3fT%cYcA_->pAP_)wxyN)z7P@q8~)&-O?^)+#g&|F38To7luE1-N)QM|E#<` zxu(8{f7E;wxtY8C^XUB8?X~XJ`b<$asn`8^Y9I5d{mJD~{M{smHtv}b6$1xV6~mc) zjJetuwXYoX0t|PcvqP+ZG1D=R*+SVplNlVtReM!`tL|+V&T7u4kat3yuor0XX_{m8 z)fbDZiVBLF6Rh9gmZgO>gs??We93QTai2?=LoL<#m>Crt@ogY2M0PM}kRsG`;>whd zeWv!Hv5(IE4V(!ff8V!tZ=BK?s{l8Pg!43xIjVq4nG9w!oi z5cfC!IUbYVTLDGYT(LiYpde#+_$=;cyZMOulDYr>!+zj?uBFxdkq-Co+b#a@62zrk zE%2IC6PlfBa!s-Vzsxgr;_n&We>jwBaO7ie6_;Z-bssmba6f6ZRJYWzbidHNpF`Isx1yuS9ZG(SY{^CxV0EMs>XWzE(&zN(C> ztdDQ$W3*x<$|wH$6?uBIvZk)W&d%ap&uB7{5cVD4$sNT#&|U7m=lj+Yo)YJe?UgEJ z9r`_wjHbsk#qT9w=6*5gyc4F(Km zcu_t+pV?*Zh%yo}>UvK;WjCZxf0>1G+I1XtW^j&jmUTwYxDs2M`LVM0k~ERaI%?84a7z`Wo>DL+`5D^*-(~AI($6)0BNh zU(Bih@5pdzL}~iMhf1fb&sUAF#^)N3K7S+zok|b&`O9n^G1(|ZxOX`mUkVP#6dT*D z^;_GwZ#HfB&eCJ|VyA?Ugf(0=PCA+rf7)!l3?S_x$ztYHd=vqD%%0VrO#I0Gm0LKd zH~2t_B;FxDPU3x|IKY0&h?)_Tsi{<=#HX69oSx#G*>UdpXC~Bie}cdS)jQ#({-$~S zlG4lJsoa~-(0Lo-wZCvf@ykf3$d$!XX-2b8vs|UdSN2iD_E>L+JJy{a8?9$9@n|}y z)u->p_q_IA_Abx63ujd`Ul8DuE}vTZ_GX~HB#JFa#{mF9!+pD804Zri000$0UPe;W zb@`~>yz0k_7R60u^UeCdw3W2KC9*mANs~!LaG}4&S`5M#nT3mcOMzM?k zO|u;1yOzuSQ0|G)h|GC>d_L*F{A ze|Ht|5%Kt9v4@N39s6kecF7Snj~|!R+ov+o?VQR=RBHXJ`flW51CBBn>|q4=q1yIJ z5#;+x(C~lvD2a#ZJ8!Ly*xNSU+jegwk}5cWHv~lQf)uedR3!e~{?Up0)wFBp3Zo-$ z_m!3=Jmwu@FKT?uhtQB!1et3qIgs8(r^(mEskr>p4{y7^R{=`*(ZU7L6JkyIaK_xh!{g|%rJ&^3;T#PeEnP1@T~2VU5H@XLePmP+*yUs(l5}o; zef{q5SnB80)YOI25|Z$t0ON#s6%`fL#E_s6W^C}iAV9UI;?T{_+1c6t`Qds=Lshgt zJ{}kL3;~;%nV6cm0zfR9-X_LQOr9KO9+^vrZAbTAgyPf6%F1Vc>(#}T#YI;;Ev*%r z8iX!s8FY(73dof!=wnwtfin_Vn# z=`(MCe!V!b@jOngPyR~yCkR>3AghW%CL`ZASw|z*2OewWlV*#>O)%r7s@Q{r_)9cj z$<*+jMy3$#q)d-Jr$SB9I`XhBf=UaT_{!Q^f~Lp%@-hxUKvJ-Fd#{#FioX!Y%G=kr>$+);NT$P^VBc>GoZp@ZIFGkO9_2s z+W~Loi>&HAMJ9jo8L?^zrd5uj^J^#o7h4l&7`aOuz_{f_14}<8Gi?r-Rd5B&fP`p} zsnzM|zY~Vu-}Nuay>w0~AF!IISdKTd>;OLpL(TrrPD3y;i;s_Q6}s^tG|b|Mjkzcy zfkuEPujiIbs6b0gI_Oy+=l)(@U2!$ve*fu4n?I++PljxLQNII-fM3iyh)f^JzIi9e z?P!&4$6FLYY7=Jg&cH8=jY$4(1BDvC4@MIfXK08KjFV+TRUzn8j1xh(Td%4nm6L5? z!)5O{hYk~WVN>*T0eJ*@_>3&wik+qilJgcn1ND{*4bb=c^YE`NzaL%NZ##&i2Te&y zNeclgT3R4J&V)}mD#_ZMVBO4Xh|M;eXH1!d3c%W05XQ46;09;=HNhL1W4M3rDi zLj%Bojl%*_(E@s8G$mxS6tEKzxBUQx5z&;NGHI}g6KwITcIEfA$M_#T+S*E90296j;zmH22G!>{x&f#kS zpA}d4$em%Zm|<*Ria@C0z9qdpxCqEXjR|1*I}>w(i$nWQ!alEr4V8GLUN^2B3YTXh zv6_#;0wj?v|5kxoTCF?hcYlbqGA~CK+VABCzFy#af9E0bJU8aLe}ZOayOq29l6NAdIV1>_Z#T&`2bLUwj` zOvEz(5fex!GNuXfT8~L3{pRt6cL|2w~ItXsH z0r`s%>hWo%$N9+}oQ>Pz0_Dq9v|qGmUO9PDiR)=J%+T<#yv9QP1W3MCbQolQy)c;t zlGS?e7uO0~-84j_{ZRWmPEA)$w~dLv$_!63pRk-%hKehurnW8}J8mm1-5w#EAZC=E zTxyJ{Rm+SI-bVw|<2u}Bp!2p}{OS7E>*3Tt+N+5l=(EcyFDNQ1OTgR>GSBaJ$T>>l zJanHyY2oF@D?sw1(u8MQdKm(||6l?T?uM22w~BKw{Acvb*60!2J-fwmjf=kMEw(^ayjEQuS$Hhn06*J-z6H9`f+qRrfF32phfoRypdtI5h;=k3fhuG!+Ye8 z&%jWTOU%zkZl`N$<@|4(LxhDMao2FNaCAFB;{-bTj)MZ`!dhS--`?(rTF zs1Bjm{%HHY(vK(4)`6jw5ChKpETsfgd)rw6EcEFneTd0Z6;w>;++kVepiZ9#(7^Y& zKN-K1j&3_X6nn04@uPeMRW!xnF{h`ekI^zGBojh0`HRNAByd?rE@b>&iX0FS$hyB9 zAX6~WYO=^RiW+bFI2Ef(%|G)BE9FkN$S8)49J()TDaawkrB^*>90Ivul9Qpkw)K$| zTKVygZk+0_W-a|Zc>Ut0@^Q3vo!a$^_K(aY?OVMpO)X&l@e&D{|K}60`;Gop-tyI- z?Q1EW2VELofm~rG)?D316I;);;S`6c%G0uC$@}l9t*Z+vZZj4Rhq>7gvDgr3B;Buo zgzl|N5F8cg3dH}~w*24^v+fnR>`FXdC-dHmZS*|WICU%BoQkGm7mhHf#(>VOi&X$}J<>fxANOnh>?Huc6(*2~K(OQP$`!f0x#YX{m~Y9q zGaoZaBVyiRn#N;)u(3TF3ix@D`{++8=dZ|dr*=$n zrJ?eF*%9%%CJHPwn%$yKgA%zz?Qx`Gae+jpwp8CHb#n;X3t@`E>0Qv*x*ElPjU5y+ONM2bp+^|i&tp$r-_bE@r!=@Lg8 zERUMd0QC~RUI}b5)5YPnqmr_ij3SOkAS)nZa2uya5qvc6^9tt0J^;$EPWp5ox4KK- zhaZ-2N$I-~Z}YzOF4BG@w0T!kBQ7&Rn>&PTEv$@}`0~u3X!^zSZX8nw($Ivg&IQlE`MmLm!}&yM$$CLoR?t~R?7n4COH!B7}! z2IbR^w%M>qn{-RQVsl=6b(3{sa@<`QAv8G7 zVjE94xWR6cWvoD{Y>cFIU?4d_bIOEC!0EQIr=W;A(e7U?&M+1+^=!V#W6h~`5WG?E zQ6LicTlAq~&GeX8FA$|x!z^t)2S+8C_c`)^k>D^=+wk0bT<`EcWrWJ_!O9w>Cd(>c zi2#dM;wd!%K-xq_xt4y1b$bXcrr1M*Tzm!QI?z8PC`6 z7$spz1ctzUf+-b20+t)+tCywelibGb&GREr!Lt2q8bRH*yF4{yH&#}X?S*bkaU{X{ zyJi3ggdR7^;E}bbaUfW(`(zYg-1JbmNDn{Ht}=Lq2Do!|)cPRA!A=&vV`gp~?O4#4 zc=EqYIo|MI5Qf4HR&%c3`+50wtz8r~y44_^H74`HrB0vO@kq(qphX58JfxnQtaK`+ zUIQqF`_{u^<-Pm`6Z8qBLSeXTYwG#XM~yWj1DKFd_}bPe{8E*FI`7OWkH_Z9`uVf4 ztK$h8&Y&tNV51c9ZkXc+dkJ$d7u{}~7P?lED1asyXm zK?!XYN$^s*^~{Ywooed`n^SJ*O~C;8ASQEo1HVZv@!P(C);7`CkLwNIcesfP8-H@` zBOn!LITpt$Bbw zEc_=`z_&KL?wLWlRizmr0$vT7Pl5@4kWS3o)a7ZB)@DV#O;33k3OvZn-(!bs_`f8w z2|0_u&!I7xiYjXTJmn9u&P^AMg%;te?J2NA!d((Yajs1|;}nN3vOXStKO+&$8CHa( zRoJF>=)~F@vG)_Jx6SJ&qc^=@vw8YCP#Z`6|G_5?Z)Pp!Sp3Lj79AjF9 zg0k(A*S%NdE#`!i*3%A4N@anHLAssb-fGlwAAF1HeQ*jjfOLSSjEr|SWqN+-x@aD)Yc3|q^@vg>x$-971UwVU8z_Dk)^uGVekdWzfI;;0 zk@j}Zji=s64zTY29@A}3D;~<9*V;SE@MHLX$I$IZeRKsg!eyu}ok1FcQ$Uc6vVoHM zzhx?%$W8m}Jk+j56oz*JJfAkRKDJ%Vuip(fKApX6sgf|48#>al<;^+zL^MSNpc)RZ zwXX<-NaxLZX2KCjqV}kdzVU!6mDGp=U9gDVILs(Y#I^vcq$&08`2FKVLW>HZFf11B zI*%1FgD6lEns^$JGMzmK`G{KHV;$Pe5*$*@DAVOf^^J*ZTY_%ARn_BzoJ9XB3A9>T zN&}n8mAq2Yag#WZ$>>OR_4_ent^G-sA@Dx9lKmVlh99~L0EG%<0N16H6YY(Q-p30K zaa4~ZacJKKAf>-WP(B9e;o#d5%i9UsL5)GFm0-kX-|ULu%Nd6q_w5H?iV|zWbM^wf zNrd#hj2lbQt_Fj)AuEK_Kiqg0Ythk9*EbnQ4*h)kc^qmjtFdqAfDi6%0_nbinyVDG_$(1ajEDRT9 zT)%^@Zci5_sOW$=X=Dt50)PcQ21=W;i^~W3J%c>QeA+xm7@k<)3~4F)^D1%bUvPc1 z1(&WWnpz=beHCR;q1!P!!T}zyi-Ee} z@-7r<^6i+ua2MwRi`Z!e8PM+;C}`sny2S_OXxq4q0y}FjX$WgQJEr!ZDa38jGIiCmWS2)V=QV4aIrWd$B$e)jdwDcEO^ywK0^)KZa5(P5!baM8j^7EDAA$BEDu`~;h$kD- zuG*`?Xwg%TDI^ZT-`2twzrU?N_|ju#XiC7F-}wR^cRhwqGjuIdZ}4>$C@To*RJ~u6 zsKvD};f|zFGAcpK%TsVg#*jEVIf}YQw^pto= z)T5_`)WcNMsiN^UOPBok+1R*mAxCPp=7s6MOwqM+ce@Jq}< zBTf$3fQVMyve40yDZzCg?T>^bgm=_=N<&~jgjQ+ht;RcXh4uK?so$;Y{Pc-QfkcIi6MZMI zA{o@Ai-p6sE;Kk5dyaZO8>5RVq7(4f00?br8%0B4kunz7mxvEZy_jYp5s-`x3FaG` zY@#~;*{7D664EMI-6GOzZ}%}uA5Ym#U|@kh4^%@EiO+Ko2~IUN;J?*P;tZuwz)29T-se-!-|BBjn2e) z2gC%gwQ5d>6W@oO368<$1}mU98WF&_sW53S_zHV(KVhh1r82M3)Xg+!PBvh62y9%PUl$iO+dgdUBu$ zb4`mz3b)`St{;Wu-@Z}l>e`~IM&}bzu@KPCA|!+;XF^G4*^F53viP%os6BK33A~Od zQ^65Vwbp%FTH80ijb}9O`6s+%sw{Xg7~2Y1-CNC~iGU7|RI=D?=iqVG(%IU1ulU*p zRV*SV41}_4n8M0f#pO9DYovuyl{}Fg;u-3?Vtm~4j~_bCee)K!h4k;I;gL0grKb?& z6ixAw2QX2iBT^UhLoE0v_9mq*nGXveN&yWZs9Nt@C)9JzNOG{Z#Sm76g?DxqUN)h= zdXDbOBw-f))RuRgn$yd5N)c-ye^8NjrAt&ypj;x9p7&xG}|+suRS4Pkq-}@JdFeZ}CnO=0p|geI$)N zjYSQkzKS(xgKxiNeb%J7?gGC8)Cm^RHFQ__CDojmt6)+Q<%6V&w;*eKgn}=5jCcFb z?>JR>XXf;&`#JI}C)kZGDHMyziHeJaPkKxqUJx5SW{xY=MdgcUeZgYFTXd{!EeLi! zUZOC+c1%Qa&KM!XBxoxdTGIE84rl*>L}Dg|{7z8+?9o7#hU}D&0`KU{7}eh6?i(in zsP;56^>|44Hub)E{~8}VUEBPTNCfGUH(M4`yZI?`LPb|?=h{6CfT7TqjIH%3s-=|E znS&n-?Kuu>hCx)hmt|iRYLzwyWU6hL2nd;E`X@o3`z5V0tPX)R-6~9TQ65Tbf1RiPebd~?)IG$e1m11mnIwB(?$u!3a zC~r*nm+9H>>x{w)|3gkJf0Y$`=b8&bhp&R!42qvDgf|o;B#RVjs634*+&FK%W$b*w zjD%3w8`IHD7YxNDpW9Qh=xR&rkqN6899-;~QELS^H04c&jR+geR?t9M+qY}}ln?qe zL=E2EJ&3)03URKCpYl$LIl;LH>Ux z%dl53(VcCMBB49G+%R@p?6(HDYcKmo9c`yeV!x|qI%iu@Yq-(Y=HuXhW_?V%n2DdP zdE=t>G_;PfgJ3C^sCMR!jXoH!@}t&gajYQRn^8XfFh8C}{Cpv>y{j!w{vU&{$%Ok7 zOhozY%aTeM!I7|9NrjG`H;b*!++vS6o$ccHnXF*9#aJ8(wfqE6_HZ|Qg6ZwU7wu5{ zcL;=sz@x%v4!W2swKwXsJw!_GM8y&&w9mF#Lv?noPkHBVGK1QKT);O_P#uXnnx^}KYD1;` z3FG89Ed%jlp?|hTVvEr?VhB9u@LYG{5Yr7SbMGB0hYOl1`?ftsQXb(Z;G-X|Y7wIa z{RvvN!w+|n=UO;@QXQT(bd8A)JhWjuX29!5AsJNTU_RoxV&sf>Q}kdnBm0I; z%Tj2b_LG0TXYdhCxbW=PYz`S2mQs$CAKPp})ZP}pnZ>3A{tAENpy|dF95kg~<)Bgk zFtTsoN4A~bWh-v|vB3zo^1(63r$9qfPrNZT&8Cv1-iBd7HR#(#heq05kg<$r!6!ru zAi{emb*%_++@I20v914m79hIsl)gv)Sx%+pM~Cu^B=uD5PE@>%u8_UogGi%j4$~V)Z54+Vep{#k( z$?`k0i&z|did!7aJI0{Qp_TgVf@J)xy!MRX+53?SG$y;FCIK^mT--{hDh3Y3DH63+ z4NX5>*}1pu@b<&by+*#>vrA{p=z`jF4_qRf0B!_ZTqy_kk-``9@?-k`XwR z>ne-}d5eb5PTMV>l4|}uktK{VV(rZmzAy#rQF$MU;XY(z_7QnlL>a@_tDc-R5$v>Z z_YRteztyyjyV0KlP3V=tM0}_p{|=&00h0Lps70I`T?S?rJYHXR`JosmAQcwuzwS$K zM8!G}Vl-rOi_*?Ja7z}^=P;Oa-MJ#7A?`-sAO9~3{03O-A|nvVJJ}g>t!I$cBjq4J z6eFzSa8zKzdemFSm`e8Je7cJz@>iBZ77bFNvjWfaCXTzxFg=b?1V$kkU{|-E|Crj2 zEywj@M>ThbXS}QeW)BGGdB^Rbg{z(~s}JMgh(-(Porp@O$t7DrG+7Skg_vBq$+3Nn)k(3XThQL2YG< zGb1OfQI22RU6yy>p+XUl`XyJ}yzSF1RK6=-7E=^-JSMqxgfVxQfVqQS5Y= z8+Kyy-a`aW5ZK8$+GqKX12N$#4VZ>N-@6}0v$k<1=j~X9g&b&GXa_t3AZFDpga+RY zwMSvaXQgLH^kz1(pCzL5sbOeFzp)csdY%yS*7NV01NPV=>m*K)yF2K}02SeY@vTW* z(^^EN!fp#QcT0!1`>&nfUk6?v;uoRQ9&PqeDvx=2eT7zHTFw5PK6hV!#8sk)FD`rd z{PH)*s!Ubu+E5{&oNpMtTMPDD`sO#L3UCdm5u?tRAvL`tOJk?5oT%v-!Y9Kl%E)3n zd55!%k!SGTACFj`KbFs4!XDq$FbYzbX8@G+_#i-)9e;@XRL+08araL= zG?I~$8+<@cx7cyVLy7{IOXC)cd$}a1)0Zb}!RB778+t31&Fnq{Im0JtZG6i{d=q*= zR)eP$rhmlrz5pffmXDcR;+o*HcQ7$%87Ja*5FqHMJjuKETq*Wf1aSH=0(X1Na{LQ0 z!B3pAuT6bb_*x)k!H3a0f-LF~v4g;D$5!qA?%&AJr*gTQ%GXO5VrFz!;{AijU7rO# z^C;bM85#nHp_+vI+|%$u-+w+i)EvL8?f)BHZ5u;IwTktuyX}`!)Cq|3n^O!lAP*s6 zNs&X|*pJ2i&isi-=OLT%3k4Tp8?@**4uX>TMel*e^(-fuKhwtW75cS%hEOArd$#fz zH1R0>{QXIq?0)pvcqoQI#J=U>eepOWy6QIz=@9m3yQ)Ty%4TBd$3Q>mHT0Qn5f)%n zyXIuKeB&oPJ)q!C;=<{ryGtD7K8I;Xf5y+d?J8Em?G4M#RtAdoM0H*1Ta{A|*cCJ|jD>KwJ1(sa0|FuJS`%ubtbIji>TV zKCl$^BL$ggwtw7NT*$J~NLF7fXd?Ex&Y}D-LMK1 zm{2!XJ1v&6#?arsZIYDQX3G_YBI03+HnD}hWFnho6~T8!e-UIg=@mM)wwvq8qu{nWaiZ5XicL! ztKZQR*-+_#Q(u^zm;H>ory?esdp`L+4svfkM54U>O}%M+?MF+5)VWUdb{Cv#3?5~v z!Aqux^FNw*a%m-s6UA26pVZ~G%bNTbAbJXh`#E9z-{NBj%=#J){muSHX55oQmQxF7 znZYyXVh+m-gg*u1q(u9#mKg~=m$gt_`?LVx55 zjr2RG%lzAvU~CV$STf<6LEE#*7=keoW(8-FPPkohi~ugG)rF0Fa$Fl8Lg+fzv=b?( z?UuJ${0jQx#7mnno`-*Y7cNlD2QAOqVKSWf*qgCb%_;xGN zn#lk{lKFjofr1J}@QY+yw#yQt>b+Z=W*A>u#k$cVAmBs$!wL?Lk~TWp8?XahNs9*} zLana{+(#|ZP=O_q(v*Xhx8@!Kc`3r55F`FGZTd2)??E-nyXKc|DV(ihT;u~u06H{E`J!MjH-Z^99G8+7mIQ6aW&Ay!+FmhH{ zwL#YFi+8G!oeV9jGI2JAA-tMl_8*NHtjWT05u|49K#nSFKLRzDWxQhTc%2CCK)u04v_P38yP|(-y<*cnaCh7Ip7$edz0$$bH z$HC5_vH}7%q_{?JWb8YOAf9=1+e_W%UV5tlq{DTqgND{p@{NeddO%!h@RJh~X=n-V zJ;Wr8XDtipddqm7ow-FVA4rnWl7}i+vVF`e+Hz1>unnJm zSH}FESpU>M2TrYjy+Hm-ac9W4L;&o=-QNa-A-ZL~o<#OCcG}*4$?ipBsjR>p;|Tks zuIVP+iPns-6Z!emMygs{-&AXO6c^XX^iMXS#?;AisM9d8!Ev?y3|REzw*{o&O;IZ1 z{6gGg3x0^T7Z{5x0B=R-*v|FuR=YEfO$|Or9by@C4-Wbl7XTFrGK)L;PvZaqYiW9H zQg=M6Vif)$Wh2HcIO7>fGFt(yyJk7KZ82oMjg&JRkJIBd@8*F#ybYSua2R*ADa=Q< z^}tf;3A=A+w(-p8s58O@726%m8(eQhoR>DwYC>aQrS5*R?#spyHx;dkc}tXLO(X+t z+D~P&jJc#aD_VlT*jm)sH^UepX~zUabOjzAWru{Aj`=e|*&HI8f@eCWhB!a=$ZF)V z+Ns8&;D1f(Fmfa`frwqA<<;&`9DY4=w?2KonW$i8=1d(4r;(K-fcM+V_MD}O{0-iY z^yQ)8J~w?IyD!81*0~C)gG-o2$+))FQdHC z(rI!VZr}sicQ?#cJ}lSi-RUhJUl(T%SFha8SmFjy`_iJ+x@f~}v-qG#k^0V~y7ha) z3V&W;cnacQ?YLeM506w8?{Lne+hc$&6iWX!uNpW6gH}(k&vU^_xAr}%k|+?LQUgZw zS1mU*ps*=@Gt?%$FkWGXLK2IK@r?r_n&7+k%etpRCuX&+_&a#AHS2heBBoCoCW>)I z92rWj=G@H*qWg64vd8mStLYIkem7_grwt)Y-!NyR@X{A;H(^XnrSUd>dT+hf!r6Sg zuJ?VjWfmdK=JUc%TsbN*v=OG4iIge3do}UMP4pXB47pO;P`Z7q#^@C+j4B#J2F&r@N`o8BMs^lqB)Ogh+TAi6oDTej-#8ms zY3+PIxekSF*P7dGQiN@*JqaR>i|GO-6|MY!d&3G;=!;6YEO=OZv8w2baqBqnn2K(s}mrt1Eg(t0l9R_CHGoHOsBRFW-rrzhIzJ zu63=TYXQKUL`ZN0h6#C0@;Tcy?)n(%i{C_0F}8~E$Z+LM;nTB{d7BoPY%MKwHqL@p z8egs_%F&tYnP;sezOu^-t8tHLIJqtt3$d+#F+LCdkCZaxbEL7$(k?Hv-M-#Y5)fne z?a%JGF2g4Vt~dFzaVg|7%EVsNM$>C) zbFY4q65n^6QAd<*`n5HA;vAojjWAIYhK{t2e*x9-=*P_j7U-hTP7~)ACKYImF`OcA z<$!JILSty6i?*vU5N`jLb+74GH@bM*yO7i5FNS_N7AY0Gy!uO>fQ>N`yN+MnvdSuQ z$)sB(8At&0zmkH1HLRLUmWJ`jF$9t)%itAAg`U8IGoA$k_h@LZkU_NH0)Y!uQ^3r; zX+(VS+hH{JT5EjN06Q{So-?D=f^h%WxFku~VyES{6Bp-m<#(45zjF#Xj5MaGzwqff zAN$+ky4S}n<69d$4{yph?gQuO^FfGTIQJ00>OMJIN{3fgYbWacDiI$1I3zEiG^P1= zM7n-x-j~jUM;rg!#KcK*jQYb(nL1g<{8>gKH2Y_}tS>PStbX((1i*fAW3(F9`pVLt zkzbXIB!rTKNQv*v9JvsyNvCM$Gve^O{&}Pt=ERtI|5v_25U~)sd+0k2lE7-30GTBR;2PcT^yHoE`TXw5 z%c0H21Ak|eUmjk|98adC=4|AHPBToXicd{)R#8UCBe;aFHU6Q>?m040AWjxo{Y^vYFtg4*@G8Su8YOul z0&g;FIu|Q}s?9mH2T9(fe0n}hZ$+ClV&bvhs=u0)F57Ajp^2k%xX z)Scm8{|KwjXTxG~q{9KJ{UOL`WDx#=jGX}=->ahD(@9TxU3zYJRD{P)@E^b9vNuDuvEma+p(XnPTyo z+KYXDewks}jDNQH4!lZLE@T6d!AL-AlaTYvO-5?Z@*NaaH8@?~E$+N{SYdzY^s?&* zF}I2drIqyhH*p#t8t>hVA~Pvds4#0z23@|<4>T4|A*ql5e%f-S%u@sxDtm7(OH<`~ zz_;K9+73_qOI=0d3*&`dz%8JRC#h9>|r`#c-V{FAXNsGr{>5)m* zF;CHxW!pL9O`Pj)nXOAq0F->(T_(EH%R^uC7dE_xUoX)XT@OO>spuQvsfRIhsj&6; z1bgj6U5M{(sk9PBfBo9PO8N2DWO_>FPG+HE-vx@r{*H}(h{;Hu6Kbm#f#)(@5AXAG zlLI>csz(dSFEt#yOd%xhlWS_wrEqbtaY+G8Zj-vwoLq9 zr>{xs4K(;kPiiRpHdT0t0pGP&rgae(j!ANjgpEQ61adPBikG79#*hu5fL^M>d{YU$ zO#MnIHsn%ZZd0FY(9+%&-&!Krb}EA@|J;o( zH(5ka%7K;6qwhG59eUb~Q;!?2_=S`(uCS?e9;& zAbo)w>GzMH8j#<`jMr$UW2`f%&fy!+e%7ctt9$FFSmfmTkwg0_vZ}Co=rB}BMlCls zJfKgrjF8&UJD7sZTWtBe)s9QQ!k_X-IlnyDFjFbuP^8bN1+n&&!H}_rj(9p{f9{RT~f}D?4q@69; zpN>RzHQoKF-OTc$xbn?fFE9UD%ODM+H0NMPT8-uO_t4OME#z5K|0GaO|HAdC6U$AC z?tQNe+^<^)0#ouY?{5=!2e@2>ktT-K6bSf2O9-p_e<9z+sn5=I@*5Rml3q2(=$e%0dOvM#gA zR!T?_&b0-)*@r(m*k2OqhEg8;Y?<61jBUFd`mK5DWx}6NOSx*8xIKkBtvOou`+fh3|i=a?-kH#=Y79H9=E z-L`IFMQH}J1YM@qcHY%nN2btnYLPZ-;;_fsqs#7uU`BhrwcZL2E;TgqIaHr<#=@kE zT zS^6m?$E*G%&?tIeG+cX&X$hp+YU7%cJ43(neh2#v8XPk`%n9xyaAhhhFhh9-{b@+0 zdjC^0@c20WZc~<-Su6*tn3`{yOgvdZ_2ZQNk9|rtGZ*?xn%~1O?bOfCi~#Cb&6~4u z`Pl*RU&QXS-3Kh3xA=X}SETv-QVDX5Bl>5Lv8YKyNJGtc_2F!9-~W#xk{2UHH zkNu*Nxk!jlsabY}H#^5p-Ob9x#c2SWe(SqNs0FI#=HEsvs)V*n;qqr%jw%voR_mTO z4flT+au?2x>Y;5a$QlO%wm5A;>)h$!CLM)(IsxJ*Pu$1k#v~pgiqM6(1Sa6@;-Ybd zHx5k2QCdtMlBFE84T@Fa8v4+crotA&GuS&|!#gO<%O`UKnidq1cRRdJHb{4oe(5%B z|K`gg{W<%m81#E4wqdnh`mxF~_mw+1P%B{nd*szk{PL@ZZIggC24)sX(dbEy;zMC# znhR}@fs2hE5w@A&r4lU*v4p;Do~7a}cooTGn3Rw%dUA|xNSi=DF#^cLJGe^r?=kUR zYc3^I)qkgOHt|}_XQuW0--GEZg8`!$H_|h?11}+EoP8BTdfR5LQKRbB#Mo{P=1|uk z`RCs$U)vN3+oR0W#_>UWubNr%Zl|4zieWB$W{F8+*zAf7Csr1tuLRTvTvp3}ns8`) zEKU+7*k|YXn5L{*KNWZkV9>hj&Kp}WA&xO73&5)l@({;31{{$8v`Agh!*8!wS)9p- z6J^7!+7qt_-zsUM&{yl^uOB8eFe@n?W15JuEPMow>vFe5CuEyiFnx;-BOh?Ujbimb zc71RmT>GBk|693x`*QSQhXO&$=hOi!mh*gSaHoNc$MXWI&81qfVrhABE|7;L&qzVc z{Gr~jRY{TjY7xeIA-DzY(nLs*NDWr{Jn;GeeSvDJ`O>}WE@rkd4Egw6M<02d7P zFw`RJmLkA%DQ-Lx*oQXEg>7*Mn&e9l=ygqE_n{t8>yrfT)X9f<(W*XO>$tXz@$*1m zY!~|1Pad>L&mS_92a{JPu3ewlm+F=!?#mzR#z$@ji$13uMeXi+}$1U1(H;Ukjro z8}iv1N-7L1#FVqjX;xLpi9;lpx5QF2bDgF7AidwQf!Pa>W%jb7rGu6-^&TBEgk49$<%^S@sxKpoPti4w zjo)M+{^#nJE#4_2sgPArvWGzaZ7aS?9Wris&sS-qz{wNuk-#pVP!6}xlc2J#aV>PX z5swfkfH6E#f_k;4{El4?IQ3G{^Fv~Q^w4TURTZ-5G$qPoT76gS$-XaUi~W-aH1F99 zA5$%cwsbdc_8$l>yTTKBS%azsKISat4u1J;!nruC!PGoe@%Z??0&C8o2P#Y|xxTL6l%4ws#}w~D$W;`)@6 zNn_7fOQ7s*KbfwFjJllqjn$l^`~5Zynk;oLV@l30*Loj|x_p0;v_7|M8%@&OLk#A( z$bwqA4uqyW*$@Qp8Wx39UX_e}Tf{3l!{cUo0F-c-k`U*&YxFu^pf~&R95{GfHj*cX z{rj`H>^|?}jLCXxJ#_C=*VB8lmBkFPe@N%fyO@N#cXyXQ!`TG4 zy5`GmAQ8t?(b|1r>a3%^8R>KK>U%(P=hT1RAY56d((A^QaD?7UgtG$op82C2N%%-zyard?Q$v#>wi==sWr+KPvrs7Ra z52MB@z_kSKece|osZ71x-S+UhE-qivb|$9i7ytZvPBX#CY_)JMk^&U)tlkYrq$|yh z@5O}my?vm3f5e<9vJA0&bea7afi97e;MASH!sa`S6J7Z2BbGmXxe(Jj=FHuk>?qK`pzb1 ziyu#4^>JKc*Uk422cijG_=bF12E>9eTUE4kv(2&O7Z_LB9h_%j+%Pl@k>+ zELJhc^n&1-C}ll6et@yc5Y4`{%Rn zfAcKiPTOH)kzsWmqNrAxj%N(<&!r zWyzFdAxq0;<1Z0cT>L38nQE|!y|EcGj4$-xMj}fynK}9;;W)nn;*vf0-jA#+XjoL#N z9k1g`9r%slmODURnv8hCto$b_|1U_wUolJImY^3s7iT-sdR@Dh*6aTWRN`~TW}478 zh@}ENJ?Fho-48y$)bd0-&{xFx#?lq3m8e3sdaz;hyFe!g1&~VxZTmd9&JE+VduU7_ z^Nj_^qg(A6VZs*Vm^y!)A*3UCnC*gm$s5nU3SQbSyr5DY}vVb9&{$ zG;udE1+%%ivlK(ao*vfT>0sowQjE>$Kh@2E_^E8H)2>!DuV>$v0Z=`QSy;LM$r_X# zodS)C($H0heuarRnqNB!izwO2sDHb8(^P;ANTs@QFM1Bwe&SC`6u+CXu*52K{7#T_ ztTJYMJCds4KYygGC{XIc{v9s^K7D6U;YE-01QYHs@KcBj^-}}0Qsfm=u+1C{$iwS6 z)=$)=a^O7~rTjbaH15i#aMrJG^K*b1Z)6GWy~A^+&CfOJv_S*lfaATDe*_NM{-M!{ z&_K!_Ud7Du_g!=)64C>)J4jrStJsRR>9_)7Lc%!lJTg$G>v;DKh?L z$TF0}0~iw7MoizdFoC-CHy3PoI^$orjbcWhygX@_aHHU%04eGBlVZ~>yZI)S>(Eh z84sFpgR<=3NPS)V#7^!`r;_JSWj0-)!ksB$&M~UNXh);SLRuJAqEK{ zJ!@Hia`vC>zw4o^SNux}F$UtW)s%Ndb#C_qz z$&uu{hqvOJISu3E;|KHe^FPne8zq2x)1pp|+BBv!uPP+2DpMP`=@h3H$1wC}p1|vL zvdy@NKH6)Ny(5;|Z-*IWj~3J#pTMbM@HWG3JrVy)ebxs9OPxf`w|eGwzu@tha8|Dm zgP-s*DtLS8%ey=bH3$&p*BVdl{L4vvY75?wJp{1$FUHY7l=Z>M}%Ees7ScQQ|i&3+>5}N1cR>G-R*% zu>AF=rG1S;YMptKJdg^OkT`u?BtbDXTuxUc^ek0!{o4VJ6_GY#{^bnp2lOIR6+*W` zG3|98td~zIThZbtHe`9UG{|~b`>*!CXykTV_hM6Bcn_%a|6wsPW1-Zx=D41kaH(*- zvM8pzkRFH^vRyH>n0e}ep=*5LMmDsd0@gs;DK%UoE$2!5zSBom`@!SjZnoJSuSmp-2odVPC?)&oNd zzpmh)?8jRHVGR{Bu?O5js(XeDoQcfpQgX~Z7>iT1TwU$5DJiOHD6EQXjehh@VcV42 z(B3%eBs?7b)9Xs=_E1$j5m4pV)?J6a7G&q|z^mc~$VJz=psTmms~Xh&(?OmTW2i4a>a+?fXkDoaE)^=1#nC5Xq{(w1{th#tve|3`IY9Xt3YrT=j{ct^Hf@->iP{`+0t) zrmp@%Ttec0XLED2v#6-3VSl!#;M|EJ)N?GNK8P!(ZR#L;sDqtQcr}keV`Q7rTKixrY zZrA%~XJ^Szo;*>fp`ppi$;}n|#GZz??0@Q^bmYAj-q`CQSV`BHc zn4@0lVKC~@=`ZRn!#cwH{|XzQQ?v`sO;=J>Af^uI;Y?YT5Z1FP;iM_Q&0O#G+sf|! z`EDx3KTi$*}5phw`j|(2hMe=>7V~DPb++ZSfp*H&kkFsm5mLPpb@>!$( zL5*f=PQ^K^h@gBW=taiQ$9Vs>4XaZGqBK$I%iyrh#SH9OF)5F+_JbTLPsjcPO~Jpr z};U} zF`$ux3mk{Wb^rgYB)f33A#^Qtu!?iN2cS<-6`np80RLPJli*5*}`Dd~%S1 z;HWpz$~ZHa=vVz+EUc@`grsq3Lqp>O0NtL5Gi!0uDVIvESYLR|Me&G2*N>ERaNN?j zn;y0)8D^7HNTLQ6L;jRKup(LC@m+6>jEq<)C@81{Ju(H0B8n9}b?X_wniHyQc}t^d zgaG*g@m?-2YOCcPCsxQ4YH$Q*{a4y$-Dy?uf7z2_Qq$i-v5Ap;hH>yWUkTZ=If~s( zb)|*Fg0=$6bNz$vbZeJxjLQB+@tYE}cDhngbQ;Gxaix{9Hk;D5H zK$oTDMF%1KtkO4gSivTw6sU`2m;QoL(C4i5V_s-3-m{IFYmo+)E{L8+`fZ8Rs}5Z!02$absC-|K6!zqy ziJ%X{I8Ubp?+dSpj@Cv4_MPxS-a+3H6h=tKw<(suMucS>(PhJyW~)ZN4e!U49ux)x zFct1&Im=oU78X_ppwlY`MjGh2A_dLG8ftgeaH4+a!( zNZ()ySbofrn#RUuECPB*g!RNBdG4MGX0fi}UH$bts=W?fC9<@Hu_jGvLLeSY1-C^^ zrAgV}6Vjkj!AKja?D6Qm-Z)hG1X6cIpP}rmjRz9|q(>z5(eA|9w;l25H(L=7mN1Xv z)w5eRwfqU`?8#YJ`wOUGQD0x*qvE8?LzpR21&hyv<{eYYj<+c0bzA(L(?X9DC$?qX zEI@|}Tcpp7@0&k*Bm&p;MO5N+1U=&dNgQHo4&hmLJ#LBb;2_2E;-m38zZ@hl+7gxq zFt6~PS5fhe>JZXaO&2kHI@sOto>>cTT{rEG-DK}SdSj$#Xudr3IpDGmPo^Z|C~)T* z%jG_h^feWYcLoU9P!(Lq5b4wP$Dtw?c&?76Lmr_ z>En44I-&W1{E(oA2?y(9@(6XV`Kcy@X3G9@4$QVJVftQ_Ni9NvN%3CLQJ^bsFjyG) z(IIiPX)9G*XWT_Y(?j7C!T$xgwOulC`*7$IbuiSSAcvarLckVMv52gFrs-Q zb!f-)SooIwnupocXEuQpQe#ft)(ysU*a|4E^pM9Tk5g=vfr}oc_6yl}JLsdK9i94v zT84+uS8W)|(IPwvg<(B-i^^;*!r{LKatxu6MK7Ia(;U37HV3~QX^ODw4k;HOe*O0& zbuN+9%341UB^rfVIxj^Vm_ut;4KAc&1Ajc{s)U48k3n_e#<17Jb|`J1c?IoGDJfOh;xUA2AZ1TvR)y#7s9p*Tf=ba!VyS~^dj;J*?RYVl^HP`J z+{YW|D7=sK6i9AQL5fbs6%7BnSevv;a)qWN`H$!xkBVLnS9T(F8N8Is#8|W!4DZKm zXCa9a_?7UWmSufzh|qlf?D?MmS|ICKKVH%31p_$3l3*5Z$n_JIY%cOBv(7U?nt20T zVAtv~=`{IQ)aEZr@LOqVEC_@s4{rDj0>$3Kj;6R}4cs%kq7b*SWFk+}R9WPOuyEmU zx?AY8oK1|_WddW}yxR>)uL{FYtLLx6;UK>+6{jaXgm&^y0Ru_$#oVw};wFj!I9v06 zynIrA^MT{Ot##Ck{cQesz}}3f#XjQQ8Evf6gD)k}A+XBxYdlji?rYKA_A10wA2XvX zuc{vE|6c!B;@Zw_)-sUSs3WZi&A`3aq9k8RfQ0YfNac23&f>$i$YdCJZeP+K@ksic zf`w7VrIcP-J6oP7j$o4x+lXNqhV4dQi8}zJF!OORGSSV_OaVbWqm#klveQ8zI^c`Y zQW5NXYEJSv002iA!SlEiN1jK8NMJ5m)^e!Dz+q2(__Xb{=2bEaBS&bSVohLf#*$(1 z?hp1@Zwvyp0j~RiAEV~66rO~BfNYp8Yl;0v&cgD1Y#7@t7eS?0aG-m*-}CFfQVPQN z>mTz352byae-?1LFU1vHQQ1r-U`RphaBM}xN`B&3PAIS+f5~X$=ktx~yCAlMY-@VI zgvIP`>qWr1X(&>kWIS|tHY~?6Dc1ktO@Pju)7h5!)iOyDzi&e|QY2sflZ1AT)@E#) zCr$iq0GZXLe{5$hC<%UPI?FF#kMt4{7fn^Uw}iB0a<4G1!7+jz{lNyPzbo4O zT6pobJyuTzbMFLxs;23jv7pc>9D=&9Us3em$NgB~c|+zbO~It~IG45|acFL`5LMI%4N!PPlSu_{EwqNw^dn$&CgiJzQP z=wFSe&}7QCac61wVwhtI_t@bNrEA06)?nOcrOA}{+mrNVLvsrzV|wtVa>~uIDcXfN zv&8F}wO8boNByr2p76>rxJzwu&)B_KlJ4N;TPkaOhc9d(g)19yN%;HzV;?bNzm|O* z`t`~Fpy^EuFVkk)kJ528sm57ip$8@Q!wEztQoRFKpv+0DLs{X!MdL&_gk*7 zV<(AZ;7hQ#S~da7;D`yqb=|F;cM55xsn5y-{Mjlgft@FO-Cnm{%_Sg8=!;;3< zV<&5AehKn^;`4BA%1{*Ym+7g6^Y-935?XkQw{>kS^ML0Wb*;NLn#3{&cIy0u#~aUwGqz2Scf9nAqNdE`z4b}_RETMZ&`FB zRgi=f;0P7ugaNM|gOF?R0N<@+u^fmV5sjtT)KvM!-tDE>ui@cmiPNYG3dDP1AQ}z9 z)$fFZhx-3^xomC5qY<8rC7R%ff_B-VXzbUYVkQUi54jGB8JQqZ%O&&T%{BYf%kbTv z8#vvv52Wy;Mvsf9=^QN6h7t{Wke|BCShf-sb&p>(2N)ccQGg3vlw^AmQ-YOK7A>EC-J8{fMFdIiX_eU&l�Q8SK+a^3@_E(U zvWsNrEBu(AV~T!wKM$dMmF98&GME~>C&(judZwz0;=ozKl(FXjG_J5JQ& zJIEE%A=s^fCj&B6EsF&SKOZy^=d+gv?wfl-I3P7e9u9RRd4Gx{JzB!Zp^0`48U>a=_tSs^l*vKUmV^@gS zV)VETR)8Q1Jy2AP2=iGA#i={g(!TSYsO3Rt%dEPu@!??isw}?K~x)5UF+wI6}sRVf>DfN_=Z-x3Sgws;gGus^Y(c|fA^APf|(aWgb2|ttcG+X~mL`Bm z{84Sm2Lc3YwEoU~PS{lSLNO;Z*4M@KcgH!ucfz+t)|hOqf(=&h%jK%R#Wp_*t)LWN zeiWF9b%e#85K@7SiO*ep5R7|&KJNaUM@5uxiRFaaVY~0s%7)I*G++ctt%*2#f-)Ym znhl=m2?)c?hqzBn6gYGRU+U(4q7bNTF?0}l3YN}5f4tWL;{vO)4(4?9TJ@iFXfE9? zdZMUgPgcrVO?mK6C~?bOpOXT59F}6VokpGAZA}jucM)gpDa6PsUAPkC_l>$>kgvH1l_~^rp;T++ zb@`mwwfRI%3CUTuixHD4}VY`eb+ryJhy&+Co`-j$>19nqfsJQ~ag?onX&pU;}FNQKsC#9pKcXe18L zo^pTrWf1UlF0&BS%96fASAwTnyQP`eRRR*%TAS!_E^Cy?qLQr{F4)6I6cbb^0G~Wq zf7ctoz$vHLwV)`OiiU;0!T?Vs-rJPafYaKeqsOVvGI+ULpa5bDAZLfZpbRU+GOi|Y z(hbBV8M{aVwiQ^vjeUwiFAbNeJZgTRQ_(Di0%Y^Y+WoFKE*J}cBCZXSc*In~4p^b( z*5A7ACXQ^z%tIIJ>uIC*QHChQpI@xbY>)&Rdd2fkqs3Dq3r+&M)}NKhzI>E1cm0}NB+HVu*o2IE~Ypg41 ze-2p%@l~|V8}q8}QEV6rKVb%l#Tm-T0DsX^+d&)o(bB3M1l#DkyjQH~s`fzjN{*xn zrLL*zBf5U+)EpMY=PLcxox$KUB~e+2-OI0FK0qYQKU3WZ_x^Rmb3O@Vy;T-IZ@#tQY@n)~sj50zra)Ca;}rUsG~KuAWpHoJAIwG6R(XoZBVIn=lN2NG4+5?+ zlRzo`iU`}gt(?~{DV66k9bdj2BQs|tAqQwh#j5ENRcMqPjSo8lfo>?wzm(>g*BOf- z8Q6a-Kf-zP*6qV9iwcpS2xLR2md7zzB!&doH&#qWo+d|WqrLp=R^|4OB&1e2(75Xz zt`!R9_B_7_b7W%ux0tpn6qKhck8cD73xAmF+#fp0KrU|%^86am?k~g*DUYz}a;;)b z{$LGd+UUE}vwuPGCQlnq?8GTgal$K)N`@PB%~E`zzjW7eLmuu9sq}wIoTfatc&z1- zqfwC#6de3DxpsUX{1WuYaK!q{X^hq`Vf*}-6s^@X#PQFiY=51aG#p%DvM0?w$E9lA z>*d)U{1yvqTL{uaI$7qFyy{M#r_KNr6Mvc~O1uvJq0M@qpHHga)Cx7K@Lqgie}F4Z zDhCo7E7DR9c}hfYz`(*F)htNT)l;j^PH!n z<5F<%;|C~?~b;|-K_~&H~pTU%Oi0sxptroyI^WT|kiLx@k9 z$lyIgLnB=bxw|J=IiM;%FfOOf95jnx(v2AcykQ>1=`1o^E&9Oaqn^FuQ?xweH}i~F z)%w}(;=7os*tH%|{{YM3{rQ3du)weS53p&{V^5Db%UdsMy=va@>rvt?K!cRq;uhMMKK8++X zG9FIZUf7Eoi`j2WO@Br(2{-m`Q_JGB|2_`~uP0b8>ivG>girD0Oqxq>+iVEi_BW4} z0^K-O+u4Z91SYNXPj3qN>yJK=7i;ywW*k%?d&3;+{4RTb!89bg)9GMh<#(!onZ5f_ zfcZ5_Flg!lyHUgJr`3d0hk|qd{IaGNmB<;Gt_st*UiGm4&ZwK-)d6mOR6ulIJ5Mbn z?530sk!fib8r!Uwam_<`&D#$(gw6=g!I(9=C3mr-DqR`T+ay$n5c}0Rt~;_va-z!KEBW%8m@c>;^m&a4vU#1xdFC}v+KWKOBcjlEuhro zPC%zF^*Ilk{TscB6rfT9khnL}oZK$l#m86&nSN247Ac3g&}?faW{teFF`IfSP(vau zf4D^b@sA)7IKn^rD!%@-wBVgL4m;HH+GcEhfzti#*y-vEHRvk?84sW+zGD(aijmL} zk1OBp)+u1F5oj6yMv>Nv1v~GW(Qh7s%6Am69K!47^f98l!C$YjO7!0O*a860U5G&ft=d(QXEw(_1UeVvNy?bUYeNCBjy zl1k;zTJ4cj?T|PwsMy8zr#C?mB{c}J%}qS}ZCVZQ&$hO~u}7C)5t zS=GLNz~%u7qb5`2lWdzW3HOWW5R1b}&eJeA@S}5}5R?hcIKRI8?7})Urzd&G%UIM( z7fdGqy~8HRNG#=%25>trtzoIq)|pNy1AA~-{$)dEGvvTU!MCzh5A`{-C4KpN_j^l$ z1#$S{Wp>?a5AeUjjx&+=HC?DyBnldd?0tj!(`$4c&g&bWNs4yIY&20~G4rYZo(2(m zT}L3M49QglwvR=b#Nbr2yD@@@)Ju$)_ZXVrL>^^&Qg!gNu4h=zLA*eYaL+TBSU$C5 z!=n3Ngunfs^Ngi^FJrMHsr*^UBi2YI%c8qLUUV!on`QlIZr2()s~`nZwZRaG>$LqQ z0B8U@_f2l9C1jS0hBs|d$>AGjGJ zVzMHf^k2JmsTSU|(v#O#(WQ%=C;P+lrybNnUxbZ`+n8K@~&q!Tk0vf)98l1BB~ z)fv$LLlB4pjZNHx5zt*SMrIV!0c>JDCjR%|C`;NHiVx!B>9#f{1F5o%Wi8J?#>U2; zvO%6SdYj92I^K)%%ddM5|keDKqo$gb4LE;;@sT74_ z`%yBu;NXHa=wB?_MeQqY?k-VD$%kBE11s%B+26EPi1;yqvCgrkOG(n7=3k0Q049m8 zoRm>W%mDuCP|G)U24Wkd&j?M;2%}$>j8d?d5R-@Vp@$7~OITpwy(^$yQoJI>7+>aO zx!`=ComhW{wec1+uQ3*lnvqV3Kc0wowp@RfBucM~1p4eva~2SD((6aV3c4md+3~oz zAkVv#4Y}5Y9fNipSzof@A_@%)Mfajcc$ML4-a44QdJ!xTJq=+gtYS+_)K10eE3f zmCw43t3_X7WJwJqTJr8!=m|T-qOQ@{vzP&vq-wJ9qF!Be0tqXXiK(gvh<(zM)@z8L2 zDTrp`kPm$WgCXf0b9E~2%kMm|K&R3||D$sPoZX(sbz9D+wEIv&VknD8GNO7qeK7?; z=zqBWNwad``rj_D%G|#CC}8CFzA+v##Z6KO8s`>~>98a${TPC>x)g`nhxHa63pYg^ zjJq3KVEeH$3>ectC8fRMW0VaUi=cCaK}atq>vJ}L*zx^hdfvk%>BTDx!PQ6*g^{6& zNtt;uSy5O_Gw>RY?)tZzODFv1N@=0EVZcTx-Jw=9_4oi-KrMl6(47y_(?T+K{ZKiv ztUpCX-tS?g(=f@K-+#J|q8`@C$Q{Xxlmd8@+7Rm8 zBGW48;o@2z2Xs9)&dew>`LwAzrhM77qaJe74C@R&938D(&&|sV5(D(ftjVCdrna^ciOd=vb|PkqnGypFS3jQ>teQ9L zPmcA!bg}p@!ElG@)G_jc=rNjOxiUkvJX@7?0HaEsO$lg92qe8!kNun;yYHy6x_bz` z@p3usZoNMooxH!PlzEt(o0~he$U0FU{o&@};n7rq{91XK@$LLWw7I}t(=1mYj;6wG z8|+g2eXEYqE{6e&@7EN+gpxy%1lx&3Iny=9v3*i>>IHyhcWl^HJPi4rf<25(WeD`eUX8(6g?s zQ(p~54^4jv(p=L6{nMJSCm8AUi&k*r8j-T2#Ixl!NW0EOhqQ@St%qNgL=R`RLP2-r9|BuC3{4D;jJVQAf8+uG27vYYHZ0nx z%$P;eX~Ijpov!WQ6LUFECLZ>8JMlygd#1S%X?bMwmzp8DKZ`8wGV!DLk~Zz!xL4Q% zTRQ0-MuDxZtLqyO5MV?$(2Bec3OYXydb_bSG5NB4(V?ccrltn?jP5Jd1#+PyocI?c zFJq+C4Z zek=iCX$^<_wj$oB2z^xTG_GAh(a_b^P19RAb6<84n!C7Y>h9>M0)JFJ?);2^jye(3 z#Y~;gj~i1_qO{TIng{pW_I?S(4OX&Yv?*lW>-EOoYi8*h?~W8O^motZf=YN+;GtBr_AGtBIv4OB2H?htje}wzR?R6f2+YQ1#_jk2;j1?kP%Y=0EXy z&;m7Zyiv{a`3W{O zRT$x*_%sD)#7-e(io?AzjRk|qrJjXiR$Uf+lQxWU`C5PHtlUkbOV9Q#<4$QaY4`iz zvwgNIPMr1jfazFLtTUwVX6L26?ZQ9MqZd0W<@%tVMN11sEAq9F1wvPC<&p%@!Hz

wo zQ<#oC0gwWt2jaeLAokR*Ah&7Smz59UA>f#)h_R+6~q@08)+n392)tcaXTZ& z+K(T?r~%Q^^=LA@-=Fb%IL~{SOSrfHw>^1Z?S8V3!p5b;+VWS^;a&AFQ$n1ax5m-r zMVX6DnE^`2%47a_w zurpe?|NYxdH|@s@9o?_>x5@4&3h$eF_<0)`0%6f?t&!etpX|7w6&}Apq2hn%DD*L? zwWH&96QJ6FxY=1cy3uGQ4)d?-SnkBJfz%gQnV>DwK#SZgrq+g`2@k{Cg*m&XHk~>1 zPU8i6&D+?h4zxO+1{qyE6yTvDT+Lr*Hbo_()d#a4^l30Zl*8;lnu#3z@APy%Tmks& z0Dj^>h_=r&FKpu(g5cUIhs*!n3uv{e!)6sb1w+XOpz@X$@0*ZLKpHRrQ`!p`SpNf$OT~;Z$05WJNwzmG`fclrg0E5{?_6 zi`CJ2jD_$DTvmTtmPLGcWE3h}DKFiiUVUjkVm!v!W}p88Rtyn+5}fWIQ(F!H!w@{{jcP3!Ey==DWam1ccGd1A7uIHR&MF%x6B3;Y=vTWHp zom;H0i`7J#cy%^;zL5TU(e}@{Kjq`d9J#5jE!uswg)nVi^hqF`xI-at zn=X8OGuY^NFPeE7QEDQ-fE|B?qqUxPD1n%&fmZONQuOhcWG^rj`2Y*uH9AqfhY>X; zv;28h7Knf|NS??6=K7$VqH|P6@EPJKK%R0HGk&3fvAd#)6oP}za3`!VDqd)cm(s0T zLC6Pe%)eEH5Kni%_*wt)@CsB?vg)+6Cw9JzG$}U)%c-LHC4%TlWZplu+KU0XseZpP z&{_q{bjSS>lLzc6dP^3~Y5m#8%EouJ8^#T__QU%97~gzyL*=kDOW06vL(g2^_>m70Rkve65FD9t5IsOaORCMN&KC$8 z8W{`Ep>TmWLV!E>(e8kEnwjJXQbK;qEz&vg3*P?*z{>o|OUQ(U59OhjPhe@9i26p9 z&SXJAZP7(1iZ$|;_e>pB5Y^jV}+*^wp7#!~aII?#5PTF4~Tv#8!l4I{cwsrx3Wl)TqS3fiTHADN8?jkEc zvFZ8&8_|t4jb&|iIYabr$E?^10lpVN!}xv3a>ig|cxS%-aVd0JAkiLPi{iQ)*beNy{8O$0C={c7{`Dw??lHE5g}Fu3+)GQ$H1 zDk^g%UFdGZR1{$S3NP9g`@>mFD-A2XmmM4b8uLXtvOB-F%aTgyH2!kZfcHY-OH>d` z4KX7#wc=o@Wf6xCN!w;_36vq z_n5t}MSZP!U#IV}R7_)nX5AS?0#1I)pJCMf1(f*P;QLh5X!}9VtE8h6P>bNKCEF5(c4*k6M!}A%1UQJ2(u4(esySsU zIB1PXjbxf36;h;9?s-0{+^VK!I6N_BNvwSYH@r5GL9l~Zb0KSiVG74nNPDt--fz-4qj}MH(5xe!#anK>o)_Os`EkGU1;BTU zB+yuWI0jOLQT?V7qs~utN<0rbPm-akz^eWlEWzST`6J0I#_Kzel%ISO#X+LJ%oG)c zHSz)IfaHMXfcm?_JcK`~a1j0y!-eAk{sHSD7D4j2%y0P+<{zR3QU&5BGFz=whHC25 zvM!BgHD=*EC__g{9BN+l%=Gy5C9^)|MCHk9lxnWiIM(Xcfd?7~*awu;pNmS(>ezMJ z9oX%@!+#HD$2aSz2TEpdiG5M!QYV5v_(20*GxJbVu>eoKyAVUg(%jrEeJEncVq|_W zCylh2f|EG|pE+Dhj$etmq*Je;;g2MFYs&T@?oi{U+s?SyqvLjh~daZg_!7?Qc!`&%BkFDJ=4y1*MaW2c6eCnv$Bzn)x=J zhe3xS8BMxnx?Q@N%i``KeBy$Jo%)^9{#xRay~>ozg_7GjG=|Cf-^*G*|5SE0l-Fa_ zx2@DFolj}XYD)L0@rb^CM_L~jI!=_0l&#lBU=ZO@e=4*_>{FK$ZdhO#yYB9=LtUeQWyz(iO`U{>XK@bJ~fK$3Te5rsa>hf`P5j;#BI5 z`Z^=3Ni`I`(#~7_&$1_UXom>U7C1*@*VTh z^RB%*y`gwOc+z+hxShM&ee!tf30Mzke<7=y)bG)oI>3DHeD-`2MxVsc{%~#zreOou z(VWXBSgRPS7_m|F(A>+MAA$A~rW2m>`SO2H=CBRb?brRQdvIDfuRosxZbRL%79hBg z)17AYy>*tN+Bc zB^TS?R>zjjwuKH$RcDo@owNt9Z-(gr{kB5?N?&@PGW8<$vC=msH<>D#tj#v3%2w7S zf#k!af5|V&nACxCD9YCIeZ~DHIXgq=N#32-!`4gIp$Cr#;Rl7bcJs$N93yv|+~y*L zmF#T@8dDP*-73;8l00eFxjM-YG>l9~5>0MgtnI?mtd_pxW;MR2&9Ie$K;ojcbJKP}MV(4GDdOajP6{Gnp`CGEC z7znxd{Tm*tjH%3CV5)V$*1K+gGrLfK3fdJJaIZWv;I49X!(<^B;Mievdo4K{lW*>D zFlg`Gy8Y|4f1aJVpE$*T%&+dLe%jTN?(Mkw+K;@CEQwi6rX`@}H+%l`bi%$ct*~@J zf8dcES-4AhoG9>CzMu7s7Bwd!S3{vfflK+jVs?f{Zr6p|?#x%qg9$tf)WFo&#@p8M zEAjx>=juQ%6OS##x4zO1dBfpufoq$k%AD4qR_R)GBi2#;&cs01d**HXjrMcTWHg<# zA7_lh`vLo}`&Sn|rL)SpuZZuyT|Kw`*`I-NNfaj;9ajJV?ZbZ;93Uf$00003WFKdcO?Qu6SRS#6oibts@QruJ<1`cna?d>1_Rzn4J8Cwu+@Vo=(q`aoPrnyDcStq}+gv7sSW{!5a5b#Bp>!F4w zOJd^6)4J!G=NTf~|3Cg8M?f3d$`JnD)zVvd@aTx0u`zJymtR~U;lKkAa4_Lp@B@UH z;F-uz=tBK=sWkq}>bngj~tPoz6e+ za42;Hem|5+Sp4q~6DFivUe*#821uu$$|zd-sj(jk9BiS(zd%XB6uCx|=3e-@2k}Q- z+y>*(m{ z6oh^Z!i+~{8SXgmYrJC`<6@!JD{1L#Sk72e&jF7cwk*pUYqdvwCztLr7KGndPhNzh zmf6|Z!pzPY6-8P?jO+BD>&_hY+2FZkN<6Y$e$Yau&$@5-$gv2qg3Warqr*Xu@XE`) zHO1`1SF|Uq<&hmSrp(hhp|4&ez^_6`xaPCT!4y=X%AZiy?7gaG(d|$kG|-xB+!*>o zb|JBAw*I0tHAn3I1Z@2YACc0`KaTTaW5MoS#~Jzx1@S5|`gx_ty-)NRWD8S5lD+}4 z+@}G>v-%G*^tgb8l%z0F7&Kw8RZT8fEh-G8v7SQ|Edbeiz9&VPqhgo?yJfRwO1Lyr zh!p1h2gS3R&^s^Wx7x~}wzyy)tLkSpeUyd;vf+OtdT;|Niy~ze9<`0uSMfe9HreZ>_1UjjG}&Jz1@oAWG7Lc} z3(Waz5CN+$c4&z@eVbmQQZdeEF%$qsC3s$TGhHi8LUt*U1WBxfq?iT}Av}X68=#+e zl(1ZdUBe}mK~|K$xF|_24S_lZ2OChFBt}xh*oUI62|0Eo08D?iDAMub+0u= zO^zZAwhk1EvW^a)4u12n$S^alGC=DT^2O!$*`FAnGTP{DUaF>UX(Wrhh7uuITjs@NiMC#&mulBT)k zr}yjc!FrMb7ZTsP#$5`RQ^eqt2ytnwk4f16!hc`AddE`1NKk|@m69|j;cHi8g=Rt! zCH9Pt2|YcbG($CBn1~3>Da1-L#`FCtJ+u|a6$XInSKDxn*D`_B)OQP!vp+guimS@CvutY!e_yZVd zpZU?rKmFqZaz20n#8ZQ|&zm3zhyX|cQsYHrg7nec65#<7bPM0oquhI6D|1DLqyol|O^vFFV) z&6#SQG0ZelA&^!9tjI5ToK+|1tw!BeHJvg2?E~{5p~5qIF1#?7;xPFXm2{$v(jX#) zuwv&R3J6bJufW7l{e?#T1@q!VXOaPD7<5c4w

Oe+_l9(hX+?s!Tgi|^8M7(9DD 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

U_bUq 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®}W$r#DLoy|Tc77+AS2VJ zNMO!JOaj|{B+!djZTeG|s4}z+bnVP(AUy{#OR^7OK^FiH$^+lU{&9vv>sy5(OZoR0 z(^sf~Y1SnPg#nUzhGn6_%=oyqJDB;aY~p`-m|?A*({nh z6uwrG20nLaEGA{Cs|KrYj)h!6{}f8LHG4doZX-SEitXpExtrpqX4(N%^WK1^a94jc z9wGNO*uI(})B-l~+$1A2c}5D`RXJp8q;2F`!d3(_E_MudyU=L`__{GrjeL>}(+a9D z49z%sZ=Uf>m+!>pN+4E%8yk%^E++KFQtQfFlu`#w-`G!*mF0Z@T;!?!a72eip6%pn09%+H~hN%OV2(PMi?F<2G>O-ShtvZ2!mA4U0U;J zVoNeZZq6z`UN?$rSo1zC!bNz-%@(~0xHwg71ZKh_=GWapNYp28*jD|k`jnL?eR+Z? zNjhV$kH=To#ohTEM^jpk;8c{xmj~@irPjzODQg3yfm-St5r!@VY%8BG8 z9836m!@V8u4bYF(yUI`bqua<(Q;XU|{xhM_54tv5fv@FZ+~i~3d?PQG<@h~k-u@th zI1*};T6ZSy)OH7?=Hq+;qEo~7ciL8ha;>K7C1z#V;8_3n&9tIq)=O@mx~;Yw-U}lg zP{W z)!UhIX7~U7vPD$yu%Sy+1n}us`#UE3Nvvm@Ob~ub2(q>`rNr$%{XUZJ@hj_YGWpvZ zj#&lae^2)VkF0cjy~|Z? zDFdLpj>E3&tPO5gKySh;>1X&8WLn3i=|5<65kw>VN@Wc}&$U19DCTtd0JOwdwON;w ztX(O!)>ReQ52jgHZ*qdl|7g~DjGWB{wLf}#^Q)4)Zqt_^LiiW!w?=fqzDV zL@1J;My0Qzp(g4)2jZK8e^gEi(@LHd)@rMTJ)nYR$iR|>5g&(0=8oae(XEd3LrOAE zvjNqVr(CaU4QLN`ope)v8cBUUNg&la5^wyE{rsJ}%{PKUon6IXp&-n3&f;T0o{9df zpuAwMHtIj{Ay4X4PiN08)3~nfjYK->iuU@;y6@O$3|K)yTl?{`8$23~suO)bHID&z z?&V(GD5KW|VHHWSeg5F_k!{DlG$U4!N{h$c9ia79G0X5-`P%4a;75^1FMkd`;h%akX5{67lvef7aT=2=ds`Ez zE8u<_D&Z~lh}t*~Bg{W{xUbB_>0~c<$;+@xqXUl2BGjM$VSX})8$RJY7)oG9$vd@V zG(ZpV2XjdoJ<2+Y$2OVwuArb7g$s=aljyO9EYkA6;j!!UgE0aNd9NS6*y1~2Ik0bQ zrV<=&vSh#F#{(rVC{09k&@n`r_%a4!gvrZ+0D3;Qu7dQB3;BZ3oo4r;TN5Kqr$%-E zawC#ZyE5})NH+eL2@scgh1QBVk9@fJsgDvQWe9PeY1r4>Brm@mL|T_It~~UJ{Ghpn zl+u6QtNWPXtwJx#Nk-j0@&G^MCr{ut_8B@XCpWT*>I(v4GqlW^A)@ZM$d28c`yAvJ z!}jftlv-fwPmk3Q%&*IM!9o}%RyR~k_*3|8GA*jU&m%j`?^CX1oP?MNI#EnccAo%G zx3yk3JtcAveGrd?({A(0-nu-Z)BshjIuR?;3Pg=xZ%la}*%)w=jXzqCZ+;}t4L!CZ zJr3EWHEA;t2k6PbjDK1an~fYvh8Tpwm!Zma+SpH%?KSVz9Ev zOW_M*flQn$t)`%?&|kS<5D7a!LQ*8|lD15}*jhShd>>nR95ugpuX*~;9!rB5*O#oB zzL@6fiVV^KB6g+2JLs36fznG;xt=0euYTnghvd`BYh<;{9vHrbpy1Bt3Geomh zF&z^3yZ5VOO^sgBGit19(w#2=q=4F+Yvw4o#?Ik6>a{MdwYynCck(Yuwf>d83OtoQ zI->e9*(75N_a{qcrueJH8YK|NlZL^@4$Pv@UL9l|-sH!Wu$CaU%3&Ia=?3JMh{NR! zCRs>6RfkhkMEilmz+FZTF5l-u$|w%7&v@%{iq{ZEjETk8-o{g$U~tX)Zj_XeuK4y$ zGU-lgK4>oKPG?jXfkJDY&FLFFoG&CR#Lt1!<3A?&)#L*G4&``# zGM|%n?d9dW$TVCUurD$4CTYwcd>H`C>{EV!9!9Oz75d0?G+J(FYw2xOp=60;{rw8zIAjd-+RlXY47{he?OgKv>ZzXjhg>H z_4@X%Qq8l|su-F_VeTGF%T@kJKDKb?{VG2cVy0zkOR-AE3-aH&(syTgsDcjRTfu(T zMF>_F#!1p4tZk3ezbzl8;;tyd8locvt6l;MvARN)^JeLTFHx8q4eP@{eMzxeZ2nZR z&yjM0ZJOeHEdp#helq^U$7-nh@ox1Dn zoCi3_jMgd6B7yfFZqB+A>#;U^9M&k?eSf_ zX3qf!yPmb57sjh6hAcLF@m zxW)?@_uDentO>MD{D_+(Iv5jK3nQqb+AA)1)@mr@TWQ+5U0`PrrPinDbc9TW{h7C5 z-ICU_eR}IAd_x$K6{>MceD%DL*2AH2=-qicb`mEx)hNl2y5sVmY>E(H7fQl z&wzfPTvBXl9dl?e8_{ZATdSj52(>9&`S_u;;l6exU{NC3!1>qpfLL(*T|$@bm#1eZ zxYzVV&k2tVN-+#6lNq`BN^i5s1}zA_lMXQ|61 zEgRFqd0-jGXed|l%VBb9=bHFF(bs(ad1c(3zf~SU&v$(Ri^u*|xgwJZ!yvPo$?m1^YJ2Bt8xOZq+ z&Fi6C-L5b<p2T*hzho< zz1bbzN?XZ_&*%z;4{dRL_ir~_{T^sJ4N1R*icW)|NnX+h`k`%{!-<3!I zggzbx&+wDk)mkesH)KUlt{QZgWF^&$oZ;l3lnrh=494|``8P!?4U^Y#aHRV%k${)y zu@ickpanw19xAjNj{8uQ`t zEue7j1}U;wKey;it+;4g6-)Id?{_F_B`8ZJGF_ZOkmT^LGvn(J&hAiJY$illLlS}C zl?c%?atdQQF=p=RtEqBY1RYGxQ&>DRSa}S5EB*4GuWE9aGMQH5`ySJQ`Q@N^2>8-O z{E_$wtN%wUuqZ{kX%-eX($jS%#^$ec31Zk}9bhjrkKZ-&0#z8Lt{K{a41N8tv{p>g zev`fmM%`b!nQ<(`a6nizojdFsGnG6&VJb6siSt&X>i-f_Ep_mPN}5H^k!j`i3sGj7 ziYD+;M&Ok~{%C&!T#-f6mxLFbi5bn;&BHT*Q^pC!nkEXkZd)z! zS$c9&0!lEW0A*5!+x}-Eq%sw^70+k`BQp}1=sG{fGryv*JEdA7O7KheFWv*SG9;B# z-eT|R=ZS}h=^&rUG}P!-2yVsbC9y0f#xqy7p-3eyTVFknDN4ed>wJ5<_t;ZURM7AJ zacNDnERLwyt`j+G|Bq;#c}SzpqKpp=g8Bw;2*fX@vOgK(^%#lyuX*Z1rIw3$l8Uw` z>9c>R>|XD5iN_+`=4@l7dN=nYQed9`1M zgP7`^KmnlE;Ms{x=@75?Tp}kCBu^X_=&(bD?#gHTxakgGm|+%*opjB2*n#XS_Kk|?^m~QMp-HG5{ z5f(Z<8O{ko#Z;7e8*i#q)Esuw$FoJgnL8sn^X~Kx4n*{~KW9dzybmyy*T;OL@?0O% z*Fw639 zL!IydRd<=QJS!4x%ZuN|HoRGQl(Dclk)5Y+kS^~DF*(r=2@abQyXY!9u*L%*--tQoEFonZ45t#4IDq4EW{$c?*82 z7K{7LLcDQp+S0G#u4QYDFSKwF5R5JpB6wnyB=WqJAobCsv^4e=?xf;gezGA{MVqyd zmyr!c`a2{E&&sHEugCuEWbbF@`Af@{nHAJY~2_E%+nc=XS9|!h@Ou8p)yP7>Lu)K z6lr7tU09FtwM2rT!vgUY)M5lNoQeEYb7(F{LSITebgWA1lQ0nsedO`}hw+m&;oLA( z-vdNL(+e*ScaG5!{aOkw=wL%fc)w^%q?rE#eQ@A;Pb+qJ{K!1jpZ2d|u)>^$tH$Cv zE0tN`1YtXQG+ahI=@I=K0+}*%6+MROq1vX(&L90qlNr7@=v4WH)+p9W``cr09EtrH zk%h;uv5&Nqrdz*4o~~$*-fx_4JXYOS1bUQZA++mez6K!wzA&gb;xwHXQdf^&A#ekB zSRt6XX8RQuthzBbby?aN;rY@;cC3s^)sdQJ5v`zp%I-!Xk?McsE&s^F)K>+dRdgKO z7-8-qwba-ZN^2Y-Q@3AIlgU##Zibrw_FpT26v3iNgig0li!{cST|dUqv8z;i$&xbt zy=Cn&q*us!kU{_TTCdypZB(gUZOjA1SzZ7V5>YbGX(m2x|BMgG@deA}0te$${yfQi#v%T%#PXk4Kozw%6TvoF*pi{AEZHuMO z_)6DluzRkhc(>JPV@hAm*vvhaTj^z|m$Hx`VC)zG&8f%zj^?SOt2MdK>x6z*4iI_+ zWR+9T{KcKk-#z#e@SHm{@Z4;ipxmIri!5b{3~?y3$}J*hV*}d}hQthLz#Q^A4&B$y zkydm+aeR$B?~PQ5<>N9_7D#xQXeOhvOy9T+v3(Oe?m*9{+4gE}Xlm1d;vm$S3qKJ4 z;h=uq2v*J*Q)6+g(;{&&+%oIa-;bsm)baB8YF<$PT@N=A)Fq%Kk(#IV*=g{M0aUlh z?my)X^kl%!PzWSCARW(6=)WKmGA|+V3k`>hjJbyW(C9 zQSQId@uxtuw$OO|yY~l#^$}8Nl$kKFjvfe*vdGmcCDYZBthu3|SAYwo8P!n{h`yBr z^Jjo%P-3w@yJLyC`}0EVRVPxXsrC`mS>2(ckHmjr)heWWkSpHl{j}Y(1>MS@bBUST z)#NVq*$Gh7o}+QJFQHvd4KQQ7MV$W3bW?@s3Lkhsfu7=NIwOQY)u-v3cU~|i)OiAH zt>v7e_t!DeV*qAd?V}ld*i5}z%+QW$S=O|eWe-+JpRQ+usy$IKTUVMQ2pGlzW9_fGBxG3}N0{Gxnz^1=-YC^rdK(AwF^K;|V8Lm_!N zIy11GLJJHk|4&$-Cq0nl;Lm9_X+~8>C%0$tY;AxJ0t(fb0L0q`o7uS&3zZliCaUzU zIBM%>yr&RHQE zY~HF6--OweOm7L=k%$cI(omFqmy1|774)Vh6W2>Td!1hM!vS*yNSfH``=DT-%ePsny=9NxL08ar#zFG^A|J5!rF(^tIb+b9cV%M+?eRfe4Apmp=^h>~}x56tri zD?lMgDm5Yo@{-DIaGN(HP!&Be4-CGW)!icS0GXy zh^P#ZZm!N%@{xzCf2hsohM&bFE0a;#4-VN9V+0xKzmN^9sTuSRzPz_Wh|lxQ(|l0& z$H7OT>Jopeq=ka=cn~XG^*>xpsCv0Hl|iregzg>eMUS?&4Tp{D&0aQ*q1a2e!|RoX z;r^fuP^w4>Rc^Lm*Zwu<<3iZ2ujLuC_my=K6{epnUiMsg@cKJ4PwlLMM?&nYfw438 zd8^Bx_=DTKqsmep+rc9&RU=7wnAW?@zzJ{Is@Q1+yQck6Ek$p#+UtRuGVezG7h*KD znyVl#X@hi<`vlIjFj4dk3G~SW-`;8!GaICF(Dq)8tzvIW2()Ez7N?TvNIEh`LM)cU z(B_UyWOTUfFI7BAj+fYO+FZe9!zRK{C&5QCBRdei{>U;sHF9DctlM*TH?}B5 zDP)ieV8uSiC8->fXx)$F0Ez5wh>b8=AUDKLN7z`Z=;e%chDI{}!8eJhuHT{ixEH3I zJPS*ob71Ljr;zjbLk9>^*q&MQ2vosMgJ7O&vjb-%+x|-lyOGFDGj_F^n^06yxg0SS zY$RLsEoPYd0}{-%c%PbMJ&yW=;&xyj%)&;qv_da$R1-+j9~)!wP$@Fj5uKtQiTTFn zZy=ZB(!#6+F%{FZDU@)b9 zyAX8$UDla!g=7z$&IChRj~|V_C51x>hL&?N5*vFj*Hd` z3z-%r=nApOw{y-(%sNHW(l6_Q$;7qiFvvW^Vy663{Q7qu-8@|ZjCN^XGO^dyU1nnht9{SB_Ea_qu}5evM~|45;s4WScojW*(jWX76W++?ioM zHKd%*CST;bwa?~yknzQ;k*qx6OS)e>b0=cB$$zD^SYF6N^H5x->R%?9E+-^%MV<)# zoYYri^i3>Gxsk5B!iGuivw=FxJB3twBlYKtzrkK~7(w6FSXDSrxn$AKOJ)LAog_9$ zt>NkKM0X)8J}e{HjjX?I$cD>~Cojo}fpw&+W+J3aVmTSjM7}eu_V;_#{<3gEB~xzp z^tzh*nh!)Ro`H?@$PV?MX5Q}IkUteRba1WqyWK4#$~Syoi{t6vHUbmZ;8BO0QhP!q zOLsd~fip@&ZdzRa15F3|C;cfJR1c$j--u4YJ%Q{ULR?bH)Wl6R0GNT~KS!L#S;{s+ z^?B^OCcr$u9Im*JL-dU>=mOmNZ zr16>_Px_*NJGfLuC5qw6jRso&c1d*`CY7w7S6y5_cQpPJR13sFAli{VFIIzi)SLmf zADZgaI3vgY1`N_>`AS@}!9zmpbkpS)nSZB(M9oa<8V+p9_}{y4y(MFWOI+HK8k3sX z3aj^=BL90^7bBZeB{0TUjKgs0R6W#y@RUnLyjKf!#p`f@jQc)ift;t5YA^h7r!*ZQ zYRCJ!p~j4=lupX*V!ny3G{)h4t{yZ`ca-y0o-q5nI=(NZJ_Z1&Ty+p?=KOj8-4Dg9 zP-vc9W&KQEIFds->w2Y`d`MGKOmhLv+R-f0vpvq(*Q|$z;)gjZtiH zG#n8bZfxz2K}No*q!QVMM-N}q2a`ZgJlhm2!g6emH>96vX{n*;O5{M?anKK*_R1w^ z;F+kfErXtU5@VPlV*`XNh?`90?>sU5jWuS9C2CHf|)!0DUhiyi9Vrd zD|qZllr;%zL>(DPMKvhR->NoIRpwqTAdko@~OpqBOL8Z z#9nH4o^2aE4tR0&@IHzAhux%YYH~0bf*_NVkol2$323Vlx>-n6G$Vj~qt3uXLtKrk6viEN zIAR8n3oh5NCEs3BNc6SF#umyjPg5c~i8GwL=$_ERV^EwBDKA}tI5}ekDLW(@BoXkQ z|B_n@W4Xd1*<5@5Oq^w<4q|Kka^p}It!Jt6QhKe_Td0=knDUC1v2zQ3w_Im z4`Akx;-0rK|K^kAkEw^Xopla&jL2BkCM^5z{vLv50gJiwU-vZnNBe#9((1CE12 zVRE)=7P-4CO7p|dC89r9tM>03GWe8G=9|__V1Wr_*eB0>M85SZaB>g$Yx&UDGPzo_ z<1#LKa{4Tm0o=`NBEc3M3Tv-P^E;zsUyXNm4-|&J{n2qMACFdH{6+SqaZAqxr>q)> zv9>|^uO$?(lurq7N<84`*k6|RXekO74_(}+Po;x%mcHcN&qdEyx-S*tJj8eB7QORT2fTG_4(s5w7>olgc`S@wuRJ7m-vG?j^|WCc{aKhM7%OjFktogF=kh$d&~n=t zwpFOfJH|cQ?te@8JH`ch$4CR2=D(G`%sjFzqB}chLwMxEGMpX|X)4ZnNW_KkGT6kt z{6qZhL*M3m%;%rdPB;I~#y|eeSG-l+?f;}YZ;Dk(%w+ox&HW6PWTZk;Oe9JbKTh%0 z`v!w7Yh9tU`op5WHL)-ftN9e^Kr}PcockmfhhS*5XolT=P=a6ek314N=z>-S1Q!AC zrHT~XuSjQ%qQ;?wmYI#Q9l-=7vt8Mthmt{lBq#AWCxe`+=WYfiUN!P#- z+~l`eixg;v#drYw(&5aLw)t~MN-oRJcqai<-PhKM;+wBt?&iz5Y;PlP19k5*Y7~Iy znupe^Z+2Y#!Tx1snsrsZT3I=K)f?ga^y#Qa-1IumRUASDuZCIF1yIMAfdW{ zOjqhnB4OmquPU-h?=bjdt|~Jc_MY2tQycX3XZ%0S;AU?}N5|!luiL~a8?Hpo>t{d~ z{>|l;Lwu<(+dsyz_5>EhjXeCmn&WKkQO_qQ$EN9{gAhTqp!U|~#Dt*Z(J9R7?0KLP zYM^_8F_BYj*{e{R<>9=B5S+BLMNi-xrk4)CXHHB^BsWPaEZWEc)cFCAeBb?}>QZ!3 zA1E{F*e``eL_DxYOLHX0PM!abO4vhW$@pzz(w|lA1(TTblO)55gx}|@3wb7!I54Jl zu>jvd6u>k;sJ~w+Gx7s$N~={HWco=ck*C3I?edqt{TI7m%_I;2QcROLIESdr6rVnq zoIWSYNfCl1CHeVz)(W&l4lWA>*~}H^kVE9@8XT`+-WY+c5qbIbk3F$6i#8XuVgXaf z|8+eF5OW9a+2X9A7j{cjmLMIvum6jFV~sNY5hjWr%|n=fAenB)W3`Jb<*u9_%Wy3w+GLGZVZqD%>QW8Fx}TeoWYNE8-CqbbDDhd zm?%R>2rbVnUtJAhs}2=gYmZMWmxps4WX~ zk&tZaOv?V?$nn%+B(A~gaj%cY6q0IolvnSA2Ed9sg;5E7O!CC85b*!oC+{nW(G;Dr T-z8xA?`S%jhKL4rRMh_gzw&w; literal 0 HcmV?d00001 diff --git a/desmume/src/cocoa/translations/English.lproj/InfoPlist.strings b/desmume/src/cocoa/translations/English.lproj/InfoPlist.strings index a93b49170050b7af0f9b90959c6ef3f025864054..4a772b78fc845d7ddd04936ca02fa7f34d7493f9 100644 GIT binary patch delta 22 dcmeyv*upfCX&tu_gD!&+g8_pfgUQ5=-T*_y1%m(p delta 14 WcmZo+`oqZd|KEgljK&jpdIJD3dj^UC diff --git a/desmume/src/cocoa/translations/English.lproj/MainMenu.strings b/desmume/src/cocoa/translations/English.lproj/MainMenu.strings index 923b737e560cebb6028cba92dd1f18e49545e64e..ce7dfbf6825c2e62f80240e7a461401fe7b5796c 100644 GIT binary patch delta 6371 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 delta 10500 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 Z4GRNSC7fJ~dG8C*bEQ4GDb({$`v=v~jjR9w diff --git a/desmume/src/cocoa/translations/English.lproj/MainMenu.xib b/desmume/src/cocoa/translations/English.lproj/MainMenu.xib index de606cf9e..c4ae70573 100644 --- a/desmume/src/cocoa/translations/English.lproj/MainMenu.xib +++ b/desmume/src/cocoa/translations/English.lproj/MainMenu.xib @@ -2,10 +2,10 @@ 1050 - 12F45 + 13B42 851 - 1187.40 - 626.00 + 1265 + 696.00 com.apple.InterfaceBuilder.CocoaPlugin 851 @@ -13,6 +13,7 @@ YES + YES @@ -396,7 +397,7 @@ - + YES YES @@ -526,78 +527,75 @@ Emulation YES - + - Speed Limit - - 2147483647 - - - submenuAction: - - - Speed Limit - - YES - - - Half - - 2147483647 - - - 50 - - - - Normal - - 2147483647 - - - 100 - - - - Double - - 2147483647 - - - 200 - - - - YES - YES - - - 2147483647 - - - -1 - - - - Custom... - - 2147483647 - - - -1 - - - - - - - Disable Speed Limit + Show Execution Control... 2147483647 - + + + YES + YES + + + 2147483647 + + + + + + Execute + + 2147483647 + + + + + + Pause + + 2147483647 + + + + + + Frame Advance + + 2147483647 + + + + + + Frame Jump + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Reset + + 2147483647 + + + + YES YES @@ -641,32 +639,6 @@ - - - YES - YES - - - 2147483647 - - - - - - Execute - - 2147483647 - - - - - - Reset - - 2147483647 - - - YES @@ -693,6 +665,50 @@ + + + YES + YES + + + 2147483647 + + + + + + Show Emulation Settings... + + 2147483647 + + + + + + Show 3D Rendering Settings... + + 2147483647 + + + + + + Show Sound Settings... + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + ROM Save Type @@ -1438,40 +1454,6 @@ - - - YES - YES - - - 2147483647 - - - - - - Show 3D Rendering Settings... - - 2147483647 - - - - - - Show Emulation Settings... - - 2147483647 - - - - - - Show Sound Settings... - - 2147483647 - - - YES @@ -1536,6 +1518,25 @@ + + + YES + YES + + + 2147483647 + + + + + + Toggle All Displays + t + 1048576 + 2147483647 + + + @@ -1708,69 +1709,6 @@ _NSMainMenu - - Media - - 2147483647 - - - submenuAction: - - - Media - - YES - - - New Movie Recording - - 2147483647 - - - - - - Open Movie... - - 2147483647 - - - - - - Open Recent Movie - - 2147483647 - - - submenuAction: - - - Open Recent Movie - - YES - - - Clear Menu - - 2147483647 - - - - - - - - - Close Movie - - 2147483647 - - - - - - AppDelegate @@ -1783,7 +1721,7 @@ 15 2 - {{81, 659}, {550, 450}} + {{53, 296}, {550, 450}} 1148716032 About DeSmuME NSWindow @@ -1855,7 +1793,7 @@ 2322 - {490, 244} + {505, 244} @@ -1873,7 +1811,7 @@ - 490 + 505 1 @@ -1940,11 +1878,11 @@ 1 6 - {495, 10000000} + {505, 10000000} - {490, 244} + {505, 244} @@ -1975,7 +1913,7 @@ 256 - {{490, 0}, {15, 244}} + {{489, 0}, {16, 244}} NO @@ -2455,6 +2393,7 @@ NO + 1 @@ -2478,18 +2417,19 @@ NO + 1 {550, 450} - {{0, 0}, {1920, 1178}} + {{0, 0}, {1440, 878}} {1.7976931348623157e+308, 1.7976931348623157e+308} YES 7 2 - {{121, 962}, {400, 100}} + {{94, 633}, {400, 100}} 1685588992 DeSmuME Preferences NSWindow @@ -2714,7 +2654,7 @@ 256 {400, 100} - {{0, 0}, {1920, 1178}} + {{0, 0}, {1440, 878}} {1.7976931348623157e+308, 1.7976931348623157e+308} YES @@ -2751,6 +2691,7 @@ NO + 1 @@ -2789,6 +2730,7 @@ NO + 1 @@ -2807,6 +2749,7 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA NO + 1 {{1, 1}, {484, 81}} @@ -2865,6 +2808,7 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA NO + 1 @@ -2903,6 +2847,7 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA NO + 1 {{1, 1}, {484, 45}} @@ -3182,6 +3127,7 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA NO + 1 @@ -3258,6 +3204,7 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA NO + 1 @@ -3746,6 +3693,7 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA NO + 1 {640, 495} @@ -3796,6 +3744,7 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA NO + 1 @@ -3813,6 +3762,7 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA NO + 1 @@ -3996,6 +3946,7 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA NO + 1 @@ -4013,6 +3964,7 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA NO + 1 @@ -4800,6 +4752,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -4882,6 +4835,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -4925,6 +4879,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -4942,6 +4897,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -4959,6 +4915,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -4976,6 +4933,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -4993,6 +4951,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {{1, 1}, {429, 141}} @@ -5324,6 +5283,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -5342,6 +5302,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -5615,6 +5576,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -5632,6 +5594,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -5758,6 +5721,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -5863,6 +5827,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -6104,6 +6069,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -6118,7 +6084,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 - {{16, 12}, {148, 18}} + {{16, 12}, {149, 18}} YES @@ -6920,6 +6886,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -7015,7 +6982,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 - {{16, 32}, {197, 18}} + {{16, 32}, {198, 18}} YES @@ -7355,6 +7322,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -7431,6 +7399,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -7489,7 +7458,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 - {{16, 32}, {145, 18}} + {{16, 32}, {146, 18}} YES @@ -7643,7 +7612,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 - {{16, 117}, {182, 18}} + {{16, 117}, {183, 18}} YES @@ -7681,6 +7650,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -7698,6 +7668,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -7738,6 +7709,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -7755,6 +7727,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -7861,7 +7834,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 - {{16, 61}, {205, 18}} + {{16, 61}, {206, 18}} YES @@ -7899,6 +7872,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -7916,6 +7890,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -8282,6 +8257,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -8322,6 +8298,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -8452,6 +8429,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -8491,6 +8469,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {452, 115} @@ -8815,6 +8794,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -8935,6 +8915,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -9042,6 +9023,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {620, 267} @@ -9091,6 +9073,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -9171,6 +9154,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -9188,6 +9172,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -9268,6 +9253,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {{1, 1}, {314, 74}} @@ -9355,6 +9341,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -9394,6 +9381,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {350, 263} @@ -9576,6 +9564,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -9637,6 +9626,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {350, 125} @@ -9819,6 +9809,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -9880,6 +9871,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {350, 125} @@ -9920,6 +9912,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -9959,6 +9952,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -9976,6 +9970,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -9993,6 +9988,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -10010,6 +10006,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -10027,6 +10024,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -10044,6 +10042,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -10084,6 +10083,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -10165,6 +10165,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -10702,6 +10703,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {516, 283} @@ -10742,6 +10744,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -10833,6 +10836,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -10872,6 +10876,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {{1, 1}, {314, 46}} @@ -10993,6 +10998,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -11012,6 +11018,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {{1, 1}, {314, 39}} @@ -11058,6 +11065,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -11077,6 +11085,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {350, 240} @@ -11119,6 +11128,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -11138,6 +11148,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -11155,6 +11166,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -11172,6 +11184,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -11189,6 +11202,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -11206,6 +11220,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -11223,6 +11238,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -11638,6 +11654,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -11699,6 +11716,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -11759,6 +11777,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -12130,6 +12149,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -12190,6 +12210,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {380, 200} @@ -12229,6 +12250,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -12290,6 +12312,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -12359,11 +12382,10 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 - - + + -2147483392 {{256, 0}, {16, 17}} - YES @@ -12517,7 +12539,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 4 - {{20, 49}, {272, 353}} @@ -12688,7 +12709,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 - {{16, 402}, {129, 18}} + {{16, 402}, {130, 18}} YES @@ -12724,6 +12745,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -12764,6 +12786,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -12781,6 +12804,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -12897,6 +12921,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -12942,6 +12967,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -13023,6 +13049,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -13040,6 +13067,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -13143,6 +13171,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -13160,6 +13189,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -13186,11 +13216,10 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 - - + + -2147483392 {{224, 0}, {16, 17}} - YES @@ -13311,7 +13340,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 4 - {{20, 20}, {288, 194}} @@ -13540,6 +13568,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -13557,6 +13586,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -13659,6 +13689,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -13677,6 +13708,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -13695,6 +13727,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -13713,6 +13746,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {500, 416} @@ -13809,6 +13843,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 255 NO + 1 @@ -13826,6 +13861,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -13843,6 +13879,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {328, 134} @@ -13869,6 +13906,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -13886,6 +13924,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -13933,6 +13972,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -13950,6 +13990,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -14084,6 +14125,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -14101,6 +14143,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -14144,6 +14187,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -14216,6 +14260,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -14233,6 +14278,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -14251,6 +14297,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -14268,6 +14315,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -14753,6 +14801,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {320, 290} @@ -14816,6 +14865,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {320, 290} @@ -14873,6 +14923,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -14913,6 +14964,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -15227,6 +15279,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -15268,6 +15321,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -15371,6 +15425,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -15773,6 +15828,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {{1, 1}, {512, 66}} @@ -15836,6 +15892,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {400, 320} @@ -15865,6 +15922,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -15884,6 +15942,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -15903,6 +15962,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {400, 320} @@ -15932,6 +15992,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -15952,6 +16013,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -15971,6 +16033,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -15990,6 +16053,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -16038,6 +16102,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -16087,6 +16152,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {400, 320} @@ -16116,6 +16182,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -16263,6 +16330,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -16481,6 +16549,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {400, 320} @@ -16558,6 +16627,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -16577,6 +16647,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -16644,6 +16715,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -16663,6 +16735,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {400, 320} @@ -16670,7 +16743,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NSView - + 268 YES @@ -16691,7 +16764,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 {{75, 96}, {254, 204}} - _NS:2165 YES @@ -16715,7 +16787,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 {{127, 12}, {150, 32}} - _NS:610 YES @@ -16739,7 +16810,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 {{17, 60}, {366, 28}} - _NS:3939 YES @@ -16753,11 +16823,10 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {400, 320} - - _NS:1109 NSView @@ -16820,6 +16889,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {400, 320} @@ -16827,7 +16897,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NSView - + 268 YES @@ -16836,7 +16906,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 {{17, 60}, {366, 28}} - _NS:3939 YES @@ -16850,13 +16919,13 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 268 {{127, 12}, {150, 32}} - _NS:610 YES @@ -16892,7 +16961,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 {{87, 96}, {230, 204}} - _NS:2165 YES @@ -16913,8 +16981,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 {400, 320} - - _NS:1109 NSView @@ -16999,6 +17065,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {400, 320} @@ -17064,6 +17131,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {400, 320} @@ -17371,6 +17439,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {{1, 1}, {250, 85}} @@ -17854,6 +17923,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -17871,6 +17941,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {{1, 1}, {250, 86}} @@ -18272,6 +18343,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -18308,6 +18380,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -18325,6 +18398,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -18342,6 +18416,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -18359,6 +18434,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -18376,6 +18452,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -18395,6 +18472,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -18414,6 +18492,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {260, 328} @@ -18430,10 +18509,949 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 + + 23 + 2 + {{144, 214}, {254, 262}} + -461896704 + Execution Control + NSPanel + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + + + 256 + + YES + + + 268 + {{0, 230}, {32, 32}} + + _NS:2530 + YES + + 67108864 + 134217728 + + + _NS:2530 + + -2033958912 + 134 + + NSImage + Icon_Execute_420x420 + + + + 400 + 75 + + NO + + + + 268 + {{32, 230}, {32, 32}} + + _NS:2530 + YES + + 67108864 + 134217728 + + + _NS:2530 + + -2033958912 + 134 + + NSImage + Icon_Pause_420x420 + + + + 400 + 75 + + NO + + + + 268 + {{64, 230}, {32, 32}} + + _NS:2530 + YES + + 67108864 + 134217728 + + + _NS:2530 + + -2033958912 + 134 + + NSImage + Icon_FrameAdvance_420x420 + + + + 400 + 75 + + NO + + + + 268 + {{222, 230}, {32, 32}} + + _NS:2530 + YES + + 67108864 + 134217728 + + + _NS:2530 + + -2033958912 + 134 + + NSImage + Icon_Reset_420x420 + + + + 400 + 75 + + NO + + + + 268 + {{96, 230}, {32, 32}} + + _NS:2530 + YES + + 67108864 + 134217728 + + + _NS:2530 + + -2033958912 + 134 + + NSImage + Icon_FrameJump_420x420 + + + + 400 + 75 + + NO + + + + 12 + + YES + + + 274 + + YES + + + 268 + + YES + + {{176, 53}, {64, 19}} + + _NS:817 + YES + + -1804599231 + 272761856 + + + + YES + + YES + allowsFloats + formatterBehavior + groupingSize + locale + negativeInfinitySymbol + nilSymbol + numberStyle + positiveFormat + positiveInfinitySymbol + usesGroupingSeparator + + + YES + + + + + -∞ + + + # + +∞ + + + + # + # + + + + + + + + NaN + + + + + + 3 + YES + YES + YES + + . + , + NO + NO + NO + + _NS:817 + + YES + + + + NO + 1 + + + + 268 + + YES + + {{176, 33}, {64, 19}} + + _NS:817 + YES + + -1804599231 + -1874721792 + + + + + YES + + YES + allowsFloats + formatterBehavior + locale + negativeInfinitySymbol + nilSymbol + positiveInfinitySymbol + + + YES + + + + -∞ + + +∞ + + + # + # + + + + + + + + NaN + + + + + + 3 + YES + YES + YES + + . + , + NO + NO + NO + + _NS:817 + + YES + + + + NO + 1 + + + + 268 + {{18, 14}, {150, 58}} + + _NS:736 + YES + NO + 3 + 1 + + YES + + -2080374784 + 131072 + Jump forward frames: + + + 1211912448 + 0 + + + + 200 + 25 + + + 67108864 + 131072 + Jump to frame number: + + + 1 + 1211912448 + 0 + + 549453824 + {18, 18} + + YES + + YES + + + + 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 +AAAAAF1KAAA0kQAACCVYWVogAAAAAAAAdCAAALRgAAAjPVhZWiAAAAAAAAAlbAAAFyoAAKfDWFlaIAAA +AAAAAPNSAAEAAAABFs9zZjMyAAAAAAABDEIAAAXe///zJgAAB5IAAP2R///7ov///aMAAAPcAADAbGN1 +cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAAY3VydgAAAAAAAAABAc0AAHZjZ3QAAAAAAAAAAAAD +AQAAAQACBAUGBwkKCw0ODxASExQWFxgaGxweHyAiIyQmJygpKywtLzAxMjM1Njc4OTs8PT5AQUJDREZH +SElKS0xOT1BRUlNUVVZXWFlaW1xdXl9hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gIGCg4SF +hoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnZ6foKGio6SlpqanqKmqq6ytra6vsLGysrO0tba3uLi5uru8 +vL2+v8DBwcLDxMXGxsfIycrKy8zNzs7P0NHS0tPU1dbW19jZ2drb3Nzd3t/g4eLi4+Tl5ufo6enq6+zt +7u/w8fHy8/T19vf4+fr7/P3+/v8AAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR8gISIjJCUnKCkq +Ky0uLzAxMzQ1Njc4OTo7PD0/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaWltcXV5fYGFiY2RlZmdo +aWprbG1ub3BxcnN0dXZ3d3h5ent8fH1+f4CBgoKDhIWGh4iIiYqLjI2Oj5CRkpOUlJWWl5iZmpucnZ2e +n6ChoqOkpaamp6ipqqusra6vsLCxsrO0tba3uLm5uru8vb6/wMHCw8TFx8jJysvMzc7P0NDR0tPU1dbX +2Nna29ze3+Dh4uPk5ebn6err7O3u7/Hy8/T19vf5+vv8/f7/AAIDAwQFBgcICQoKCwwNDg8QERITFBUW +FxgZGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODg5Ojs8PT4+P0BBQkNDREVGR0hJSUpLTE1O +Tk9QUVJSU1RVVVZXWFhZWltbXF1eXl9gYWFiY2RkZWZnZ2hpaWprbGxtbm5vcHFxcnNzdHV1dnd4eHl6 +ent8fH1+fn+AgYGCg4SEhYaHiImJiouMjY6Oj5CRkpOTlJWWl5iZmZqbnJ2en6ChoqOkpaanqKmqq6yt +rq+xsrO0tba3uLq7vL2+wMHDxMbHycrMzs/R0tTW19nb3d7g4uTm6Ors7vDy9Pb4+vz+/wAAbmRpbgAA +AAAAAAY2AACXGgAAVjoAAFPKAACJ3gAAJ8IAABaoAABQDQAAVDkAAiuFAAIZmQABeFEAAwEAAAIAAAAA +AAEABgANABcAIwAxAEAAUgBlAHsAkwCrAMUA4gD/AR8BPwFhAYUBqgHQAfgCIAJLAncCpQLSAwIDMwNl +A5gDzgQFBD0EdQSvBOsFKQVnBacF6AYqBm4GtQb8B0UHkgfkCDkIkAjnCT4JmAn0ClAKrQsLC2sLygwq +DIwM8Q1XDcAOKA6SDv4PbA/bEE0QxBE7EbQSMRKwEzITuRREFNAVYBXxFocXHhfAGGIZBBmsGlQa+RuU +HC4czh1yHhQeux9jIA0gvCFoIhkizyOJJEEk+SW6JnknOygFKMspkypiKzIsASzXLawuhy9gMD4xGzH8 +MtszvzSgNYY2cjdcOEw5OTorOxs8CD0EPfU+6z/nQOFB2ELUQ9VE00XcRttH5EjxSgBLCUwdTTFOUE9v +UI9Rt1LdVAVVNlZsV6VY4FohW21ct135X09goGH0Y0tkqGYFZ19oxGova5ptCG54b/BxbnLsdG119Xd/ +eQh6knwqfcV/W4D4gpSEO4Xih4CJKorYjIqOOY/jkZuTWJUOlsyYiZpSnB6d4Z+soX+jWqUvpxOo+6rj +rMuuwLC4sra0rra0uL+60LzfvwDBHcLdxLXGhchYyi7MCs3lz7rRmtOA1WPXR9kq2xPc/97s4M/iveSn +5o3obupT7ELuLPAM8fLz0PW396H5f/tZ/T3//wAAAAEAAwALABYAJQA3AE0AZQCBAJ8AwQDlAQsBNQFh +AZABwQH1AisCZAKfAtwDHANfA6MD6gQ0BH8EzQT1BR0FcAXEBhsGdAbPBy0HXAeMB+4IUgi4CSAJVAmK +CfYKZArVC0cLgQu8DDIMqw0mDaIOIQ6hDyQPqRAvELgQ/RFDEc8SXRLuE4AUFRSrFUMV3RZ5FxcXthhY +GPwZoRpIGvEbnBxJHPgdqB5bHw8fxSB9ITch8iKwJDAk8yW3Jn4nRigQKNwpqSp5K0osHCzxLccuoC95 +MFUxMzISMvMz1TS5NaA2hzdxOFw5STo4Oyg8Gj4DPvs/9EDuQepD6ETpRexG8Uf3SP9LFEwhTTBOQE9S +UGZSklOrVMVV4Vb/WB5ZP1phW4Vcq13SXvthUmJ/Y69k4GYSZ0dofGm0au1tZG6ib+FxInJlc6l073Y2 +d396FXtjfLJ+A39VgKmB/4NWhK+GCYjCiiGLgYzjjkePrJESknuT5Ja8mCuZm5sMnH+d9J9qoOGiWqPV +pVGmz6eOqE6pzqtRrNSuWq/gsWmy8rR+tgu5Kbq6vE294b93wQ7Cp8RBxd3He8kZyrrLisxbzf/Po9FK +0vHUm9ZF1/HZn9tO3Cbc/96x4GTiGePQ5YjnQegf6Pzquex27jbv9/G583z0X/VC9wj40Pqa/GX+Mf// +AAAAAQADAAsAJQA3AE0AZQCBAJ8AwQELATUBYQGQAcEB9QIrAmQCnwLcAxwDXwOjA+oENAR/BM0FHQVw +BcQGGwZ0Bs8HLQeMB+4IUgi4CSAJign2CmQK1QtHC7wMMgyrDSYNog4hDqEPJA+pEC8QuBFDEl0S7hOA +FBUUqxVDFnkXFxe2GFgY/BpIGvEbnBxJHPgdqB8PH8UgfSE3IfIjbyQwJPMltydGKBAo3Cp5K0osHC3H +LqAveTEzMhIy8zS5NaA2hzhcOUk6ODwaPQ4+Az/0QO5C6EPoROlG8Uf3SglLFEwhTkBPUlF7UpJUxVXh +Vv9ZP1phXKtd0mAlYVJjr2TgZhJofGm0au1tZG6ib+FxInJldO92Nnd/eMl6FXyyfgN/VYCpgf+Er4YJ +h2WIwoohi4GOR4+skRKSe5PklVCWvJgrmZubDJx/nfSfaqDholqj1aVRps+oTqnOq1Gs1K2Xrlqv4LFp +svK0frYLt5m5Kbnxurq8Tb3hv3fBDsHawqfEQcUPxd3He8hKyRnKusuKzFvN/87Rz6PQdtFK0vHTxtSb +1kXXG9fx2MjZn9tO3Cbc/93Y3rHfiuBk4hni9ePQ5KzliOZk50HoH+j86drqueuX7HbtVu427xbv9/DX +8bnymvN89F/1QvYl9wj37PjQ+bX6mvt//GX9S/4x//8AAGRlc2MAAAAAAAAACkNvbG9yIExDRAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABIAAAAcAEMAbwBsAG8AcgAgAEwAQwBE +AABtbW9kAAAAAAAABhAAAJxOAAAAAL5zkQAAAAAAAAAAAAAAAAAAAAAAdGV4dAAAAABDb3B5cmlnaHQg +QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA + + + + + + + + 400 + 75 + + + 603979776 + 131072 + Jump to next marker + + + 2 + 1211912448 + 0 + + 12779520 + + YES + + YES + + + + YES + + YES + size + state + value + widget + + + YES + regular + normal + + radiobutton + + + {18, 18} + 0 + YES + NSCalibratedRGBColorSpace + + + + + + + 400 + 75 + + + {150, 18} + {4, 2} + 1151868928 + NSActionCell + + 67108864 + 131072 + Radio + + 1211912448 + 0 + + 549453824 + {18, 18} + + YES + + YES + + + + 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 +BDwAAAgMZ1RSQwAABDwAAAgMYlRSQwAABDwAAAgMdGV4dAAAAABDb3B5cmlnaHQgKGMpIDE5OTggSGV3 +bGV0dC1QYWNrYXJkIENvbXBhbnkAAGRlc2MAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAA +AAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAFhZWiAAAAAAAADzUQABAAAAARbMWFlaIAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAA +b6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9kZXNjAAAAAAAA +ABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAuSUVDIDYx +OTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAuSUVDIDYxOTY2 +LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRl +c2MAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAA +AAAAACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAB2aWV3AAAAAAATpP4AFF8uABDPFAAD7cwABBMLAANcngAAAAFYWVogAAAAAABM +CVYAUAAAAFcf521lYXMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAKPAAAAAnNpZyAAAAAAQ1JUIGN1 +cnYAAAAAAAAEAAAAAAUACgAPABQAGQAeACMAKAAtADIANwA7AEAARQBKAE8AVABZAF4AYwBoAG0AcgB3 +AHwAgQCGAIsAkACVAJoAnwCkAKkArgCyALcAvADBAMYAywDQANUA2wDgAOUA6wDwAPYA+wEBAQcBDQET +ARkBHwElASsBMgE4AT4BRQFMAVIBWQFgAWcBbgF1AXwBgwGLAZIBmgGhAakBsQG5AcEByQHRAdkB4QHp +AfIB+gIDAgwCFAIdAiYCLwI4AkECSwJUAl0CZwJxAnoChAKOApgCogKsArYCwQLLAtUC4ALrAvUDAAML +AxYDIQMtAzgDQwNPA1oDZgNyA34DigOWA6IDrgO6A8cD0wPgA+wD+QQGBBMEIAQtBDsESARVBGMEcQR+ +BIwEmgSoBLYExATTBOEE8AT+BQ0FHAUrBToFSQVYBWcFdwWGBZYFpgW1BcUF1QXlBfYGBgYWBicGNwZI +BlkGagZ7BowGnQavBsAG0QbjBvUHBwcZBysHPQdPB2EHdAeGB5kHrAe/B9IH5Qf4CAsIHwgyCEYIWghu +CIIIlgiqCL4I0gjnCPsJEAklCToJTwlkCXkJjwmkCboJzwnlCfsKEQonCj0KVApqCoEKmAquCsUK3Arz +CwsLIgs5C1ELaQuAC5gLsAvIC+EL+QwSDCoMQwxcDHUMjgynDMAM2QzzDQ0NJg1ADVoNdA2ODakNww3e +DfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8lD0EPXg96D5YPsw/PD+wQCRAmEEMQYRB+EJsQuRDXEPURExEx +EU8RbRGMEaoRyRHoEgcSJhJFEmQShBKjEsMS4xMDEyMTQxNjE4MTpBPFE+UUBhQnFEkUahSLFK0UzhTw +FRIVNBVWFXgVmxW9FeAWAxYmFkkWbBaPFrIW1hb6Fx0XQRdlF4kXrhfSF/cYGxhAGGUYihivGNUY+hkg +GUUZaxmRGbcZ3RoEGioaURp3Gp4axRrsGxQbOxtjG4obshvaHAIcKhxSHHscoxzMHPUdHh1HHXAdmR3D +HeweFh5AHmoelB6+HukfEx8+H2kflB+/H+ogFSBBIGwgmCDEIPAhHCFIIXUhoSHOIfsiJyJVIoIiryLd +IwojOCNmI5QjwiPwJB8kTSR8JKsk2iUJJTglaCWXJccl9yYnJlcmhya3JugnGCdJJ3onqyfcKA0oPyhx +KKIo1CkGKTgpaymdKdAqAio1KmgqmyrPKwIrNitpK50r0SwFLDksbiyiLNctDC1BLXYtqy3hLhYuTC6C +Lrcu7i8kL1ovkS/HL/4wNTBsMKQw2zESMUoxgjG6MfIyKjJjMpsy1DMNM0YzfzO4M/E0KzRlNJ402DUT +NU01hzXCNf02NzZyNq426TckN2A3nDfXOBQ4UDiMOMg5BTlCOX85vDn5OjY6dDqyOu87LTtrO6o76Dwn +PGU8pDzjPSI9YT2hPeA+ID5gPqA+4D8hP2E/oj/iQCNAZECmQOdBKUFqQaxB7kIwQnJCtUL3QzpDfUPA +RANER0SKRM5FEkVVRZpF3kYiRmdGq0bwRzVHe0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1KxEsMS1NLmkvi +TCpMcky6TQJNSk2TTdxOJU5uTrdPAE9JT5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLHUxNTX1OqU/ZUQlSP +VNtVKFV1VcJWD1ZcVqlW91dEV5JX4FgvWH1Yy1kaWWlZuFoHWlZaplr1W0VblVvlXDVchlzWXSddeF3J +XhpebF69Xw9fYV+zYAVgV2CqYPxhT2GiYfViSWKcYvBjQ2OXY+tkQGSUZOllPWWSZedmPWaSZuhnPWeT +Z+loP2iWaOxpQ2maafFqSGqfavdrT2una/9sV2yvbQhtYG25bhJua27Ebx5veG/RcCtwhnDgcTpxlXHw +cktypnMBc11zuHQUdHB0zHUodYV14XY+dpt2+HdWd7N4EXhueMx5KnmJeed6RnqlewR7Y3vCfCF8gXzh +fUF9oX4BfmJ+wn8jf4R/5YBHgKiBCoFrgc2CMIKSgvSDV4O6hB2EgITjhUeFq4YOhnKG14c7h5+IBIhp +iM6JM4mZif6KZIrKizCLlov8jGOMyo0xjZiN/45mjs6PNo+ekAaQbpDWkT+RqJIRknqS45NNk7aUIJSK +lPSVX5XJljSWn5cKl3WX4JhMmLiZJJmQmfyaaJrVm0Kbr5wcnImc951kndKeQJ6unx2fi5/6oGmg2KFH +obaiJqKWowajdqPmpFakx6U4pammGqaLpv2nbqfgqFKoxKk3qamqHKqPqwKrdavprFys0K1ErbiuLa6h +rxavi7AAsHWw6rFgsdayS7LCszizrrQltJy1E7WKtgG2ebbwt2i34LhZuNG5SrnCuju6tbsuu6e8Ibyb +vRW9j74KvoS+/796v/XAcMDswWfB48JfwtvDWMPUxFHEzsVLxcjGRsbDx0HHv8g9yLzJOsm5yjjKt8s2 +y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 +2vvbgNwF3IrdEN2W3hzeot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf56noMui86Ubp0Opb +6uXrcOv77IbtEe2c7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1UPXe9m32+/eK+Bn4qPk4+cf6V/rn ++3f8B/yY/Sn9uv5L/tz/bf//A + + + + + + + + 400 + 75 + + + + + + + + {{1, 1}, {258, 82}} + + _NS:21 + + + {{-3, 124}, {260, 98}} + + _NS:18 + {0, 0} + + 67108864 + 0 + Frame Jump Properties + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + YES + + + 274 + + YES + + + 268 + {{18, 30}, {222, 16}} + + YES + + -2080112384 + 262144 + + + 10 + 0.0 + 1 + 0.0 + 11 + 1 + NO + NO + + NO + + + + 268 + {{219, 45}, {28, 11}} + + + YES + + 68157504 + 138675200 + 10x + + + + + + NO + 1 + + + + 268 + {{52, 45}, {28, 11}} + + + YES + + 68157504 + 138675200 + 2x + + + + + + NO + 1 + + + + 268 + {{94, 45}, {28, 11}} + + + YES + + 68157504 + 138675200 + 4x + + + + + + NO + 1 + + + + 268 + {{136, 45}, {28, 11}} + + + YES + + 68157504 + 138675200 + 6x + + + + + + NO + 1 + + + + 268 + {{178, 45}, {28, 11}} + + + YES + + 68157504 + 138675200 + 8x + + + + + + NO + 1 + + + + 268 + {{151, 62}, {89, 17}} + + 100 + YES + + 67108864 + 134348800 + Normal Speed + + + -2038153216 + 164 + + + 400 + 75 + + NO + + + + 268 + {{15, 14}, {133, 14}} + + + YES + + 68157504 + 4326400 + Execution speed set to: + + + + + + NO + 1 + + + + 268 + {{150, 14}, {93, 14}} + + YES + + 68157504 + 4326400 + + statusText + + + + + NO + 1 + + + + 268 + {{15, 62}, {98, 18}} + + + YES + + -2080374784 + 131072 + Enable Limiter + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{9, 45}, {28, 11}} + + + YES + + 68157504 + 138675200 + 0x + + + + + + NO + 1 + + + {{1, 1}, {258, 88}} + + _NS:21 + + + {{-3, 16}, {260, 104}} + + _NS:18 + {0, 0} + + 67108864 + 0 + Execution Speed Properties + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 268 + {{4, 4}, {42, 14}} + + _NS:4068 + YES + + 68157504 + 272761856 + Frame: + + _NS:4068 + + + + + NO + 1 + + + + 268 + {{48, 4}, {189, 14}} + + _NS:4068 + YES + + 68157504 + 272761856 + + + statusText + _NS:4068 + + + + + NO + 1 + + + {254, 262} + + _NS:103 + + {{0, 0}, {1440, 878}} + {1.7976931348623157e+308, 1.7976931348623157e+308} + ExecutionControlPanel + NO + 279 2 - {{1572, 795}, {194, 241}} + {{170, 20}, {194, 241}} -461896704 HUD Settings NSPanel @@ -18675,14 +19693,14 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 {194, 241} - {{0, 0}, {1920, 1178}} + {{0, 0}, {1440, 878}} {1.7976931348623157e+308, 1.7976931348623157e+308} YES 279 2 - {{1651, 276}, {204, 521}} + {{1004, 215}, {204, 521}} -461896704 Set Video Output NSPanel @@ -19358,7 +20376,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 {204, 521} - {{0, 0}, {1920, 1178}} + {{0, 0}, {1440, 878}} {1.7976931348623157e+308, 1.7976931348623157e+308} DisplayVideoSettingsPanel YES @@ -19437,7 +20455,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 - {{15, 37}, {80, 18}} + {{15, 37}, {81, 18}} YES @@ -19538,6 +20556,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -19555,6 +20574,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -21436,6 +22456,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -21806,7 +22827,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 8215 2 - {{107, 480}, {580, 588}} + {{69, 199}, {580, 588}} -461897728 ROM Info NSPanel @@ -21875,6 +22896,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -21893,6 +22915,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -21911,6 +22934,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -21929,6 +22953,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -21951,6 +22976,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -21970,6 +22996,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -21989,6 +23016,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22008,6 +23036,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {{1, 1}, {408, 116}} @@ -22063,6 +23092,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22081,6 +23111,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22099,6 +23130,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22117,6 +23149,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22135,6 +23168,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22153,6 +23187,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22172,6 +23207,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22191,6 +23227,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22210,6 +23247,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22229,6 +23267,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22248,6 +23287,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22267,6 +23307,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {{1, 1}, {216, 400}} @@ -22322,6 +23363,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22340,6 +23382,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22358,6 +23401,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22376,6 +23420,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22394,6 +23439,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22412,6 +23458,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22430,6 +23477,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22448,6 +23496,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22466,6 +23515,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22485,6 +23535,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22504,6 +23555,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22523,6 +23575,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22542,6 +23595,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22561,6 +23615,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22580,6 +23635,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22599,6 +23655,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {{1, 1}, {324, 192}} @@ -22654,6 +23711,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22673,6 +23731,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22691,6 +23750,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22710,6 +23770,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22728,6 +23789,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22747,6 +23809,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22765,6 +23828,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22784,6 +23848,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {{1, 1}, {324, 104}} @@ -22839,6 +23904,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22858,6 +23924,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22876,6 +23943,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22894,6 +23962,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {{1, 1}, {324, 60}} @@ -22926,312 +23995,11 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 {580, 588} - {{0, 0}, {1920, 1178}} + {{0, 0}, {1440, 878}} {1.7976931348623157e+308, 1.7976931348623157e+308} ROMInfoPanel YES - - 279 - 2 - {{1360, 99}, {467, 128}} - -461897728 - Set Speed Limit - NSPanel - - - {1.7976931348623157e+308, 1.7976931348623157e+308} - - - 256 - - YES - - - 268 - {{30, 43}, {411, 26}} - - - YES - - -2080112384 - 0 - - - 10 - 0.0 - 1 - 0.0 - 11 - 1 - NO - NO - - NO - - - - 268 - {{20, 70}, {38, 17}} - - - YES - - 68157504 - 138413056 - 0x - - - - - - NO - - - - 268 - {{412, 70}, {38, 17}} - - - YES - - 68157504 - 138413056 - 10x - - - - - - NO - - - - 268 - {{98, 70}, {38, 17}} - - - YES - - 68157504 - 138413056 - 2x - - - - - - NO - - - - 268 - {{177, 70}, {38, 17}} - - - YES - - 68157504 - 138413056 - 4x - - - - - - NO - - - - 268 - {{255, 70}, {38, 17}} - - - YES - - 68157504 - 138413056 - 6x - - - - - - NO - - - - 268 - {{335, 70}, {38, 17}} - - - YES - - 68157504 - 138413056 - 8x - - - - - - NO - - - - 268 - {{32, 18}, {133, 19}} - - - 100 - YES - - 67108864 - 134217728 - Set to Normal Speed - - - -2038153216 - 164 - - - 400 - 75 - - NO - - - - 268 - {{203, 21}, {156, 17}} - - - YES - - 68157504 - 71304192 - Speed limit set to: - - - - - - NO - - - - 268 - {{361, 21}, {81, 17}} - - YES - - 68157504 - 4195328 - - - - YES - - YES - allowsFloats - alwaysShowsDecimalSeparator - formatterBehavior - lenient - locale - maximumFractionDigits - minimumFractionDigits - negativeFormat - negativeInfinitySymbol - nilSymbol - numberStyle - positiveFormat - positiveInfinitySymbol - usesGroupingSeparator - - - YES - - - - - - - - #0.00x - -∞ - - - #0.00x - +∞ - - - - #0.00x - #0.00x - - - - - - - - NaN - - - - - - 3 - YES - YES - YES - - . - , - NO - NO - YES - - %1.2fx - - - - - NO - - - - 268 - {{158, 93}, {154, 18}} - - - YES - - -2080374784 - 0 - Enable Speed Limit - - - 1211912448 - 2 - - - - - 200 - 25 - - NO - - - {467, 128} - - - {{0, 0}, {1920, 1178}} - {1.7976931348623157e+308, 1.7976931348623157e+308} - SetSpeedLimitPanel - YES - 279 2 @@ -23286,6 +24054,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -23303,6 +24072,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -23320,6 +24090,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -23337,6 +24108,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -23420,6 +24192,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -23437,6 +24210,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -23541,6 +24315,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -23558,6 +24333,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -23575,6 +24351,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -23592,6 +24369,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -23609,6 +24387,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -23626,6 +24405,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -23704,6 +24484,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -24244,6 +25025,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {450, 35} @@ -24252,7 +25034,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 7 2 - {{75, 507}, {580, 592}} + {{88, 206}, {580, 592}} 1685586944 Troubleshooting Form NSWindow @@ -24265,7 +25047,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 256 {580, 592} - {{0, 0}, {1920, 1178}} + {{0, 0}, {1440, 878}} {580, 614} {580, 614} YES @@ -24299,6 +25081,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -24488,6 +25271,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -24527,6 +25311,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -24544,6 +25329,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -24583,6 +25369,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -24600,6 +25387,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -24639,6 +25427,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -24656,6 +25445,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -24673,6 +25463,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -24690,6 +25481,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -24708,6 +25500,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -24726,6 +25519,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -24802,6 +25596,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -25133,6 +25928,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -25172,6 +25968,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -25189,6 +25986,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -25206,6 +26004,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -25223,6 +26022,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -25262,6 +26062,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -25279,6 +26080,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -25318,6 +26120,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -25335,6 +26138,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -25352,6 +26156,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -25369,6 +26174,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -25387,6 +26193,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -25405,6 +26212,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -25494,6 +26302,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -25550,7 +26359,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 2322 - {{0, 157}, {523, 443}} + {538, 443} @@ -25568,7 +26377,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 - 523 + 538 1 @@ -25614,7 +26423,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 - {{1, 1}, {523, 443}} + {{1, 1}, {538, 443}} @@ -25625,7 +26434,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 256 - {{524, 1}, {15, 443}} + {{523, 1}, {16, 443}} NO @@ -25710,6 +26519,9 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 cdsGPU.layerSubBG2 cdsGPU.layerSubBG3 cdsGPU.layerSubOBJ + coreState + frameStatus + executionSpeedStatus CocoaDSCore @@ -25758,6 +26570,9 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 mainWindow.screenshotFileFormat selectedExportRomSaveID mainWindow.displayGap + frameJumpType + frameJumpFramesForward + frameJumpToFrame EmuControllerDelegate @@ -26206,70 +27021,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 1776 - - - value: selection.speedScalar - - - - - - value: selection.speedScalar - value - selection.speedScalar - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSRaisesForNotApplicableKeys - NSValidatesImmediately - - - YES - - - - - - 2 - - - 1869 - - - - value: selection.speedScalar - - - - - - value: selection.speedScalar - value - selection.speedScalar - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSConditionallySetsEnabled - NSRaisesForNotApplicableKeys - NSValidatesImmediately - - - YES - - - - - - - 2 - - - 1872 - delegate @@ -27333,14 +28084,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 4151 - - - makeKeyAndOrderFront: - - - - 4279 - makeKeyAndOrderFront: @@ -29261,39 +30004,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 5733 - - - value: selection.isSpeedLimitEnabled - - - - - - value: selection.isSpeedLimitEnabled - value - selection.isSpeedLimitEnabled - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSConditionallySetsEnabled - NSRaisesForNotApplicableKeys - NSValidatesImmediately - - - YES - - - - - - - 2 - - - 5971 - value: values.DisplayView_Rotation @@ -31510,38 +32220,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 6745 - - - changeCoreSpeed: - - - - 6747 - - - - changeCoreSpeed: - - - - 6748 - - - - changeCoreSpeed: - - - - 6749 - - - - changeCoreSpeed: - - - - 6750 - value: selection.currentVolumeValue @@ -32917,14 +33595,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 7005 - - - toggleExecutePause: - - - - 7009 - reset: @@ -32949,14 +33619,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 7012 - - - toggleSpeedLimiter: - - - - 7013 - viewInput @@ -35375,14 +36037,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 8241 - - - changeCoreSpeed: - - - - 8242 - makeKeyAndOrderFront: @@ -36628,6 +37282,521 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 8745 + + + toggleAllDisplays: + + + + 8977 + + + + frameAdvance: + + + + 8980 + + + + frameJump: + + + + 8982 + + + + frameAdvance: + + + + 9004 + + + + frameJump: + + + + 9005 + + + + reset: + + + + 9006 + + + + makeKeyAndOrderFront: + + + + 9008 + + + + enabled: selection.currentRom + + + + + + enabled: selection.currentRom + enabled + selection.currentRom + + NSValueTransformerName + NSIsNotNil + + 2 + + + 9012 + + + + enabled: selection.currentRom + + + + + + enabled: selection.currentRom + enabled + selection.currentRom + + NSValueTransformerName + NSIsNotNil + + 2 + + + 9014 + + + + enabled: selection.currentRom + + + + + + enabled: selection.currentRom + enabled + selection.currentRom + + NSValueTransformerName + NSIsNotNil + + 2 + + + 9016 + + + + enabled: selection.currentRom + + + + + + enabled: selection.currentRom + enabled + selection.currentRom + + NSValueTransformerName + NSIsNotNil + + 2 + + + 9018 + + + + enabled: selection.currentRom + + + + + + enabled: selection.currentRom + enabled + selection.currentRom + + NSValueTransformerName + NSIsNotNil + + 2 + + + 9022 + + + + enabled2: selection.coreState + + + + + + enabled2: selection.coreState + enabled2 + selection.coreState + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + NSValueTransformerName + + + YES + + + + + NSNegateBoolean + + + + 2 + + + 9028 + + + + enabled2: selection.coreState + + + + + + enabled2: selection.coreState + enabled2 + selection.coreState + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + + + YES + + + + + + + + 2 + + + 9029 + + + + changeCoreSpeed: + + + + 9065 + + + + value: selection.isSpeedLimitEnabled + + + + + + value: selection.isSpeedLimitEnabled + value + selection.isSpeedLimitEnabled + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSConditionallySetsEnabled + NSRaisesForNotApplicableKeys + NSValidatesImmediately + + + YES + + + + + + + 2 + + + 9067 + + + + value: selection.speedScalar + + + + + + value: selection.speedScalar + value + selection.speedScalar + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSConditionallySetsEnabled + NSRaisesForNotApplicableKeys + NSValidatesImmediately + + + YES + + + + + + + 2 + + + 9068 + + + + enabled2: selection.coreState + + + + + + enabled2: selection.coreState + enabled2 + selection.coreState + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + NSValueTransformerName + + + YES + + + + + NSNegateBoolean + + + + 2 + + + 9070 + + + + enabled: selection.isSpeedLimitEnabled + + + + + + enabled: selection.isSpeedLimitEnabled + enabled + selection.isSpeedLimitEnabled + 2 + + + 9073 + + + + enabled: selection.isSpeedLimitEnabled + + + + + + enabled: selection.isSpeedLimitEnabled + enabled + selection.isSpeedLimitEnabled + 2 + + + 9077 + + + + changeCoreSpeed: + + + + 9078 + + + + value: selection.frameStatus + + + + + + value: selection.frameStatus + value + selection.frameStatus + + NSValidatesImmediately + + + 2 + + + 9092 + + + + value: selection.executionSpeedStatus + + + + + + value: selection.executionSpeedStatus + value + selection.executionSpeedStatus + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSRaisesForNotApplicableKeys + NSValidatesImmediately + + + YES + + + + + + 2 + + + 9093 + + + + selectedTag: selection.frameJumpType + + + + + + selectedTag: selection.frameJumpType + selectedTag + selection.frameJumpType + 2 + + + 9096 + + + + value: selection.frameJumpFramesForward + + + + + + value: selection.frameJumpFramesForward + value + selection.frameJumpFramesForward + 2 + + + 9097 + + + + value: selection.frameJumpToFrame + + + + + + value: selection.frameJumpToFrame + value + selection.frameJumpToFrame + 2 + + + 9098 + + + + executionControlWindow + + + + 9099 + + + + coreExecute: + + + + 9100 + + + + corePause: + + + + 9101 + + + + coreExecute: + + + + 9102 + + + + corePause: + + + + 9103 + @@ -36714,7 +37883,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 - @@ -36726,6 +37894,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 + @@ -36867,9 +38036,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 YES - - @@ -36878,11 +38045,11 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 - - + + @@ -36960,28 +38127,31 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 YES - - - - - - + + + + + + + + + + + + + + - - 578 - - - 594 @@ -37972,225 +39142,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 - - 983 - - - YES - - - - - - 984 - - - YES - - - - - - - - - - 987 - - - - - 989 - - - - - 990 - - - - - 991 - - - - - 993 - - - - - 998 - - - YES - - - - - - 999 - - - YES - - - - - - - - - - - - - - - - 1000 - - - YES - - - - - - 1001 - - - - - 1002 - - - YES - - - - - - 1003 - - - - - 1004 - - - YES - - - - - - 1005 - - - - - 1006 - - - YES - - - - - - 1007 - - - - - 1008 - - - YES - - - - - - 1009 - - - - - 1010 - - - YES - - - - - - 1011 - - - - - 1012 - - - YES - - - - - - 1013 - - - - - 1016 - - - YES - - - - - - 1017 - - - - - 1020 - - - YES - - - - - - 1021 - - - - - 1024 - - - YES - - - - - - 1025 - - - YES - - - - 1034 @@ -38619,11 +39570,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 CocoaDS Core Controller - - 1736 - - - 1855 @@ -39144,11 +40090,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 - - 2473 - - - 2482 @@ -39924,11 +40865,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 Preferences Window Controller - - 3521 - - - 3522 @@ -39958,11 +40894,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 - - 3709 - - - 3712 @@ -40342,11 +41273,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 - - 3789 - - - 3790 @@ -41148,11 +42074,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 Internal Firmware Drawer - - 4062 - - - 4059 @@ -43239,45 +44160,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 - - 491 - - - YES - - - - - - - - - - - 980 - - - - - 979 - - - - - 978 - - - - - 977 - - - - - 492 - - - 5419 @@ -43848,65 +44730,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 - - 2529 - - - YES - - - - - - 2530 - - - YES - - - - - - - - - 2548 - - - - - 2549 - - - - - 2551 - - - - - 2558 - - - YES - - - - - - 2559 - - - YES - - - - - - 2560 - - - 2553 @@ -43987,20 +44810,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 - - 5965 - - - YES - - - - - - 5966 - - - 6131 @@ -44840,11 +45649,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 Troubleshooting Window Controller - - 6451 - - - 6484 @@ -49665,6 +50469,504 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 + + 491 + + + YES + + + + + + + + + + + 6451 + + + + + 492 + + + + + 977 + + + + + 978 + + + + + 979 + + + + + 980 + + + + + 8758 + + + + + 8975 + + + + + 8978 + + + + + 8979 + + + + + 8991 + + + YES + + + + + + 8992 + + + YES + + + + + + + + + + + + + + 8993 + + + YES + + + + + + 8994 + + + + + 8995 + + + YES + + + + + + 8996 + + + + + 8997 + + + YES + + + + + + 8998 + + + + + 9001 + + + YES + + + + + + 9002 + + + + + 9007 + + + + + 9019 + + + YES + + + + + + 9020 + + + + + 9071 + + + YES + + + + + + + + 9032 + + + YES + + + + + + 9033 + + + YES + + + + + + 9039 + + + YES + + + + + + 9040 + + + YES + + + + + + 9034 + + + YES + + + + + + + + + 9038 + + + + + 9037 + + + + + 9036 + + + + + 9035 + + + + + 9072 + + + YES + + + + + + + + + + + + + + + + 9041 + + + YES + + + + + + 9063 + + + + + 9043 + + + YES + + + + + + 9061 + + + + + 9044 + + + YES + + + + + + 9060 + + + + + 9045 + + + YES + + + + + + 9059 + + + + + 9046 + + + YES + + + + + + 9058 + + + + + 9047 + + + YES + + + + + + 9057 + + + + + 9049 + + + YES + + + + + + 9055 + + + + + 9050 + + + YES + + + + + + 9053 + + + YES + + + + + 9051 + + + YES + + + + + + 9052 + + + + + 9042 + + + YES + + + + + + 9062 + + + + + 9075 + + + YES + + + + + + 9076 + + + + + 9083 + + + + + 9084 + + + + + 8976 + + + + + 3789 + + + + + 4062 + + + + + 3709 + + + + + 9085 + + + + + 9086 + + + + + 9087 + + + YES + + + + + + 9088 + + + + + 9089 + + + YES + + + + + + 9090 + + + + + 9094 + + + + + 9095 + + + @@ -49674,26 +50976,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 -1.IBPluginDependency -2.IBPluginDependency -3.IBPluginDependency - 1000.IBPluginDependency - 1001.IBPluginDependency - 1002.IBPluginDependency - 1003.IBPluginDependency - 1004.IBPluginDependency - 1005.IBPluginDependency - 1006.IBPluginDependency - 1007.IBPluginDependency - 1008.IBPluginDependency - 1009.IBPluginDependency - 1010.IBPluginDependency - 1011.IBPluginDependency - 1012.IBPluginDependency - 1013.IBPluginDependency - 1016.IBPluginDependency - 1017.IBPluginDependency - 1020.IBPluginDependency - 1021.IBPluginDependency - 1024.IBPluginDependency - 1025.IBPluginDependency 1034.IBPluginDependency 1035.IBPluginDependency 1036.IBPluginDependency @@ -49710,6 +50992,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 112.IBPluginDependency 1120.IBPluginDependency 124.IBPluginDependency + 125.IBEditorWindowLastContentRect 125.IBPluginDependency 126.IBPluginDependency 129.IBPluginDependency @@ -49810,9 +51093,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 1681.toolbarItem.selectable 1682.IBPluginDependency 1721.IBPluginDependency - 1736.IBNumberFormatterBehaviorMetadataKey - 1736.IBNumberFormatterLocalizesFormatMetadataKey - 1736.IBPluginDependency 1855.IBPluginDependency 1856.IBPluginDependency 1856.IBWindowTemplateEditedContentRect @@ -49931,6 +51211,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 2377.IBPluginDependency 2378.IBPluginDependency 2382.IBPluginDependency + 2383.IBEditorWindowLastContentRect 2383.IBPluginDependency 2384.IBPluginDependency 2385.IBPluginDependency @@ -49949,6 +51230,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 2397.IBPluginDependency 2398.IBPluginDependency 2399.IBPluginDependency + 24.IBEditorWindowLastContentRect 24.IBPluginDependency 2427.IBAttributePlaceholdersKey 2427.IBPluginDependency @@ -49971,21 +51253,12 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 2439.IBAttributePlaceholdersKey 2439.IBPluginDependency 2440.IBPluginDependency - 2473.IBPluginDependency 2482.IBPluginDependency 2483.IBPluginDependency 2518.IBPluginDependency 2519.IBPluginDependency - 2529.IBPluginDependency - 2530.IBPluginDependency - 2548.IBPluginDependency - 2549.IBPluginDependency - 2551.IBPluginDependency 2553.IBPluginDependency 2556.IBPluginDependency - 2558.IBPluginDependency - 2559.IBPluginDependency - 2560.IBPluginDependency 2565.IBAttributePlaceholdersKey 2565.IBPluginDependency 2566.IBPluginDependency @@ -50067,6 +51340,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 3146.IBPluginDependency 3148.IBPluginDependency 3204.IBPluginDependency + 3205.IBEditorWindowLastContentRect 3205.IBPluginDependency 3206.IBPluginDependency 3207.IBPluginDependency @@ -50109,7 +51383,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 3516.IBPluginDependency 3517.IBPluginDependency 3520.IBPluginDependency - 3521.IBPluginDependency 3522.IBPluginDependency 3523.IBPluginDependency 3644.IBPluginDependency @@ -50204,6 +51477,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 3787.IBPluginDependency 3788.IBPluginDependency 3789.IBPluginDependency + 3790.IBEditorWindowLastContentRect 3790.IBPluginDependency 3790.IBWindowTemplateEditedContentRect 3790.NSWindowTemplate.visibleAtLaunch @@ -50314,6 +51588,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 4003.IBPluginDependency 4004.IBPluginDependency 4024.IBPluginDependency + 4027.IBEditorWindowLastContentRect 4027.IBPluginDependency 4027.IBWindowTemplateEditedContentRect 4027.NSWindowTemplate.visibleAtLaunch @@ -50348,9 +51623,11 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 4050.IBAttributePlaceholdersKey 4050.IBPluginDependency 4051.IBPluginDependency + 4053.IBEditorWindowLastContentRect 4053.IBPluginDependency 4054.IBPluginDependency 4059.IBPluginDependency + 4059.IBViewBoundsToFrameTransform 4060.IBPluginDependency 4062.IBPluginDependency 4066.IBPluginDependency @@ -50591,10 +51868,12 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 4907.IBPluginDependency 4908.IBPluginDependency 4909.IBPluginDependency + 491.IBEditorWindowLastContentRect 491.IBPluginDependency 4910.IBAttributePlaceholdersKey 4910.IBPluginDependency 4911.IBPluginDependency + 4912.IBEditorWindowLastContentRect 4912.IBPluginDependency 4913.IBPluginDependency 4914.IBPluginDependency @@ -50676,9 +51955,11 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 534.IBPluginDependency 535.IBPluginDependency 538.IBPluginDependency + 539.IBEditorWindowLastContentRect 539.IBPluginDependency 541.IBPluginDependency 5419.IBPluginDependency + 542.IBEditorWindowLastContentRect 542.IBPluginDependency 5420.IBPluginDependency 5421.IBPluginDependency @@ -50688,6 +51969,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 56.IBPluginDependency 5648.IBPluginDependency 5649.IBPluginDependency + 5651.IBEditorWindowLastContentRect 5651.IBPluginDependency 5651.IBWindowTemplateEditedContentRect 5651.NSWindowTemplate.visibleAtLaunch @@ -50731,7 +52013,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 575.IBPluginDependency 576.IBEditorWindowLastContentRect 576.IBPluginDependency - 578.IBPluginDependency 58.IBPluginDependency 5933.IBPluginDependency 5934.IBPluginDependency @@ -50744,8 +52025,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 5942.IBPluginDependency 596.IBPluginDependency 5963.IBPluginDependency - 5965.IBPluginDependency - 5966.IBPluginDependency 607.IBPluginDependency 608.IBEditorWindowLastContentRect 608.IBPluginDependency @@ -50770,9 +52049,11 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 6161.IBPluginDependency 6162.IBPluginDependency 6168.IBPluginDependency + 6169.IBEditorWindowLastContentRect 6169.IBPluginDependency 6170.IBPluginDependency 6171.IBPluginDependency + 6172.IBEditorWindowLastContentRect 6172.IBPluginDependency 6173.IBPluginDependency 6174.IBPluginDependency @@ -50879,6 +52160,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 6427.IBPluginDependency 6428.IBPluginDependency 6429.IBPluginDependency + 6430.IBEditorWindowLastContentRect 6430.IBPluginDependency 6431.IBPluginDependency 6432.IBPluginDependency @@ -50945,6 +52227,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 7137.IBPluginDependency 7138.IBPluginDependency 7139.IBPluginDependency + 714.IBEditorWindowLastContentRect 714.IBPluginDependency 7140.IBPluginDependency 7141.IBPluginDependency @@ -51210,6 +52493,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 7766.IBPluginDependency 7767.IBPluginDependency 7771.IBPluginDependency + 7772.IBEditorWindowLastContentRect 7772.IBPluginDependency 7773.IBPluginDependency 7774.IBPluginDependency @@ -51240,6 +52524,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 7811.IBPluginDependency 7812.IBPluginDependency 7813.IBPluginDependency + 7817.IBEditorWindowLastContentRect 7817.IBPluginDependency 7817.IBWindowTemplateEditedContentRect 7817.NSWindowTemplate.visibleAtLaunch @@ -51261,6 +52546,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 7837.IBPluginDependency 7838.IBPluginDependency 7839.IBPluginDependency + 784.IBEditorWindowLastContentRect 784.IBPluginDependency 7840.IBNumberFormatterBehaviorMetadataKey 7840.IBNumberFormatterLocalizesFormatMetadataKey @@ -51303,6 +52589,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 7877.IBPluginDependency 7878.IBPluginDependency 7879.IBPluginDependency + 788.IBEditorWindowLastContentRect 788.IBPluginDependency 7880.IBPluginDependency 7881.IBPluginDependency @@ -51310,11 +52597,13 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 789.IBPluginDependency 7899.IBPluginDependency 79.IBPluginDependency + 794.IBEditorWindowLastContentRect 794.IBPluginDependency 794.IBWindowTemplateEditedContentRect 794.NSWindowTemplate.visibleAtLaunch 795.IBAttributePlaceholdersKey 795.IBPluginDependency + 796.IBEditorWindowLastContentRect 796.IBPluginDependency 796.IBWindowTemplateEditedContentRect 796.NSWindowTemplate.visibleAtLaunch @@ -51383,6 +52672,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 8077.IBPluginDependency 8078.IBPluginDependency 8084.IBPluginDependency + 81.IBEditorWindowLastContentRect 81.IBPluginDependency 8134.IBPluginDependency 8134.IBWindowTemplateEditedContentRect @@ -51429,6 +52719,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 823.IBPluginDependency 824.IBPluginDependency 8245.IBPluginDependency + 8246.IBEditorWindowLastContentRect 8246.IBPluginDependency 8247.IBPluginDependency 8248.IBPluginDependency @@ -51650,6 +52941,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 8608.IBPluginDependency 8608.IBViewBoundsToFrameTransform 8609.IBPluginDependency + 861.IBEditorWindowLastContentRect 861.IBPluginDependency 861.IBWindowTemplateEditedContentRect 861.NSWindowTemplate.visibleAtLaunch @@ -51737,6 +53029,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 8746.IBViewBoundsToFrameTransform 8747.IBPluginDependency 875.IBPluginDependency + 8758.IBPluginDependency 876.IBPluginDependency 877.IBPluginDependency 878.IBPluginDependency @@ -51751,18 +53044,112 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 889.IBPluginDependency 890.IBPluginDependency 897.IBPluginDependency + 8975.IBPluginDependency + 8976.IBPluginDependency + 8978.IBPluginDependency + 8979.IBPluginDependency 898.IBPluginDependency 899.IBPluginDependency + 8991.IBEditorWindowLastContentRect + 8991.IBPluginDependency + 8991.IBWindowTemplateEditedContentRect + 8991.NSWindowTemplate.visibleAtLaunch + 8992.IBPluginDependency + 8993.IBAttributePlaceholdersKey + 8993.IBPluginDependency + 8993.IBViewBoundsToFrameTransform + 8994.IBPluginDependency + 8995.IBAttributePlaceholdersKey + 8995.IBPluginDependency + 8995.IBViewBoundsToFrameTransform + 8996.IBPluginDependency + 8997.IBAttributePlaceholdersKey + 8997.IBPluginDependency + 8997.IBViewBoundsToFrameTransform + 8998.IBPluginDependency 900.IBPluginDependency + 9001.IBAttributePlaceholdersKey + 9001.IBPluginDependency + 9001.IBViewBoundsToFrameTransform + 9002.IBPluginDependency + 9007.IBPluginDependency 901.IBPluginDependency + 9019.IBAttributePlaceholdersKey + 9019.IBPluginDependency + 9019.IBViewBoundsToFrameTransform 902.IBPluginDependency + 9020.IBPluginDependency 903.IBPluginDependency + 9032.IBPluginDependency + 9032.IBViewBoundsToFrameTransform + 9033.IBPluginDependency + 9034.IBPluginDependency + 9034.IBViewBoundsToFrameTransform + 9035.IBPluginDependency + 9036.IBPluginDependency + 9037.IBPluginDependency + 9039.IBPluginDependency + 9039.IBViewBoundsToFrameTransform 904.IBPluginDependency + 9040.IBPluginDependency + 9041.IBPluginDependency + 9041.IBViewBoundsToFrameTransform + 9042.IBPluginDependency + 9042.IBViewBoundsToFrameTransform + 9043.IBPluginDependency + 9043.IBViewBoundsToFrameTransform + 9044.IBPluginDependency + 9044.IBViewBoundsToFrameTransform + 9045.IBPluginDependency + 9045.IBViewBoundsToFrameTransform + 9046.IBPluginDependency + 9046.IBViewBoundsToFrameTransform + 9047.IBPluginDependency + 9047.IBViewBoundsToFrameTransform + 9049.IBPluginDependency + 9049.IBViewBoundsToFrameTransform 905.IBPluginDependency + 9050.IBPluginDependency + 9050.IBViewBoundsToFrameTransform + 9051.IBPluginDependency + 9051.IBViewBoundsToFrameTransform + 9052.IBPluginDependency + 9053.IBPluginDependency + 9055.IBPluginDependency + 9057.IBPluginDependency + 9058.IBPluginDependency + 9059.IBPluginDependency 906.IBPluginDependency + 9060.IBPluginDependency + 9061.IBPluginDependency + 9062.IBPluginDependency + 9063.IBPluginDependency 907.IBPluginDependency + 9071.IBPluginDependency + 9071.IBViewBoundsToFrameTransform + 9072.IBPluginDependency + 9072.IBViewBoundsToFrameTransform + 9075.IBPluginDependency + 9075.IBViewBoundsToFrameTransform + 9076.IBPluginDependency 908.IBPluginDependency + 9083.IBPluginDependency + 9084.IBPluginDependency + 9085.IBPluginDependency + 9086.IBPluginDependency + 9087.IBPluginDependency + 9087.IBViewBoundsToFrameTransform + 9088.IBPluginDependency + 9089.IBPluginDependency + 9089.IBViewBoundsToFrameTransform 909.IBPluginDependency + 9090.IBPluginDependency + 9094.IBNumberFormatterBehaviorMetadataKey + 9094.IBNumberFormatterLocalizesFormatMetadataKey + 9094.IBPluginDependency + 9095.IBNumberFormatterBehaviorMetadataKey + 9095.IBNumberFormatterLocalizesFormatMetadataKey + 9095.IBPluginDependency 910.IBPluginDependency 911.IBPluginDependency 912.IBPluginDependency @@ -51821,17 +53208,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 978.IBPluginDependency 979.IBPluginDependency 980.IBPluginDependency - 983.IBPluginDependency - 984.IBPluginDependency - 987.IBPluginDependency - 989.IBPluginDependency - 990.IBPluginDependency - 991.IBPluginDependency - 993.IBPluginDependency - 998.IBPluginDependency - 998.IBWindowTemplateEditedContentRect - 998.NSWindowTemplate.visibleAtLaunch - 999.IBPluginDependency YES @@ -51854,30 +53230,11 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{807, 773}, {143, 23}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{629, 734}, {520, 422}} + {{629, 434}, {520, 422}} com.apple.InterfaceBuilder.CocoaPlugin YES @@ -52021,9 +53378,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - - - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin {{1388, 659}, {213, 198}} @@ -52055,7 +53409,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin Sound - {{903, 745}, {400, 373}} + {{728, 483}, {400, 373}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -52233,6 +53587,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{740, 153}, {156, 293}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -52251,6 +53606,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{709, 763}, {194, 73}} com.apple.InterfaceBuilder.CocoaPlugin ToolTip @@ -52328,15 +53684,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin ToolTip @@ -52401,7 +53748,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{1107, 1136}, {512, 20}} + {{295, 836}, {512, 20}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -52410,7 +53757,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{463, 585}, {315, 333}} + {{569, 543}, {315, 293}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -52427,6 +53774,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{439, 683}, {151, 153}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -52453,9 +53801,9 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{184, 141}, {640, 480}} + {{343, 141}, {640, 480}} com.apple.InterfaceBuilder.CocoaPlugin - {{184, 141}, {640, 480}} + {{343, 141}, {640, 480}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -52492,7 +53840,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin ToolTip @@ -52662,8 +54009,9 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{343, 119}, {301, 560}} com.apple.InterfaceBuilder.CocoaPlugin - {{1000, 254}, {301, 560}} + {{343, 119}, {301, 560}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -52887,7 +54235,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{778, 855}, {132, 63}} + {{884, 773}, {132, 63}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -52975,8 +54323,9 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{343, 285}, {286, 522}} com.apple.InterfaceBuilder.CocoaPlugin - {{1332, 177}, {286, 522}} + {{343, 285}, {286, 522}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -53065,9 +54414,13 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{343, 299}, {260, 328}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDMAAAwp4AAA + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -53387,6 +54740,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{780, 723}, {261, 113}} com.apple.InterfaceBuilder.CocoaPlugin YES @@ -53397,6 +54751,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{831, 704}, {198, 37}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -53496,9 +54851,11 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{756, 530}, {64, 6}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{756, 510}, {64, 6}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -53515,8 +54872,9 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{343, 269}, {550, 450}} com.apple.InterfaceBuilder.CocoaPlugin - {{548, 341}, {550, 450}} + {{343, 269}, {550, 450}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -53558,12 +54916,12 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{859, 953}, {203, 183}} + {{392, 653}, {203, 183}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{1035, 893}, {220, 243}} + {{483, 463}, {257, 373}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -53578,10 +54936,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{513, 865}, {196, 53}} + {{619, 783}, {196, 53}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -53646,9 +55001,11 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{884, 733}, {123, 43}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{884, 713}, {178, 43}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -53716,12 +55073,12 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{711, 876}, {400, 100}} + {{711, 700}, {400, 100}} com.apple.InterfaceBuilder.CocoaPlugin - {{711, 876}, {400, 100}} + {{711, 700}, {400, 100}} com.apple.InterfaceBuilder.CocoaPlugin - {{603, 976}, {616, 0}} + {{603, 800}, {616, 0}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin {{962, 321}, {580, 592}} @@ -53797,6 +55154,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{331, 164}, {580, 567}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -53905,6 +55263,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{709, 350}, {328, 434}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -53912,9 +55271,9 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{934, 298}, {350, 263}} + {{784, 552}, {350, 263}} com.apple.InterfaceBuilder.CocoaPlugin - {{934, 298}, {350, 263}} + {{784, 552}, {350, 263}} com.apple.InterfaceBuilder.CocoaPlugin {{84, 906}, {350, 125}} @@ -54250,6 +55609,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{884, 603}, {118, 133}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -54294,8 +55654,9 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{331, 627}, {441, 133}} com.apple.InterfaceBuilder.CocoaPlugin - {{1120, 724}, {441, 133}} + {{331, 627}, {441, 133}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -54315,6 +55676,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{884, 633}, {136, 163}} com.apple.InterfaceBuilder.CocoaPlugin @@ -54394,6 +55756,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{884, 713}, {70, 103}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -54401,8 +55764,9 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{343, 530}, {194, 241}} com.apple.InterfaceBuilder.CocoaPlugin - {{1299, 599}, {194, 241}} + {{343, 530}, {194, 241}} YES @@ -54412,8 +55776,9 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin + {{343, 181}, {204, 521}} com.apple.InterfaceBuilder.CocoaPlugin - {{1413, 517}, {204, 521}} + {{343, 181}, {204, 521}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -54506,6 +55871,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{397, 443}, {325, 393}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin {{1444, 249}, {173, 339}} @@ -54552,6 +55918,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{884, 253}, {239, 463}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -54871,8 +56238,9 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 P4AAAL+AAABDFSEAwfgAAA com.apple.InterfaceBuilder.CocoaPlugin + {{326, 250}, {580, 588}} com.apple.InterfaceBuilder.CocoaPlugin - {{668, 434}, {580, 588}} + {{326, 250}, {580, 588}} com.apple.InterfaceBuilder.CocoaPlugin @@ -55029,19 +56397,186 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{307, 552}, {254, 262}} com.apple.InterfaceBuilder.CocoaPlugin + {{307, 552}, {254, 262}} + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Execute + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAAAAAAAAwfAAAA + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Frame Advance + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABB+AAAwqgAAA + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Reset + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDYgAAw6YAAA + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Frame Jump + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC+AAAwfAAAA + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Pause + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAAAAAAAAwqgAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDQgAAw5KAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBkAAAwowAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDQgAAw4iAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCFAAAwkQAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABB4AAAwmwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDXwAAwmwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABChgAAwmwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC1AAAwmwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDEQAAwmwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDOQAAwmwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAwrAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDFgAAwrAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDKQAAwqYAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + AUFgAABDRAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + AUFgAABCsAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCdAAAww8AAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAwgAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCbAAAwYAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -55100,8 +56635,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{1117, 350}, {467, 128}} - com.apple.InterfaceBuilder.CocoaPlugin @@ -55121,7 +56654,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 - 8747 + 9103 @@ -55634,6 +57167,14 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 userinterface/cheatWindowDelegate.h + + DisplayView + NSView + + IBProjectSource + userinterface/DisplayWindowController.h + + DisplayWindowController NSWindowController @@ -55824,20 +57365,38 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 - saveScreenshotPanelAccessoryView - NSView - - - saveScreenshotPanelAccessoryView - - saveScreenshotPanelAccessoryView - NSView + YES + + YES + saveScreenshotPanelAccessoryView + view + + + YES + NSView + DisplayView - - IBProjectSource - userinterface/DisplayWindowController.h + + YES + + YES + saveScreenshotPanelAccessoryView + view + + + YES + + saveScreenshotPanelAccessoryView + NSView + + + view + DisplayView + + + EmuControllerDelegate @@ -55859,7 +57418,11 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 chooseSlot1R4Directory: closeRom: closeSheet: + coreExecute: + corePause: exportRomSave: + frameAdvance: + frameJump: importRomSave: loadEmuSaveStateSlot: loadRecentRom: @@ -55874,6 +57437,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 saveEmuSaveStateAs: saveEmuSaveStateSlot: slot1Eject: + toggleAllDisplays: toggleAutoFrameSkip: toggleCheats: toggleExecutePause: @@ -55923,6 +57487,11 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 id id id + id + id + id + id + id @@ -55942,7 +57511,11 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 chooseSlot1R4Directory: closeRom: closeSheet: + coreExecute: + corePause: exportRomSave: + frameAdvance: + frameJump: importRomSave: loadEmuSaveStateSlot: loadRecentRom: @@ -55957,6 +57530,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 saveEmuSaveStateAs: saveEmuSaveStateSlot: slot1Eject: + toggleAllDisplays: toggleAutoFrameSkip: toggleCheats: toggleExecutePause: @@ -56021,10 +57595,26 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 closeSheet: id + + coreExecute: + id + + + corePause: + id + exportRomSave: id + + frameAdvance: + id + + + frameJump: + id + importRomSave: id @@ -56081,6 +57671,10 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 slot1Eject: id + + toggleAllDisplays: + id + toggleAutoFrameSkip: id @@ -56129,6 +57723,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 cheatListController cheatWindowController cheatWindowDelegate + executionControlWindow exportRomSavePanelAccessoryView firmwarePanelController inputManager @@ -56146,6 +57741,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NSArrayController NSObjectController CheatWindowDelegate + NSWindow NSView NSObjectController InputManager @@ -56166,6 +57762,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 cheatListController cheatWindowController cheatWindowDelegate + executionControlWindow exportRomSavePanelAccessoryView firmwarePanelController inputManager @@ -56201,6 +57798,10 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 cheatWindowDelegate CheatWindowDelegate + + executionControlWindow + NSWindow + exportRomSavePanelAccessoryView NSView @@ -58140,7 +59741,12 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 Icon_CodeBreaker_128x128 Icon_DeSmuME_32x32 Icon_Emulation_420x420 + Icon_Execute_420x420 + Icon_FrameAdvance_420x420 + Icon_FrameJump_420x420 Icon_Input_420x420 + Icon_Pause_420x420 + Icon_Reset_420x420 Icon_ShowHUD_420x420 Icon_Speaker_420x420 Icon_VolumeFull_16x16 @@ -58184,13 +59790,18 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 {420, 420} {420, 420} {420, 420} + {420, 420} + {420, 420} + {420, 420} + {420, 420} + {420, 420} {20, 20} {421, 339} {360, 136} {698, 479} {111.60000000000001, 85.600000000000009} {515, 457} - {15, 15} + {14, 14} {8, 8} {512, 512} {11, 11} diff --git a/desmume/src/cocoa/userinterface/DisplayWindowController.h b/desmume/src/cocoa/userinterface/DisplayWindowController.h index b8b1061df..38b0f5921 100644 --- a/desmume/src/cocoa/userinterface/DisplayWindowController.h +++ b/desmume/src/cocoa/userinterface/DisplayWindowController.h @@ -103,6 +103,8 @@ @interface DisplayWindowController : NSWindowController #endif { + NSObject *dummyObject; + DisplayView *view; NSView *saveScreenshotPanelAccessoryView; @@ -140,6 +142,8 @@ OSSpinLock spinlockVideoFilterType; } +@property (readonly) IBOutlet NSObject *dummyObject; + @property (readonly) IBOutlet DisplayView *view; @property (readonly) IBOutlet NSView *saveScreenshotPanelAccessoryView; diff --git a/desmume/src/cocoa/userinterface/DisplayWindowController.mm b/desmume/src/cocoa/userinterface/DisplayWindowController.mm index 1810edf94..42f2d4215 100644 --- a/desmume/src/cocoa/userinterface/DisplayWindowController.mm +++ b/desmume/src/cocoa/userinterface/DisplayWindowController.mm @@ -85,6 +85,7 @@ enum OGLVertexAttributeID @implementation DisplayWindowController +@synthesize dummyObject; @synthesize emuControl; @synthesize cdsVideoOutput; @synthesize assignedScreen; diff --git a/desmume/src/cocoa/userinterface/EmuControllerDelegate.h b/desmume/src/cocoa/userinterface/EmuControllerDelegate.h index 443d61ad7..07a8a36b5 100644 --- a/desmume/src/cocoa/userinterface/EmuControllerDelegate.h +++ b/desmume/src/cocoa/userinterface/EmuControllerDelegate.h @@ -48,6 +48,7 @@ class AudioSampleBlockGenerator; NSArrayController *cheatListController; NSArrayController *cheatDatabaseController; + NSWindow *executionControlWindow; NSWindow *slot1ManagerWindow; NSWindow *saveFileMigrationSheet; NSWindow *saveStatePrecloseSheet; @@ -66,6 +67,9 @@ class AudioSampleBlockGenerator; NSURL *currentSaveStateURL; NSInteger selectedExportRomSaveID; NSInteger selectedRomSaveTypeID; + NSInteger frameJumpType; + NSInteger frameJumpFramesForward; + NSInteger frameJumpToFrame; CGFloat lastSetSpeedScalar; BOOL isSoundMuted; @@ -104,6 +108,7 @@ class AudioSampleBlockGenerator; @property (readonly) IBOutlet NSArrayController *cheatListController; @property (readonly) IBOutlet NSArrayController *cheatDatabaseController; +@property (readonly) IBOutlet NSWindow *executionControlWindow; @property (readonly) IBOutlet NSWindow *slot1ManagerWindow; @property (readonly) IBOutlet NSWindow *saveFileMigrationSheet; @property (readonly) IBOutlet NSWindow *saveStatePrecloseSheet; @@ -130,6 +135,9 @@ class AudioSampleBlockGenerator; @property (retain) NSURL *currentSaveStateURL; @property (assign) NSInteger selectedExportRomSaveID; @property (assign) NSInteger selectedRomSaveTypeID; +@property (assign) NSInteger frameJumpType; +@property (assign) NSInteger frameJumpFramesForward; +@property (assign) NSInteger frameJumpToFrame; @property (assign) NSInteger render3DRenderingEngine; @property (assign) BOOL render3DHighPrecisionColorInterpolation; @@ -165,9 +173,16 @@ class AudioSampleBlockGenerator; - (IBAction) toggleAutoFrameSkip:(id)sender; - (IBAction) toggleCheats:(id)sender; - (IBAction) toggleExecutePause:(id)sender; +- (IBAction) coreExecute:(id)sender; +- (IBAction) corePause:(id)sender; +- (IBAction) frameAdvance:(id)sender; +- (IBAction) frameJump:(id)sender; - (IBAction) reset:(id)sender; - (IBAction) changeRomSaveType:(id)sender; +// View Menu +- (IBAction) toggleAllDisplays:(id)sender; + // Tools Menu - (IBAction) toggleGPUState:(id)sender; @@ -199,12 +214,17 @@ class AudioSampleBlockGenerator; - (void) cmdCopyScreen:(NSValue *)cmdAttrValue; - (void) cmdRotateDisplayRelative:(NSValue *)cmdAttrValue; +- (void) cmdToggleAllDisplays:(NSValue *)cmdAttrValue; - (void) cmdHoldToggleSpeedScalar:(NSValue *)cmdAttrValue; - (void) cmdToggleSpeedLimiter:(NSValue *)cmdAttrValue; - (void) cmdToggleAutoFrameSkip:(NSValue *)cmdAttrValue; - (void) cmdToggleCheats:(NSValue *)cmdAttrValue; - (void) cmdToggleExecutePause:(NSValue *)cmdAttrValue; +- (void) cmdCoreExecute:(NSValue *)cmdAttrValue; +- (void) cmdCorePause:(NSValue *)cmdAttrValue; +- (void) cmdFrameAdvance:(NSValue *)cmdAttrValue; +- (void) cmdFrameJump:(NSValue *)cmdAttrValue; - (void) cmdReset:(NSValue *)cmdAttrValue; - (void) cmdToggleGPUState:(NSValue *)cmdAttrValue; diff --git a/desmume/src/cocoa/userinterface/EmuControllerDelegate.mm b/desmume/src/cocoa/userinterface/EmuControllerDelegate.mm index a92342905..9a373f466 100644 --- a/desmume/src/cocoa/userinterface/EmuControllerDelegate.mm +++ b/desmume/src/cocoa/userinterface/EmuControllerDelegate.mm @@ -52,6 +52,7 @@ @synthesize cheatDatabaseController; @synthesize slot2WindowController; +@synthesize executionControlWindow; @synthesize slot1ManagerWindow; @synthesize saveFileMigrationSheet; @synthesize saveStatePrecloseSheet; @@ -80,6 +81,9 @@ @synthesize currentSaveStateURL; @synthesize selectedExportRomSaveID; @synthesize selectedRomSaveTypeID; +@synthesize frameJumpType; +@synthesize frameJumpFramesForward; +@synthesize frameJumpToFrame; @dynamic render3DRenderingEngine; @dynamic render3DHighPrecisionColorInterpolation; @@ -122,6 +126,9 @@ currentSaveStateURL = nil; selectedRomSaveTypeID = ROMSAVETYPE_AUTOMATIC; selectedExportRomSaveID = 0; + frameJumpType = FRAMEJUMP_TYPE_FORWARD; + frameJumpFramesForward = 60; + frameJumpToFrame = 0; lastSetSpeedScalar = 1.0f; isSoundMuted = NO; @@ -736,6 +743,26 @@ [inputManager dispatchCommandUsingIBAction:_cmd sender:sender]; } +- (IBAction) coreExecute:(id)sender +{ + [inputManager dispatchCommandUsingIBAction:_cmd sender:sender]; +} + +- (IBAction) corePause:(id)sender +{ + [inputManager dispatchCommandUsingIBAction:_cmd sender:sender]; +} + +- (IBAction) frameAdvance:(id)sender +{ + [inputManager dispatchCommandUsingIBAction:_cmd sender:sender]; +} + +- (IBAction) frameJump:(id)sender +{ + [inputManager dispatchCommandUsingIBAction:_cmd sender:sender]; +} + - (IBAction) reset:(id)sender { [inputManager dispatchCommandUsingIBAction:_cmd sender:sender]; @@ -849,6 +876,11 @@ [CocoaDSUtil messageSendOneWayWithInteger:[cdsSpeaker receivePort] msgID:MESSAGE_SET_SPU_SYNC_METHOD integerValue:[CocoaDSUtil getIBActionSenderTag:sender]]; } +- (IBAction) toggleAllDisplays:(id)sender +{ + [inputManager dispatchCommandUsingIBAction:_cmd sender:sender]; +} + - (IBAction) chooseSlot1R4Directory:(id)sender { NSOpenPanel *panel = [NSOpenPanel openPanel]; @@ -1124,6 +1156,49 @@ [mainWindow setDisplayRotation:angleDegrees]; } +- (void) cmdToggleAllDisplays:(NSValue *)cmdAttrValue +{ + CommandAttributes cmdAttr; + [cmdAttrValue getValue:&cmdAttr]; + + if (cmdAttr.input.state == INPUT_ATTRIBUTE_STATE_OFF) + { + return; + } + + for (DisplayWindowController *theWindow in windowList) + { + const NSInteger displayMode = [theWindow displayMode]; + switch (displayMode) + { + case DS_DISPLAY_TYPE_MAIN: + [theWindow setDisplayMode:DS_DISPLAY_TYPE_TOUCH]; + break; + + case DS_DISPLAY_TYPE_TOUCH: + [theWindow setDisplayMode:DS_DISPLAY_TYPE_MAIN]; + break; + + case DS_DISPLAY_TYPE_DUAL: + { + const NSInteger displayOrder = [theWindow displayOrder]; + if (displayOrder == DS_DISPLAY_ORDER_MAIN_FIRST) + { + [theWindow setDisplayOrder:DS_DISPLAY_ORDER_TOUCH_FIRST]; + } + else + { + [theWindow setDisplayOrder:DS_DISPLAY_ORDER_MAIN_FIRST]; + } + break; + } + + default: + break; + } + } +} + - (void) cmdHoldToggleSpeedScalar:(NSValue *)cmdAttrValue { CommandAttributes cmdAttr; @@ -1234,6 +1309,82 @@ } } +- (void) cmdCoreExecute:(NSValue *)cmdAttrValue +{ + CommandAttributes cmdAttr; + [cmdAttrValue getValue:&cmdAttr]; + + if (cmdAttr.input.state == INPUT_ATTRIBUTE_STATE_OFF || [self currentRom] == nil) + { + return; + } + + [self executeCore]; +} + +- (void) cmdCorePause:(NSValue *)cmdAttrValue +{ + CommandAttributes cmdAttr; + [cmdAttrValue getValue:&cmdAttr]; + + if (cmdAttr.input.state == INPUT_ATTRIBUTE_STATE_OFF || [self currentRom] == nil) + { + return; + } + + [self pauseCore]; +} + +- (void) cmdFrameAdvance:(NSValue *)cmdAttrValue +{ + CommandAttributes cmdAttr; + [cmdAttrValue getValue:&cmdAttr]; + + CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content]; + + if (cmdAttr.input.state == INPUT_ATTRIBUTE_STATE_OFF || [cdsCore coreState] != CORESTATE_PAUSE || [self currentRom] == nil) + { + return; + } + + [cdsCore setCoreState:CORESTATE_FRAMEADVANCE]; +} + +- (void) cmdFrameJump:(NSValue *)cmdAttrValue +{ + CommandAttributes cmdAttr; + [cmdAttrValue getValue:&cmdAttr]; + + if (cmdAttr.input.state == INPUT_ATTRIBUTE_STATE_OFF || [self currentRom] == nil) + { + return; + } + + CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content]; + [executionControlWindow makeFirstResponder:nil]; + NSUInteger jumpFrames = 0; + + switch ([self frameJumpType]) + { + case FRAMEJUMP_TYPE_FORWARD: + jumpFrames = [self frameJumpFramesForward]; + [cdsCore frameJump:jumpFrames]; + break; + + case FRAMEJUMP_TYPE_TOFRAME: + jumpFrames = [self frameJumpToFrame]; + [cdsCore frameJumpTo:jumpFrames]; + break; + + case FRAMEJUMP_TYPE_NEXTMARKER: + // TODO: Support when replay markers are implemented. + break; + + default: + break; + } +} + - (void) cmdReset:(NSValue *)cmdAttrValue { CommandAttributes cmdAttr; @@ -1917,7 +2068,7 @@ { [(NSMenuItem*)theItem setTitle:NSSTRING_TITLE_EXECUTE_CONTROL]; } - else + else if ([cdsCore coreState] == CORESTATE_EXECUTE) { [(NSMenuItem*)theItem setTitle:NSSTRING_TITLE_PAUSE_CONTROL]; } @@ -1929,22 +2080,57 @@ [(NSToolbarItem*)theItem setLabel:NSSTRING_TITLE_EXECUTE_CONTROL]; [(NSToolbarItem*)theItem setImage:iconExecute]; } - else + else if ([cdsCore coreState] == CORESTATE_EXECUTE) { [(NSToolbarItem*)theItem setLabel:NSSTRING_TITLE_PAUSE_CONTROL]; [(NSToolbarItem*)theItem setImage:iconPause]; } } } - else if (theAction == @selector(executeCore) || - theAction == @selector(pauseCore)) - { + else if (theAction == @selector(frameAdvance:)) + { + if ([cdsCore coreState] != CORESTATE_PAUSE) + { + enable = NO; + } + + if ([cdsCore coreState] != CORESTATE_PAUSE || + ![cdsCore masterExecute] || + [self currentRom] == nil || + [self isShowingSaveStateDialog]) + { + enable = NO; + } + } + else if (theAction == @selector(frameJump:)) + { if (![cdsCore masterExecute] || [self currentRom] == nil || [self isShowingSaveStateDialog]) { enable = NO; } + } + else if (theAction == @selector(coreExecute:)) + { + if ([cdsCore coreState] == CORESTATE_EXECUTE || + [cdsCore coreState] == CORESTATE_FRAMEADVANCE || + ![cdsCore masterExecute] || + [self currentRom] == nil || + [self isShowingSaveStateDialog]) + { + enable = NO; + } + } + else if (theAction == @selector(corePause:)) + { + if ([cdsCore coreState] == CORESTATE_PAUSE || + ![cdsCore masterExecute] || + [self currentRom] == nil || + [self isShowingSaveStateDialog]) + { + enable = NO; + } } else if (theAction == @selector(reset:)) { diff --git a/desmume/src/cocoa/userinterface/InputManager.mm b/desmume/src/cocoa/userinterface/InputManager.mm index cd07315db..84c40f4f3 100644 --- a/desmume/src/cocoa/userinterface/InputManager.mm +++ b/desmume/src/cocoa/userinterface/InputManager.mm @@ -1044,6 +1044,7 @@ static std::tr1::unordered_map keyboardNameTable; / [[[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Icon_Piano_256x256" ofType:@"png"]] autorelease], @"Piano: B", [[[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Icon_Piano_256x256" ofType:@"png"]] autorelease], @"Piano: High C", [[[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Icon_PaddleKnob_256x256" ofType:@"png"]] autorelease], @"Paddle", + [[[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Icon_DisplayToggle_420x420" ofType:@"png"]] autorelease], @"Toggle All Displays", [[[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Icon_RotateCCW_420x420" ofType:@"png"]] autorelease], @"Rotate Display Left", [[[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Icon_RotateCW_420x420" ofType:@"png"]] autorelease], @"Rotate Display Right", [[[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Icon_ShowHUD_420x420" ofType:@"png"]] autorelease], @"HUD", @@ -1096,11 +1097,16 @@ static std::tr1::unordered_map keyboardNameTable; / commandSelector["Save State Slot"] = @selector(cmdSaveEmuSaveStateSlot:); commandSelector["Copy Screen"] = @selector(cmdCopyScreen:); commandSelector["Rotate Display Relative"] = @selector(cmdRotateDisplayRelative:); + commandSelector["Toggle All Displays"] = @selector(cmdToggleAllDisplays:); commandSelector["Set Speed"] = @selector(cmdHoldToggleSpeedScalar:); commandSelector["Enable/Disable Speed Limiter"] = @selector(cmdToggleSpeedLimiter:); commandSelector["Enable/Disable Auto Frame Skip"] = @selector(cmdToggleAutoFrameSkip:); commandSelector["Enable/Disable Cheats"] = @selector(cmdToggleCheats:); + commandSelector["Execute"] = @selector(cmdCoreExecute:); + commandSelector["Pause"] = @selector(cmdCorePause:); commandSelector["Execute/Pause"] = @selector(cmdToggleExecutePause:); + commandSelector["Frame Advance"] = @selector(cmdFrameAdvance:); + commandSelector["Frame Jump"] = @selector(cmdFrameJump:); commandSelector["Reset"] = @selector(cmdReset:); commandSelector["Mute/Unmute"] = @selector(cmdToggleMute:); commandSelector["Enable/Disable GPU State"] = @selector(cmdToggleGPUState:); @@ -1152,7 +1158,7 @@ static std::tr1::unordered_map keyboardNameTable; / cmdPaddle.floatValue[0] = 10.0f; CommandAttributes cmdLoadEmuSaveStateSlot = NewCommandAttributesForSelector("Load State Slot", commandSelector["Load State Slot"]); - CommandAttributes cmdSaveEmuSaveStateSlot = NewCommandAttributesForSelector("Save State Slot", commandSelector["Save State Slot"]); + CommandAttributes cmdSaveEmuSaveStateSlot = NewCommandAttributesForSelector("Save State Slot", commandSelector["Save State Slot"]); CommandAttributes cmdCopyScreen = NewCommandAttributesForSelector("Copy Screen", commandSelector["Copy Screen"]); CommandAttributes cmdRotateDisplayRelative = NewCommandAttributesForSelector("Rotate Display Relative", commandSelector["Rotate Display Relative"]); @@ -1164,13 +1170,19 @@ static std::tr1::unordered_map keyboardNameTable; / CommandAttributes cmdRotateDisplayRight = NewCommandAttributesForSelector("Rotate Display Right", commandSelector["Rotate Display Relative"]); cmdRotateDisplayRight.intValue[0] = 90; + CommandAttributes cmdToggleAllDisplays = NewCommandAttributesForSelector("Toggle All Displays", commandSelector["Toggle All Displays"]); + CommandAttributes cmdToggleSpeed = NewCommandAttributesForSelector("Set Speed", commandSelector["Set Speed"]); cmdToggleSpeed.floatValue[0] = 1.0f; CommandAttributes cmdToggleSpeedLimiter = NewCommandAttributesForSelector("Enable/Disable Speed Limiter", commandSelector["Enable/Disable Speed Limiter"]); CommandAttributes cmdToggleAutoFrameSkip = NewCommandAttributesForSelector("Enable/Disable Auto Frame Skip", commandSelector["Enable/Disable Auto Frame Skip"]); CommandAttributes cmdToggleCheats = NewCommandAttributesForSelector("Enable/Disable Cheats", commandSelector["Enable/Disable Cheats"]); + CommandAttributes cmdCoreExecute = NewCommandAttributesForSelector("Execute", commandSelector["Execute"]); + CommandAttributes cmdCorePause = NewCommandAttributesForSelector("Pause", commandSelector["Pause"]); CommandAttributes cmdToggleExecutePause = NewCommandAttributesForSelector("Execute/Pause", commandSelector["Execute/Pause"]); + CommandAttributes cmdFrameAdvance = NewCommandAttributesForSelector("Frame Advance", commandSelector["Frame Advance"]); + CommandAttributes cmdFrameJump = NewCommandAttributesForSelector("Frame Jump", commandSelector["Frame Jump"]); CommandAttributes cmdReset = NewCommandAttributesForSelector("Reset", commandSelector["Reset"]); CommandAttributes cmdToggleMute = NewCommandAttributesForSelector("Mute/Unmute", commandSelector["Mute/Unmute"]); CommandAttributes cmdToggleGPUState = NewCommandAttributesForSelector("Enable/Disable GPU State", commandSelector["Enable/Disable GPU State"]); @@ -1216,11 +1228,16 @@ static std::tr1::unordered_map keyboardNameTable; / defaultCommandAttributes["Copy Screen"] = cmdCopyScreen; defaultCommandAttributes["Rotate Display Left"] = cmdRotateDisplayLeft; defaultCommandAttributes["Rotate Display Right"] = cmdRotateDisplayRight; + defaultCommandAttributes["Toggle All Displays"] = cmdToggleAllDisplays; defaultCommandAttributes["Set Speed"] = cmdToggleSpeed; defaultCommandAttributes["Enable/Disable Speed Limiter"] = cmdToggleSpeedLimiter; defaultCommandAttributes["Enable/Disable Auto Frame Skip"] = cmdToggleAutoFrameSkip; defaultCommandAttributes["Enable/Disable Cheats"] = cmdToggleCheats; + defaultCommandAttributes["Execute"] = cmdCoreExecute; + defaultCommandAttributes["Pause"] = cmdCorePause; defaultCommandAttributes["Execute/Pause"] = cmdToggleExecutePause; + defaultCommandAttributes["Frame Advance"] = cmdFrameAdvance; + defaultCommandAttributes["Frame Jump"] = cmdFrameJump; defaultCommandAttributes["Reset"] = cmdReset; defaultCommandAttributes["Mute/Unmute"] = cmdToggleMute; defaultCommandAttributes["Enable/Disable GPU State"] = cmdToggleGPUState; @@ -1229,11 +1246,16 @@ static std::tr1::unordered_map keyboardNameTable; / [self addMappingForIBAction:@selector(loadEmuSaveStateSlot:) commandAttributes:&cmdLoadEmuSaveStateSlot]; [self addMappingForIBAction:@selector(saveEmuSaveStateSlot:) commandAttributes:&cmdSaveEmuSaveStateSlot]; [self addMappingForIBAction:@selector(copy:) commandAttributes:&cmdCopyScreen]; + [self addMappingForIBAction:@selector(toggleAllDisplays:) commandAttributes:&cmdToggleAllDisplays]; [self addMappingForIBAction:@selector(changeRotationRelative:) commandAttributes:&cmdRotateDisplayRelative]; [self addMappingForIBAction:@selector(toggleSpeedLimiter:) commandAttributes:&cmdToggleSpeedLimiter]; [self addMappingForIBAction:@selector(toggleAutoFrameSkip:) commandAttributes:&cmdToggleAutoFrameSkip]; [self addMappingForIBAction:@selector(toggleCheats:) commandAttributes:&cmdToggleCheats]; + [self addMappingForIBAction:@selector(coreExecute:) commandAttributes:&cmdCoreExecute]; + [self addMappingForIBAction:@selector(corePause:) commandAttributes:&cmdCorePause]; [self addMappingForIBAction:@selector(toggleExecutePause:) commandAttributes:&cmdToggleExecutePause]; + [self addMappingForIBAction:@selector(frameAdvance:) commandAttributes:&cmdFrameAdvance]; + [self addMappingForIBAction:@selector(frameJump:) commandAttributes:&cmdFrameJump]; [self addMappingForIBAction:@selector(reset:) commandAttributes:&cmdReset]; [self addMappingForIBAction:@selector(toggleGPUState:) commandAttributes:&cmdToggleGPUState];